Comparaison de deux tableaux en VBA
Fermé
Brice-hb
Messages postés
2
Date d'inscription
vendredi 5 juillet 2013
Statut
Membre
Dernière intervention
5 juillet 2013
-
5 juil. 2013 à 10:55
Brice-hb Messages postés 2 Date d'inscription vendredi 5 juillet 2013 Statut Membre Dernière intervention 5 juillet 2013 - 5 juil. 2013 à 11:59
Brice-hb Messages postés 2 Date d'inscription vendredi 5 juillet 2013 Statut Membre Dernière intervention 5 juillet 2013 - 5 juil. 2013 à 11:59
A voir également:
- Comparaison de deux tableaux en VBA
- Fusionner deux tableaux excel - Guide
- Deux ecran pc - Guide
- Tableaux croisés dynamiques - Guide
- Faire deux colonnes sur word - Guide
- Deux comptes whatsapp - Guide
3 réponses
Bonjour,
Effectivement dans ton code il y a quelques soucis notamment au niveau du cacul du nombre de colonne.
Dercol = Sheets("feuil2").Range("A65535").End(xlToLeft).Column
Si tu veux calculer le nombre de colonne tu aurais du mettre Range("IV1") à la place de Range("A65535")
Je te propose le code ci dessous qui devrait fonctionner normalement.
Si j'ai bien compris ton code le tableau en feuille 1 démarre à la ligne 1 alors qu'en Feuille 2 il démare à la ligne 65.
Sub New_Compare()
Dim Col1 As Long, LigT1 As Long, Derlig1 As Long, Dercol As Long, Cp As Variant
Derlig1 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Dercol = Sheets(1).Range(1, Columns.Count).End(xlToLeft).Column
For Col1 = 1 To Dercol
For LigT1 = 1 To Derlig1
Info_cell_T1 = Sheets(1).Cells(LigT1, Col1)
Info_cell_T2 = Sheets(2).Cells(LigT1+65, Col1)
If Info_cell_T1 <> Info_cell_T2 Then
Sheets(2).Cells(LigT2, Col1).Interior.ColorIndex = 9
Else
Sheets(2).Cells(LigT2, Col1).Interior.ColorIndex = 0
End If
Next LigT1
Next Col1
End Sub
WeaponEDGE
Effectivement dans ton code il y a quelques soucis notamment au niveau du cacul du nombre de colonne.
Dercol = Sheets("feuil2").Range("A65535").End(xlToLeft).Column
Si tu veux calculer le nombre de colonne tu aurais du mettre Range("IV1") à la place de Range("A65535")
Je te propose le code ci dessous qui devrait fonctionner normalement.
Si j'ai bien compris ton code le tableau en feuille 1 démarre à la ligne 1 alors qu'en Feuille 2 il démare à la ligne 65.
Sub New_Compare()
Dim Col1 As Long, LigT1 As Long, Derlig1 As Long, Dercol As Long, Cp As Variant
Derlig1 = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
Dercol = Sheets(1).Range(1, Columns.Count).End(xlToLeft).Column
For Col1 = 1 To Dercol
For LigT1 = 1 To Derlig1
Info_cell_T1 = Sheets(1).Cells(LigT1, Col1)
Info_cell_T2 = Sheets(2).Cells(LigT1+65, Col1)
If Info_cell_T1 <> Info_cell_T2 Then
Sheets(2).Cells(LigT2, Col1).Interior.ColorIndex = 9
Else
Sheets(2).Cells(LigT2, Col1).Interior.ColorIndex = 0
End If
Next LigT1
Next Col1
End Sub
WeaponEDGE
IWOBER
Messages postés
15
Date d'inscription
mercredi 14 mars 2012
Statut
Membre
Dernière intervention
18 octobre 2016
1
5 juil. 2013 à 11:24
5 juil. 2013 à 11:24
Le texte de ta macro est conforme à TA logique.
Chacun peut la comprendre comme il veut.
Pour que tout le monde comprenne la même chose, il faut y mettre des commentaires.
A titre personnel, j'utilise un truc contraignant mais qui m'aide beaucoup par la suite: 1 ligne de code = 1 ligne de commentaire.
En outre, quand on se soumet ce genre de contrainte, on découvre souvent immédiatement le bug de raisonnement qu'on a fait.
Chacun peut la comprendre comme il veut.
Pour que tout le monde comprenne la même chose, il faut y mettre des commentaires.
A titre personnel, j'utilise un truc contraignant mais qui m'aide beaucoup par la suite: 1 ligne de code = 1 ligne de commentaire.
En outre, quand on se soumet ce genre de contrainte, on découvre souvent immédiatement le bug de raisonnement qu'on a fait.
Brice-hb
Messages postés
2
Date d'inscription
vendredi 5 juillet 2013
Statut
Membre
Dernière intervention
5 juillet 2013
5 juil. 2013 à 11:59
5 juil. 2013 à 11:59
En fait la variable j permettait d'incrementer les colonnes et j'utilisais la fonction Chr pour convertir le code en ascii (65 correspond à 1).
Mais je vois que je me suis grandement compliqué la tâche !!!
En tout cas ton programme fonctionne à merveil !
Merci beaucoup !
Mais je vois que je me suis grandement compliqué la tâche !!!
En tout cas ton programme fonctionne à merveil !
Merci beaucoup !