Fonction find associée à une boucle

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

  • fichier_merlin.xls
    28.5 KB · Affichages: 49

wamme

XLDnaute Occasionnel
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
 

job75

XLDnaute Barbatruc
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

  • fichier_merlin(1).xls
    41 KB · Affichages: 48
Dernière édition:

job75

XLDnaute Barbatruc
Re : Fonction find associée à une boucle

Re,

Voyez la simplification des formules si les colonnes se suivent à partir de F en feuille INITIAL.

En feuille STATS, les noms sont définis par formule.

A+
 

Pièces jointes

  • fichier_merlin(2).xls
    41 KB · Affichages: 56

MERLIN

XLDnaute Junior
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=
 

job75

XLDnaute Barbatruc
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

  • fichier_merlin(3).xls
    46 KB · Affichages: 52
Dernière édition:

job75

XLDnaute Barbatruc
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

  • fichier_merlin(4).xls
    45.5 KB · Affichages: 63
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 979
Membres
103 996
dernier inscrit
KB4175