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
| 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), Day(E.Range("A1").Value), Month(E.Range("A1").Value)) 'définit la date DE inversé
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 "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