Fonction find associée à une boucle

  • Initiateur de la discussion Initiateur de la discussion MERLIN
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MERLIN

XLDnaute Junior
Bonjour à toutes et à tous,

Je rencontre actuellement de gros soucis avec la fonction find et les boucles…

Je cherche à récupérer le nombre de fois que chacune des personnes en colonne A3:A9 a été soit en tant qu'animateur… soit en tant que participant AINSI que la date de la dernière session de stage subie en tant que stagiaire. Le formulaire de saisie se trouve en feuille INITIAL... la feuille qui compile l'ensemble de ses données est la feuille STATS. Cette liste de nom risque d'évoluer en s'agrandissant...

Le fichier en pièce jointe sera un peu plus parlant...

D'avance merci pour vos précieuses actions VBA.

=MERLIN=
 

Pièces jointes

Re : Fonction find associée à une boucle

bonsoir,
simplement avec la fonction NBSI()
en B3 feuille STATS =NB.SI(INITIAL!F6:F74;$B$2)
en C3 feuille STATS =NB.SI(INITIAL!F6:F74;$C$2)

reste à voir la dernière session en tant que stagiaire
 
Re : Fonction find associée à une boucle

Bonsoir Merlin, wamme,

Ci-joint une solution par formules sur la feuille STATS.

1) C'est une même formule (tirée à droite et vers le bas) en colonnes B et C

2) La formule colonne D est matricielle (à valider par Ctrl+Maj+Entrée)

3) La colonne D est au format personnalisé jj/mm/aaaa;;

4) En C2 j'ai écrit "Stagiaire"

5) Les formules se simplifieraient si les colonnes des noms en feuille INITIAL se suivaient...

A+
 

Pièces jointes

Dernière édition:
Re : Fonction find associée à une boucle

Bonsoir wamme, job75,

Je vous remercie tout 2 d'avoir pris un peu de temps pour me répondre.
Est-ce qu'il y aurait possibilité d'avoir une solution en VBA ? En effet, ce fichier peut évoluer avec le temps (ajout de nouvel personne etc..., taille du fichier...).

D'avance merci...

=MERLIN=
 
Re : Fonction find associée à une boucle

Re,

Voici une solution VBA.

La macro suivante est dans un module (Alt+F11) :

Code:
Sub Remplissage()
Dim cel As Range, ref As Range
Range("B3:D65536").ClearContents
For Each cel In Range("A3", Range("A65536").End(xlUp))
Set ref = Sheets("INITIAL").Range("F3:IV3").Find(cel, LookIn:=xlValues, LookAt:=xlWhole)
If Not ref Is Nothing Then
cel.Offset(, 1) = Application.CountIf(ref.EntireColumn, "ANIMATEUR")
cel.Offset(, 2) = Application.CountIf(ref.EntireColumn, "STAGIAIRE")
Set ref = ref.EntireColumn.Find("STAGIAIRE", SearchDirection:=xlPrevious)
If Not ref Is Nothing Then cel.Offset(, 3) = ref.EntireRow.Cells(1, 1)
End If
Next
End Sub

Edit : je vais faire une autre macro qui remplira aussi automatiquement la colonne A avec les noms

A+
 

Pièces jointes

Dernière édition:
Re : Fonction find associée à une boucle

Re,

Voici la 2ème macro qui remplit automatiquement la colonne A de la feuille STATS avec les noms.

Il faut que dans la plage F3:IV3 de la feuille INITIAL les seuls textes soient les noms recherchés.

Code:
Sub Remplissage()
Dim cel As Range, cel1 As Range, ref As Range
Range("A3:D65536").ClearContents
For Each cel In Sheets("INITIAL").Range("F3:IV3").SpecialCells(xlCellTypeConstants, 2)
Set cel1 = Range("A65536").End(xlUp)(2)
cel1 = cel
cel1.Offset(, 1) = Application.CountIf(cel.EntireColumn, "ANIMATEUR")
cel1.Offset(, 2) = Application.CountIf(cel.EntireColumn, "STAGIAIRE")
Set ref = cel.EntireColumn.Find("STAGIAIRE", LookIn:=xlValues, SearchDirection:=xlPrevious)
If Not ref Is Nothing Then cel1.Offset(, 3) = ref.EntireRow.Cells(1, 1)
Next
End Sub

A+
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour