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 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| Sub Compare1()
Dim E As Worksheet 'déclare la variable E (onglet Écriture)
Dim M As Worksheet 'déclare la variable M (onglet Money)
Dim TV As Variant 'déclare la variable TV (Tableau ds Valeurs)
Dim DE As Date 'déclare la variable DE (Date Écriture)
Dim L As String 'déclare la variable L (Libellé)
Dim P As String 'déclare la variable P (Payement)
Dim D As Double 'déclare la variable D (Valeur)
Dim C As Double 'déclare la variable C (Valeur)
Dim DM As Date 'déclare la variable DM (Daye Money)
Dim Li As Integer
Dim I As Integer
Dim Rng As Range
Dim FinLig As Integer
Set M = Worksheets("Money") 'définit l'onglet M
Set E = Worksheets("Écriture") 'définit l'onglet E
DE = DateSerial(Year(E.Range("A1").Value), Month(E.Range("A1").Value), Day(E.Range("A1").Value)) 'définit la date DE Thautheme
L = E.Range("A2").Value 'définit le libellé L
P = E.Range("A3").Value 'définit le payement P
D = E.Range("A4").Value 'définit la valeur D
C = E.Range("A5").Value 'définit la valeur C
TV = M.Range("A10").CurrentRegion 'définit le tableau des valeurs TV
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
DM = DateSerial(Year(TV(I, 1)), Month(TV(I, 1)), Day(TV(I, 1))) 'définit la date DM
'si les données correspondent, définit la ligne LI (= I + 9 car le tableau commence à la ligne 10), sort de la boucle
'si V est pas vide
If TV(I, 4) <> "" Then
If DM = DE And TV(I, 2) = L And TV(I, 3) = P And IIf(TV(I, 4) <> "", TV(I, 4) = D, TV(I, 5) = D) Then Li = I + 9: Exit For
Else
If DM = DE And TV(I, 2) = L And TV(I, 3) = P And IIf(TV(I, 5) <> "", TV(I, 5) = C, TV(I, 6) = C) Then Li = I + 9: Exit For
End If
Next I 'prochaine boucle de la ligne
If Li = 0 Then MsgBox "Données non trouvées !": Exit Sub 'si aucune correspondance, message, sort de la procédure
M.Activate 'active l'onglet M
M.Rows(Li).Select 'sélectionne la ligne LI de l'onglet M
Range("A" & Li).Select
If ActiveCell.Row = "11" Then
Debug.Print ActiveCell.Row
Debug.Print "Première ligne, aucune nouvelle rentrée, fin du programme"
MsgBox "Première ligne, aucune nouvelle rentrée, fin du programme"
End
Else
Debug.Print ActiveCell.Row
MsgBox "Trouvé, autre ligne, on supprime : " & ActiveCell.Row
End If
End Sub |
Partager