Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

MaximeC

XLDnaute Junior
Bonjour,

Dans le cadre d'un emploie saisonnier, on m'a demandé de réaliser une macro afin de comparer des données... Ayant très peu de base en VBA (si ce n'est un cours ayant eu pour objet la création de userform afin de réaliser des expériences probabilistes), je me tourne vers vous afin de m'orienter dans cette réalisation.

L'objectif est de trouver si il y en a, des similitudes entre une colonne de base B (environ 7500 lignes) et des données actualisées régulièrement à inserer (par moi même) dans le même fichier excel, colonne R (nombre de lignes variables ... maximum 500).

L'autre but étant de repérer facilement les similtudes, serait-il possible de mettre en couleur les lignes des cellules identiques au fichier importer? (une couleur par référence, jusqu'à la colonne P).

D'autre part, il y a 3 typeS de références à comparer, séparées dans 3 colonnes distinctes. Est-il possible de réaliser les demandes ci dessus sur chacune des colonnes (B,C et F)?

Enfin, afin de faciliter l'utilisation future de mes collègues, il me semble qu'il est possible de créer un bouton de commande afin de lancer chacun des 3 programmes. Pouvez vous les réaliser?

Dans l'attente de vos réponses, je vous souhaite une agréable journée.

Merci, et bon courage.

Maxime
 
Dernière édition:

MaximeC

XLDnaute Junior
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

"i2:i" & Z?
"=etat_dessin"?


Entre temps j'ai commencé a faire ce code, mais je ne sais pas 'il est correcte, et au vue du tient, il a l'air ridicule :

Code:
Private Sub CommandButton9_Click()

'Déclaration des variables
Dim i As Long 'Ligne i de la colonne Q
Dim j As Long ' Compteur

' PROGRAMME réaliser par le bouton Filtrer
For i = 13 To [Q65536].End(xlUp).Row
 If Cells(i, 18).Value = "x" Then
    Range("A"&i:"P"&i).Select  'COMMENT FAIS TU DANS CE CAS POUR INDIQUER LA CELLULE ETANT DONNE QUE I EST UNE VARIABLE?
    Selection.Copy
    Sheets("Notice d'utilisation").Select
    Range("A1").Select
    ActiveSheet.Paste

Next i

End Sub
 

leop93

XLDnaute Occasionnel
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

Effectivement, je me suis trompé, je t'en ai trop donné, j'ai édité le message d'avant et je te le redonne ici:

Code:
Sub CopierColler()
Dim i&
Z = 1
 LigneFeuille1 = 2
    Sheets("TA_FEUILLE_DORIGINE").Select
    
      For i = 0 To [I65536].End(xlUp).Row
        
        If Range("i2").Offset(i, 0).Value = "x" Then
            Range("i2").Offset(i, 0).EntireRow.Copy
            Sheets("TA_FEUILLE_DE_DESTINATION").Select
            Cells(LigneFeuille1, 1).EntireRow.Insert Shift:=xlDown
            Sheets("TA_FEUILLE_DORIGINE").Select
            Z = Z + 1
        End If
        
    Next
End Sub

Leop93
 

MaximeC

XLDnaute Junior
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

Code:
Private Sub CommandButton9_Click()
    CopierColler()
End Sub

Quand je met cela dans la feuil1, il me met erreur de compilation, et il attendrait un "="
 

leop93

XLDnaute Occasionnel
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

Re

Code:
Private Sub CommandButton9_Click()
    CopierColler
    'ou Call CopierColler
     'ne jamais mettre () lors de l'appelle d'une macro dans une autre
End Sub



Leop93
 

leop93

XLDnaute Occasionnel
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

De rien.

Merci à toi aussi.

De mon côté, j'ai fini mon application, enfin tout comme, il ne me reste plus qu'un petit truc à modifier pour que la modification d'une cellule d'une ligne présente à plusieurs endroits dans le classeur entraine la même modification partout. 2000 lignes de code (quasiment 2500 avant optimisation ==> énorme gain de vitesse).
 

MaximeC

XLDnaute Junior
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

Wooh!!! Ca m'embrouille ton affaire !
Dans ton code, tu fais une boucle for sur i, i parcourant la collone I donc i correspond à une ligne!?!
Et la tu me dis que i correspond a une colonne ...
 

MaximeC

XLDnaute Junior
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

Malheureusement je ne vais pas pouvoir
Parce que même en supprimant la quasi intégaralité des lignes, mon fichier "pése" toujours 15 152 ko? et ci joint ne fonctionn pas ..
 

MaximeC

XLDnaute Junior
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

Ma première feuille se nomme "Fichier"; Ma seconde "Filtre" voila ce que ca donne quand je remplace dans ton programme :

Code:
Sub CopierColler()
Dim i&
Z = 1
 LigneFeuille1 = 2
    Sheets("Fichier").Select
    
      For i = 0 To [Q65536].End(xlUp).Row ' Parcours de la colonne Q de la feuille 1
        
        If Range("i2").Offset(i, 0).Value = "x" Then ' Test qui doit parcourir la colonne Q entièrement pour savoir si les valeurs des cellules sont équivalement à Q
            Range("i2").Offset(i, 0).EntireRow.Copy ' Si c'est le cas je souhaite copier la ligne, de la colonne A à P vers le fichier 2
            Sheets("Filtre").Select
            Cells(LigneFeuille1, 1).EntireRow.Insert Shift:=xlDown
            Sheets("Fichier").Select
            Z = Z + 1 ' Permet copier les lignes sur la feuille 2, les une après les autres 
        End If
        
    Next
End Sub
 

leop93

XLDnaute Occasionnel
Re : Mettre en évidence des similitudes entre 2 colonnes Excel [VBA]

Il faut différencier le i de la boucle et le i/I de la cellulle. Par exemple les "i2" correspondent à la cellule et non au i incrémenté. Pour avoir le i incrémenté ça aurait été: ("lettre_de_ta_colonne"& i).

En MP tu ne pourras pas non plus car trop gros.

Pour ton fichier, retire les lignes de couleurs (enfin repasse les en blanches) et laisse que 100-200 lignes de données.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…