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 33 34 35
| Sub Frequence_Visite()
Dim Ws As Worksheet 'Declaration de la feuille
Dim Freq As Range 'Declaration de cellule
Dim i As Integer 'Declaration de la variable i
Dim j As Integer
Dim NbLine As Integer 'Declaration de la variable NbLine
Set Ws = ThisWorkbook.Sheets("Feuil1") 'Définition de la feuille
Set Freq = Ws.Range("A2") 'Définition de la cellule de référence
j = 0
With Ws
NbLine = .Cells(.Rows.Count, 1).End(xlUp).Row - 1 ' Compte le nombre de ligne de la colonne A
'Si tu as 6 lignes de donnees + ta ligne de titres NbLine vaudra 7 or comme on va utiliser la fonction Offset on diminue la valeur de 1
'Car par exemple Freq.Offset(0,0) est ta cellule "A2" definie plus haut, comme je vais utiliser NbLine comme variable pour représenter ma dernière ligne
'si je garde NbLine tel quel je vais aller modifier Freq.Offset(7,0) par exemple qui est ma ligne 8, or j'ai des données sur les 7 premières lignes seulement
End With
For i = 0 To NbLine - 2 'On boucle sur toutes les lignes -2 (Si NbLine =7(6 lignes de données + 1 ligne de titre) on verifie 8 lignes (de 0 à 7)
'or comme on veur verifier les 6 lignes de données (de 0 à 5) on doit retrancher 2
If Freq.Offset(i, 3) - Date = 0 Then 'Si la date de fréquence de verif est égale a la date du jour(Si tu veux vérifier 5 jours avant tu mets
'If (Freq.Offset(i, 3) + 5) - Date = 0)
'(Freq.offset(i,3) est la cellule situee en ligne i et en colonne 3
'Comme Freq.offset(0,0) est ta cellule A2 Freq.offset(i,3) sera la cellule D2 si i=1. D3 si i=2 etc..
Freq.Offset(NbLine + j, 0) = Freq.Offset(i, 0) 'Freq.offset(NbLine,0) est la cellule A de la ligne vide en dessous de ton tableau
Freq.Offset(NbLine + j, 1) = Freq.Offset(i, 1)
Freq.Offset(NbLine + j, 2) = Freq.Offset(i, 2)
Freq.Offset(NbLine + j, 3) = Freq.Offset(i, 3)
Freq.Offset(NbLine + j, 3).NumberFormat = "dd/mm/yyyy;@"
Freq.Offset(NbLine + j, 4) = Date
j = j + 1 'ici si on trouve une autre ligne qui répond à la condition on rajoute une variable j qui va signifier d'aller une ligne plus bas
End If
Next i
End Sub |
Partager