× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 Fonction Si ou Macro ?Sujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
maryloo2005
  Posté le 22/03/2015 @ 18:22 
Aller en bas de la page 
Astucienne

Normal 0 21 false false false FR X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Tableau Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:8.0pt; mso-para-margin-left:0cm; line-height:107%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri",sans-serif; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-fareast-language:EN-US;}

Bonjour,

J'ai deux fichiers Excel différents :

- l'un ou il y a toutes les informations du salarié (la base de données que je vous joins avec cjoint), http://cjoint.com/?0CwsH2zr7bt

- le deuxième, ce sera un tableau uniquement composé des personnes bénéficiaires du RSA. Je ne l'ai pas encore puisqu'il est l'objet de ma question.

Donc il faudrait que je trouve une fonction SI ou une Macro (je pense), qui me permettrait de dire :

"si le salarié est au RSA, alors, recopier sa ligne d'information dans le 2e tableau, sinon ne rien faire).

SI dans la cellule (colonne C du 1er tableau) "bénéficiaire du RSA" il y a écrit 1; alors reporter la ligne du salarié; sinon ne rien faire.

Mais même si j'arrive à faire cela, imaginons que j'aie 150 salariés : le premier et le dernier sont au RSA (c'est impossible, mais c'est un exemple), alors, il y aura un blanc entre le 1er et le 150ème salarié (c'est à dire un trou de 149 lignes) ? Il faudrait que les lignes se suivent.

En fait, je ne sais pas encore si je veux créer un 2e tableau ou une nouvelle feuille dans le premier classeur. Que me conseillez-vous ?

Je sais faire des fonctions SI mais je ne sais pas faire les macros. Pouvez-vous m'aider svp ? Merci d'avance.

Mary

Publicité
ferrand
 Posté le 22/03/2015 à 20:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Bonsoir,

Est-ce qu'il faut renuméroter la colonne A ? En continu, s'il s'agit de numéros d'ordre ?

Ou bien supprimer la formule en A1 ? Qui se trouve invalidée.

Pour être plus explicite, il y a le choix entre beaucoup de solutions et je choisirais volontiers parmi les plus simple le schéma suivant :

- Copie feuille dans un nouveau classeur

- Renommage de la feuille : quel nom ?

- Boucle ascendante pour supprimer les lignes ne correspondant pas à un RSA

- Enregistrement du classeur : quel nom ?

Donc, la ligne 166 étant non RSA, elle est supprimée, d'où erreur #REF! de la formule. Si elle ne l'était pas, il y aurait aussi erreur puisque les numéros d'ordre ne sont plus consécutifs.

Si on garde la formule en A1, il faut la réécrire. Et il faut renuméroter. D'où ma question.

ferrand
 Posté le 22/03/2015 à 21:13 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

En l'absence d'indication plus précise, je suggère de remplacer dans ta formule en A1, A166 par A171. Et en A171, mettre la formule : =NB(A6:A170). Cela aura pour effet de rendre la formule en A1 résistante aux modifications. (Tu peux masquer l'affichage en A171 par couleur de police blanc).

La macro pour créer le nouveau classeur :

Sub DupliquerClasseur_RSA()
Dim i%, n%, c as Range
Worksheets("Général").Copy
With ActiveWorkbook.Worksheets(1)
.Name = "RSA"
n = .Range("C" & .Rows.Count).End(xlUp).Row
For i = n To 7 Step -1
If IsNumeric(.Cells(i, 1).Value) And .Cells(i, 3).Value = "" _
Then .Rows(i).Delete
Next i
i = 0
n = .Range("C" & .Rows.Count).End(xlUp).Row
For Each c In .Range("C7:C" & n).Cells
If c.Value = 1 Then
i = i + 1
c.Offset(0, -2).Value = i
End If
Next c
End With
ActiveWorkbook.SaveAs "Copie_RSA.xlsx"
End Sub

Remplacer les mentions en rouge par les noms souhaités. Le nouveau classeur sera enregistré dans le répertoire courant (qui devrait être celui du classeur initial s'il n'a pas été modifié depuis son ouverture) : Si on veut l'enregistrer ailleurs, il faut alors indiquer le chemin du dossier.

"chemin\nomclasseur"

ou ThisWorkbook.Path & "\nomclasseur" (pour le dossier du classeur initial si le répertoire courant peut être différent)

http://cjoint.com/?ECwvE5Yb5Mz

NB- J'ai opté pour la renumérotation, 2e partie de la macro (de i = 0 à Next c). Si on ne doit pas renuméroter, il suffit de supprimer cette partie du code. La formule continuera cependant à donner le bon résultat (car ne dépend plus du dernier numéro).



Modifié par ferrand le 22/03/2015 21:20
maryloo2005
 Posté le 22/03/2015 à 21:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucienne

Merci beaucoup Ferrand.

Je vais regarder tout cela et sûrement avoir besoin qu'on me guide pour installer cette macro car je n'y connais pas grand chose en macro. Désolée...

Bonsoir et encore grand merci.

Mary

ferrand
 Posté le 22/03/2015 à 22:26 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Une macro, ce n'est que du texte composé d'un agencement de mots-clé... La recette de Galopin est toujours utile :

https://forum.pcastuces.com/recette_de_cuisine__excel_vba-f23s5963.htm

ferrand
 Posté le 26/03/2015 à 11:46 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Si tout se poursuit bien, continue ! Si tu rencontres quelques difficultés, reviens, on te fera un pas à pas illustré pour aller au bout de la procédure...

maryloo2005
 Posté le 26/03/2015 à 11:52 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucienne

Bonjour,

Je me suis fait aider. Merci, tout va bien. C'est super sympa de ta part.

Bonne journée.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
29,99 €XIAOMI Mi TV Stick à 29,99 €
Valable jusqu'au 29 Octobre

Cdiscount propose en exclusivité la nouvelle version de la clé HDMI XIAOMI Mi TV Stick à 29,99 €. Cette clé HDMI à brancher sur votre TV possède un processeur quadricoeur, 1 Go de RAM et 8 Go d'espace de stockage, le WiFi et le bluetooth. Elle intègre un Chromecast, est compatible Dolby et DTS et est fournie avec une télécommande qui peut être pilotée à la voix. Elle tourne sous Android TV 9.0 et vous allez pouvoir voir facilement Prime Video, Netflix, Disney+, YouTube, Spotify, Moltov, ... sur votre TV Full HD.


> Voir l'offre
519,90 €Ultrabook HONOR MagicBook 14 (Ryzen 5 3500U, 8Go, 256 Go SSD) à 519,90 €
Valable jusqu'au 01 Novembre

HONOR fait une promotion sur son ultrabook HONOR MagicBook 14 qui passe à 519,90 € au lieu de 700 € grâce au code promo AMACHINES30PROMO. Cet ordinateur portable possède un écran 14 pouces Full HD IPS, un processeur AMD Ryzen 5 3500U (avec chip graphique Vega 8), 8 Go de mémoire DDR4, un SSD 256 Go PCIe NVME, le WiFi5 / Bluetooth 5.0, un lecteur d'empreintes, une webcam, un clavier rétro éclairé, une batterie 56 Wh (jusqu'à 10h d'autonomie) et ne pèse que 1,38 kg. Il fonctionne sous Windows 10. Une très bonne affaire pour une machine compacte et puissante.


> Voir l'offre
314,81 €Mini PC MINISFORUM UM300 (Ryzen 3 3300U, 16Go RAM, 512 Go SSD) à 314,81 € avec le code BGSEDK
Valable jusqu'au 27 Octobre

Banggood propose actuellement le mini PC MINISFORUM UM300 à 306,63 € avec le code promo BGSEDK. Ce mini PC au format NUC d'Intel possède un processeur Ryzen 3 3300U avec chip graphique Vega 6, 16 Go de RAM DDR4 et un SSD de 512 Go. Il dispose d'une connectique complète : un emplacement 2,5 pouces libre (pour ajouter un disque dur ou un SSD supplémentaire, le WiFi6, le bluetooth 5.1, 3 ports USB 3.1, un port HDMI 2.0, un DisplayPort, deux ports Ethernet Gigabit et tourne sous Windows 10 que vous pourrez mettre en français. Il est livré avec une alimentation européenne. Branchez ce mini PC sur une TV ou un écran et vous avez un ordinateur discret et performant. Comptez 8,18 € pour l'assurance et la livraison soit un total de 314,81 € livré.

Ce marchand sérieux se trouvant en Chine, la livraison peut prendre une vingtaine de jours. Vous pouvez payer par carte bancaire ou par Paypal (conseillé pour bénéficier de la garantie Paypal).


> Voir l'offre

Sujets relatifs
(Macro Excel) Sélectionner cellule en fonction de sa couleur
Appeler une macro via une touche de fonction
Fonction et macro
Macro qui ouvrirais la fonction rechercher
Macro Excel 4
Macro...Protéger feuille
2 pages par feuille dans macro excel
Fonction RANG
Comment choisir la "fonction" de mes mails ?
erreur macro
Plus de sujets relatifs à Fonction Si ou Macro ?
 > Tous les forums > Forum Bureautique