A voir également:
- Formule excel
- Formule excel si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Liste déroulante excel - Guide
- Formule somme excel ligne - Guide
- Mise en forme conditionnelle excel formule - Guide
8 réponses
Bonjour,
b = 1
For a = 1 To Range("A1").End(xlDown).Row
If Worksheets("Feuil1").Cells(a, 2).Value = "OUI" Then
Worksheets("Feuil2").Cells(b, 1).Value = Worksheets("Feuil1").Cells(a, 1)
b = b + 1
End If
Next
b = 1
For a = 1 To Range("A1").End(xlDown).Row
If Worksheets("Feuil1").Cells(a, 2).Value = "OUI" Then
Worksheets("Feuil2").Cells(b, 1).Value = Worksheets("Feuil1").Cells(a, 1)
b = b + 1
End If
Next
Salut,
Pourquoi passer avec un code VBA, une simple formule suffit pour compter le nombre de oui
exemple tes données sont feuille 1 de A2 à A30 pour les Nom et de B2 à B30 pour les réponses oui ou non
en feuille 2 la formule est
=NB.SI(Feuil1!B2:B30;"oui")
et si on nomme la plage B2 à B30 exemple titi (Insertion/Nom/Définir le formule peut être utilisée sur n'importe quelle feuille et devient
=NB.SI(titi;"oui")
et pour récupérer les noms également une autre formule que je développerai dans un moment je suis dans l'obligation de m'absenter
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Pourquoi passer avec un code VBA, une simple formule suffit pour compter le nombre de oui
exemple tes données sont feuille 1 de A2 à A30 pour les Nom et de B2 à B30 pour les réponses oui ou non
en feuille 2 la formule est
=NB.SI(Feuil1!B2:B30;"oui")
et si on nomme la plage B2 à B30 exemple titi (Insertion/Nom/Définir le formule peut être utilisée sur n'importe quelle feuille et devient
=NB.SI(titi;"oui")
et pour récupérer les noms également une autre formule que je développerai dans un moment je suis dans l'obligation de m'absenter
A+
Mike-31
Une période d'échec est un moment rêvé pour semer les graines du savoir.
Euh il me semble que Goth souhaiterai récupérer le nom des personnes ayant répondu "Oui", pas le nombre. Aussi je ne pense pas que le NB.SI soit la réponse attendu. La macro n'est pas mal je pense, mais ne suis pas certain que ce soit totalement nécessaire d'aller au plus compliqué. Pourquoi ne pas utiliser un filtre ? Tu mets ta première ligne en filtre, et tu filtres la colonne de "Oui" et "Non" sur "Oui". Excel te masquera alors tous les noms ayant répondu autre chose que "Oui".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
voilà,
exemple la plage contenant les noms nommée Nom (Insertion/Nom/Définir)
la plage contenant les oui et non nommée réponse
sur n'importe quelle feuille coller cette formule matricielle
dans mon exemple on fait référence à la cellule D1 ou l'on saisiera oui ou non valeur de référence recherchée ou on créera une liste déroulante
=SI(LIGNES($1:1)<=NB.SI(réponse;$D$1);INDEX(Nom;PETITE.VALEUR(SI(réponse=$D$1;LIGNE(INDIRECT("1:"&LIGNES(réponse))));LIGNES($1:1)));"")
à confirmer en pressant en même temps sur les touches Ctrl, Shift et Entrée
(la touche Shift est la touche majuscule)
si la confirmation est bien faite la formule se mettra entre {} et prendra cette forme
{=SI(LIGNES($1:1)<=NB.SI(réponse;$D$1);INDEX(Nom;PETITE.VALEUR(SI(réponse=$D$1;LIGNE(INDIRECT("1:"&LIGNES(réponse))));LIGNES($1:1)));"")}
ensuite clic sur la cellule contenant la formule et incrémenter vers le bas
si tu as besoin d'un exemple fais signe
voilà,
exemple la plage contenant les noms nommée Nom (Insertion/Nom/Définir)
la plage contenant les oui et non nommée réponse
sur n'importe quelle feuille coller cette formule matricielle
dans mon exemple on fait référence à la cellule D1 ou l'on saisiera oui ou non valeur de référence recherchée ou on créera une liste déroulante
=SI(LIGNES($1:1)<=NB.SI(réponse;$D$1);INDEX(Nom;PETITE.VALEUR(SI(réponse=$D$1;LIGNE(INDIRECT("1:"&LIGNES(réponse))));LIGNES($1:1)));"")
à confirmer en pressant en même temps sur les touches Ctrl, Shift et Entrée
(la touche Shift est la touche majuscule)
si la confirmation est bien faite la formule se mettra entre {} et prendra cette forme
{=SI(LIGNES($1:1)<=NB.SI(réponse;$D$1);INDEX(Nom;PETITE.VALEUR(SI(réponse=$D$1;LIGNE(INDIRECT("1:"&LIGNES(réponse))));LIGNES($1:1)));"")}
ensuite clic sur la cellule contenant la formule et incrémenter vers le bas
si tu as besoin d'un exemple fais signe
Re,
Ce n'est pas demandé, mais un exemple avec formule
feuille 1 la liste à compléter, feuille 2 la recherche
https://www.cjoint.com/?0kpu6fkKO6h
Ce n'est pas demandé, mais un exemple avec formule
feuille 1 la liste à compléter, feuille 2 la recherche
https://www.cjoint.com/?0kpu6fkKO6h