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
| Option Explicit
Sub CompareBoucleLignesColonnesArray()
Dim ValCellule As String
Dim Vligne As String
Dim VColonne As String
'Dim arrSplitText() As Variant 'valeur de ValCellule splitée
Dim arrSplitText() As Variant 'j'ai aussi essayé avec ça puisqu'il s'agit de ma valeur après split
Dim ArrayDonnees() As Variant
Dim ArrayDonneesTarget() As Variant
Dim DerniereLigne As Long
Dim DerniereColonne As Long 'là pas utilisé car pour le moment on fait juste la colonne 9
Dim Onglet As Worksheet
'identifie l'onglet
Set Onglet = Worksheets(1) '"ecs"
'trouve limites du tableau
DerniereLigne = Onglet.Cells(Rows.Count, 1).End(xlUp).Row
'DerniereColonne = Onglet.Cells(1, Columns.Count).End(xlToLeft).Column 'pas utilisé pour le moment
'enregistrer le tableau dans l'array des valeurs à comparer
ArrayDonnees = Onglet.Range(Onglet.Cells(1, 9), Onglet.Cells(DerniereLigne, 9))
'enregistrer le tableau dans l'array des valeurs "témoin"
ArrayDonneesTarget = Onglet.Range(Onglet.Cells(1, 4), Onglet.Cells(DerniereLigne, 4))
'boucle sur les lignes de la 1ère colonne pour récupérer la valeur à comparer
For i = LBound(ArrayDonnees) + 1 To UBound(ArrayDonnees)
Vligne = ArrayDonnees(i, 1)[ATTACH]609596[/ATTACH]
MsgBox Vligne 'pour vérifier ce que je lis
arrSplitText = Split(Vligne, "/") 'ça bloque apparemment là est ce un pb de déclaration du tableau? message d'erreur > erreur d'exécution 13 incompatibilité de type
,
'boucle sur les lignes de la 2ème colonne pour vérifier si la valeur à comparer existe
For j = LBound(ArrayDonneesTarget, 1) To UBound(ArrayDonneesTarget, 1)
If InStr(1, ArrayDonneesTarget(j), arrSplitText, vbTextCompare) > 0 Then
VColonne = ArrayDonneesTarget(j)
MsgBox VColonne
Else
MsgBox "non OK"
Exit For
End If
Next j
Next i
End Sub |
Partager