Comparaison des 2 feuilles excel

Résolu
Signaler
Messages postés
26
Date d'inscription
jeudi 9 novembre 2006
Statut
Membre
Dernière intervention
8 mai 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
bjr, je veux comparais deux balances (chaque balance dans un classeur) bah j ai créer le code il
marche bien il compar et tout, mais j ai un petite souci,  je vous donne un example: moi je veux comparais juste la colonne A c'est à dire juste les numero de compte, j ai un plant comptable standard avec le qu'il je vais comparer les autres balances
mais moi dans la colonne A de plant comptable j ai saisi juste les 4 classe " les 4 premier numero"
parcontre dans la balance il y a les " 7 class " alors moi je veux que mon code comapr le plant comptable avec les 4 premier caracter de chaque cellul de colonne A de la balance que je vais choisi et merci
voila mon code il marche bien que la comparaison total des celluls
'ouvrir le dossier à comparer
nom = x & "" & ListBox1
Workbooks.Open Filename:=(nom)
'ouvrir le plant compatble standard
plant_comptable = "E:\Application_VB_Etat_BAM\Plant Comptable.xls"
Workbooks.Open Filename:=(plant_comptable)
'démarrer la comparaison
Application.ScreenUpdating = False
Dim Collection1 As New Collection, collection2 As New Collection
Dim Cellule1 As Range, Cellule2 As Range
Dim Element1 As Object, Element2 As Object
Dim Time1 As Date, Time2 As Date
Time1 = Now()
Workbooks(ListBox1.Value).Activate
For Each Cellule1 In Range("a6:a1255")
Collection1.Add Cellule1
Next Cellule1
Workbooks("Plant Comptable.xls").Activate
For Each Cellule2 In Range("a6:a1255")
collection2.Add Cellule2
Next Cellule2
For Each Element1 In Collection1
For Each Element2 In collection2
If Element1 <> Element2 Then
Element1.Font.Color = vbRed
Else
Element1.Font.Color = vbBlack
Exit For
End If
Next Element2
Next Element1
Time2 = Now()
Debug.Print "Test collection :" & Format$(Time2 - Time1, "hh:mm:ss")
Application.ScreenUpdating = True
End Sub

3 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

dans la ligne
If Element1 <> Element2 Then

essaie en faisant
If Element1 <> Mid(Element2, 1, 4) Then

Par contre, pour ce genre de comparaison, il vaut mieux préférer des variables de type Tableau, plutôt que d'avoir recours aux collections

@++

<hr size="2" width="100%" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
<!--
Messages postés
26
Date d'inscription
jeudi 9 novembre 2006
Statut
Membre
Dernière intervention
8 mai 2007

merci mortalino c tres gentil de ta part il marche bien maintenant l'applic mais j ai mis
la command Mid sur Element1 aussi
if Mid (Element1,1,4) <> Mid (Element2,1,4)
merci infiniment  :)
si possible j ai une question dsl si je vous dérange :(
je veux une command qui va copie une colonne et le copie horizontalemnt par exampl:
dans "A1" j ai " produit 1 "
        "A2" j ai " produit 2 "
    et "A3" j ai " produit 3 "
et je veux coller Produit1 dans "B1"
                         Produit2 dans "C1"
                         Produit3 dans "D1"
et merci d'avance
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Démarre l'enregistreur de macro
Copie une partie de ta colonne, positionne-toi sur B1 et fais "Collage Spécial", coche Valeur au besoin, et coche "Transposé"

Ensuite, si tu regardes le code généré, tu sauras comment procéder.

MPi