[Excel 2019]
le code VBA de base ébauché est:Bonjour à tous, je fais de post, pour pouvoir contourner, l'erreur "13" type 'comptabilité sur la ligne de code suivant ci-dessous
le scénario est le suivant ; je cherche Ã* comparer les plages de valeurs numériques, d'une feuille de calculs "feuille_Stats" d'un tableau; en commençant, du bas, vers le haut
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 If plageStats.Value = plage_Reference.Value Then... ' Comparaison des valeurs des plages de cellules
avec la dernière plage des valeur numériques uniquement ,de référence, de la feuille de calculs "feuille_Reference".
tant que c'est diffèrent, tu supprimes la ligne encours et les lignes précédentes ; et dès qu'il y a égalité, tu ne supprimes aucune lignes, tu mets a jour la variable, "ligR" et tu sorts de la procédure Sub.
pour information, les tableaux, ont les mêmes structures
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 Définir les plages de cellules Dim plageStats As Range, plage_Reference As Range, ligneCourante As Integer Dim sortieBoucle As Boolean Dim lastRow As Integer Set feuille_Reference = ThisWorkbook.Sheets("feuille_Reference") 'Définir la feuille de calcul de référence de comparaison Set feuille_Stats = ThisWorkbook.Sheets("feuille_Stats") 'feuille des statistiques à comparer ligR = 1319 'valeurs de test ligneCourante = ligR 'ligneCourante` pour la ligne courante dans la feuille de calculs "feuille_Stats" lastRow = feuille_Reference.Cells(feuille_Reference.Rows.Count, "C").End(xlUp).Row 'je cherche la dernière ligne de la feuille de référence Set plage_Reference = feuille_Reference.Range("C" & lastRow & ":H" & lastRow) 'plage de référence Set plageStats = feuille_Stats.Range("C" & ligR & ":H" & ligR) 'Définir la plage des valeurs stats a comparer Do While ligR >= 3 And sortieBoucle = False ' parcours du tableau stats de bas en haut, en décrementant ligR, tous les 3 lignes, oui..!! parce que mes valeurs numériques sont de 3 lignes en 3 lignes If plageStats.Value = plage_Reference.Value Then... ' Comparaison des valeurs des plages de cellules ' Les valeurs sont identiques, donc pas besoin de supprimer les lignes précédentes MsgBox "ligR OK prête pour traitement suivant: " & ligR sortieBoucle = True 'Les valeurs sont identiques, sortir de la boucle Else feuill_Stats.Range("C" & ligneCourante & ":H" & ligneCourante).Delete Shift:=xlUp ligR = ligR - 3 'mise a jours de la variable ligR Set plageStats = feuille_Stats.Range("C" & ligR & ":H" & ligR) ' Définir la plage de statistiques End If Loop 'Sortir de la boucle si les valeurs ont été trouvées If sortieBoucle Then Exit Sub End Submerci, a tous conseils, et directives pour se post .
Partager