VBA Loop colonne filtrée récupération valeurs à partir critères

Résolu/Fermé
Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 - Modifié par Yrmouf le 6/01/2015 à 13:58
Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 - 6 janv. 2015 à 13:41
Bonjour à tous,

Je poste aujourd'hui ici concernant une certaine procédure que j'aimerais automatiser vu que je l'effectue de manière quotidienne et ça commence à être rébarbatif...

J'ai mis un petit fichier exemple sur le lien suivant:
https://www.cjoint.com/c/EAgmHnhtafn

Comme vous pouvez le voir sur le fichier, je souhaitais récupérer à partir de la colonne C tous les bonhommes qui ont été en retard sur la journée du 01-janv.

A partir de là, j'aurais souhaiter qu'en cellule D1, la macro m'écrive "1 retard pour Jean-Pierre et 1 retard pour Louis".

J'ai donc essayé de constituer la macro en fonction de ce que j'ai trouvé sur le net comme suit:

Function GetValue(row As Integer, col As Integer)
GetValue = ActiveSheet.Cells(row, col)
End Function

Sub Ponctualité()
Dim cl As Range, rngCLC As Range
Dim cellval As String

Set rngCLC = Range("C3:C100")
For Each cl In rngCLC.SpecialCells(xlCellTypeVisible)
cellval = GetValue(row:=cl.row, col:=1)
If cl.Value > 0 Then Range("D1") = cl & " retard pour " & cellval & conc
conc = cl & " retard pour " & cellval

Next cl
End Sub


Les points de blocages sont les suivants:
1. Set rngCLC=Range("C3:C100") : Comment faire que ce range soit dynamique afin que si je dépasse les 100 cela fonctionne encore, la fonction xldown semblait bien mais j'ai une ligne de totale qui doit être gardé et qui est malheureusement intégrée par la macro et donc cela me rajoute "2 retard pour total". De plus, j'ai des cellules qui peuvent être vide et xldown s'arrête au mauvais endroit.

2. If cl.Value > 0 Then Range("D1") = cl & " retard pour " & cellval & conc
conc = cl & " retard pour " & cellval

Ici, la fonction fonctionne bien jusqu'à ce que j'arrive à Fred et total car la macro me les intégre et remplace le résultat précédemment juste "1 retard pour Jean-Pierre et 1 retard pour Louis".
Comment faire pour que si la cellule est vide, que la macro ne le prenne pas en compte.


Si quelqu'un pouvait m'aiguiller s'il vous plaît, j'apprécierais grandement!

Merci d'avance

Bonne journée

Yrmouf

1 réponse

Yrmouf Messages postés 126 Date d'inscription samedi 4 août 2012 Statut Membre Dernière intervention 22 septembre 2020 5
Modifié par Yrmouf le 6/01/2015 à 13:41
Petit commentaire sur la procédure que je voulais intégrer dans la macro:

Aller dans les cellules visibles de la 3ème colonne du tableau > Dans ces cellules retrouvés celles qui ne sont pas vides > A partir de ces cellules, retrouver le bonhomme correspondant dans la première colonne > Avec les bonhommes ainsi que les cellules non vides, les concaténer en D1.

Merci encore à ceux qui pourront m'aider!
0