1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
| Private Sub CommandButton1_Click()
Dim O As Object 'déclare la variable O (Onglet)
Dim DL As Integer 'déclare la variable DL (Dernière Ligne)
Dim DC As Byte 'déclare la variable DC (Dernière Colonne)
Dim TC As Variant 'déclare la variable TC (Tableau de Cellules)
Dim I As Integer 'déclare la variable I (Incrément)
Dim J As Byte 'déclare la variable J (incrément)
Dim Info As String 'déclare la variable Info
ActiveCell.Select 'enlève le focus au bouton
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Application.Calculation = xlManual 'empêche le recalcul des formules
Set O = Sheets("Suivi Participants AIJ IEJ") 'définit l'onglet O
DL = O.Cells(Application.Rows.Count, 1).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 1 (=A) de l'onglet O
DC = O.Cells(3, Application.Columns.Count).End(xlToLeft).Column 'définit la dernière colonne éditée DC de la lignbe 3 de l'onglet O
TC = O.Range(O.Cells(1, 1), O.Cells(DL, DC)) 'définit le tableau de cellules TC
For I = 4 To UBound(TC, 1) 'boucle 1 : sur toutes les lignes I du tableau TC (en partant de la quatrième)
Info = "" 'initialise la variable info
For J = 1 To DC - 1 'boucle 2 : sur toutes les colonnes J du tableau TC (sauf la dernière)
Select Case J 'agit en fonction de la colonne J
Case 14 'cas où J vaut 14 (= colonne N)
'rien ne se passe
Case Else 'tous les autres autre cas
'si la valeur ligne I / colonne J du tableau TC est vide, définit la variable Info
If TC(I, J) = "" Then Info = IIf(Info = "", TC(3, J), Info & ", " & TC(3, J))
End Select 'fin de l'action en fonction de la colonne J
Next J 'prochaine colonne de la boucle 2
O.Cells(I, DC).Value = Info 'place info dans la dernière colonne de la ligne I du tableau TC
Next I 'prochaine ligne de la boucle 1
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
Application.Calculation = xlCalculationAutomatic 'permet le recalcul des formules
End Sub |
Partager