Bnojour à tous,
je débute dans les macros avec boucles et je bloque sur le cas suivant :
j'ai une feuille excel qui contient des tableaux de 19 lignes sur 4 colonnes qui présentent les mêmes informations (1 tableau par jour)
Les tableaux se "suivent" en ligne par 5. (5 jours ouvrés par semaine)
Je souhaite créer une macro qui récuppère le dernier tableau enregistré, en renvoyant la valeur "date de saisie du tableau" qui se trouve dans le première cellule de la seconde ligne
Ces dates de saises se trouvent (pour la première rangée de tableaux) en A2,E2,I2,M2,Q2
Pour la seconde rangée de tableaux les valeurs sont en A21,E21 etc....
j'ai donc pensé à créer une boucle qui vérifie :
- si il n'y aucune donnée enregistrée en A2 ==> renvoyer la valeur "aucune donnée trouvée" et quitter la macro ( car ça veut dire qu'il n'y a aucun tableau dans la feuille)
- s'il y a une valeur en A2, lancer une boucle qui va tester s'il y a une donnée en A (2 +19)
==> si pas de valeur en A21 alors rechercher la dernière valeur connue en A2, on la renvoie dans la cellule de destination et on quitte la macro
==> si valeur en A21, alors tester s'il y a une valeur en A (21 +19) etc....
Je ne sais pas si la demande est clair, je joint un fichier en exemple, voici le code (parfaitement risible je pense) que j'ai entamé.
Merci par avance pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 Sheets("tableaux").Activate Dim i As Integer If Range("A2") = "" Then 'celule de destination' = "Aucune donnée" End If Exit Sub For i = 21 To 2320 Step 19 If Range("A" & i) = "" Then Range("A" & i).End(xlToRight).Offset(-19, -3).Select 'cellule de destination' = ActiveCell.Value Exit Sub Else Range("A" & i).End(xlToRight).Offset(0, -3).Select 'cellule de destination' = ActiveCell.Value End If Next i End Sub
Partager