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

leop93

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

De rien. :cool:

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). :eek:
 

MaximeC

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

" If Range("i2").Offset(i, 0).Value = "x" Then"
i pour la ligne et 2 pour la colonne?
 

leop93

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

Regarde ton classeur...

Les lettres sont où ? Sur les colonnes.

Les chiffres sont où ? Sur les lignes.

:rolleyes:
 

MaximeC

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

*Parce que lorque je lance le bouton, rien ne se passe.
 

leop93

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

"I2" c'est la cellule I2...

Upload une nouvelle fois ton fichier que je te l'adapte si tu veux.
 

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]

On peut communiquer en MP sur ce forum?
 

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.
 

MaximeC

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

Les lignes sont blanches, et il me reste que 50 données ... Je pense que cela vient du fait qu'il y a 9 boutons de commande ..
 

MaximeC

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

A quoi sert le Z?? tu fais juste une incrémentation dessus, mais cette varaible n'intervient dans aucune de tes instructions?..
 

leop93

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

Ca allait avec l'autre partie du code. Celle que j'ai supprimé.

15Mo pour 9 boutons et 50 lignes, tu es certains ? Car j'ai une vingtaine de boutons, plus de 100 lignes, de la couleur et 2000 lignes de code pour 130Ko...
 

MaximeC

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

C'est à dire??

Certains, oui. Et 16 Mo quand j'ai toute mes lignes ..
 

MaximeC

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

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("Q" & i).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("Q" & i).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

Est ce que cela te parrait correcte?
 

leop93

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

Re

C'est à dire que tu n'en as pas l'utilité je pense car je me servais du Z dans l'autre partie de mon code. Tu peux supprimer les lignes où les Z sont présents. ;)

Pour ton code, je regarde plus en profondeur demain. Je suis en train de faire mes manuels d'utilisation et administrateur, je me rend compte que c'est encore plus compliqué que le code pour penser à tout. Et ça prend un temps fou.

Bonne fin de journée

Leop93
 

leop93

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

Bonjour

Ceci devrait suffire:

Code:
Sub CopierColler()
Dim i&
LigneFeuille1 = 2 'utile uniquement si tu as en ligne une les entêtes de chaque colonne
    Sheets("Fichier").Select
    
      For i = 0 To [Q65536].End(xlUp).Row ' Parcours de la colonne Q de la feuille 1
      
        If Range("Q" & i).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("Q" & i).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
      End If
        
    Next
End Sub
Bonne journée

Leop93
 

MaximeC

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

Ok merci. C'est cela que j'avais mis hier, mais cela ne marchait pas .. :confused: mais j'ai reussi quand même à réaliser mon filtre, je peux t'envoyer ce que j'ai fait si tu veux !

D'autre part, sais tu comment faire pour figer un label, lorqu'on insere une ligne? je voudrais qu'il reste a la ligne 20001 même si on insert pa exemple une ligne entre la 18 et la 19 .
 

MaximeC

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

Un de mes collègue a su me répondre. Mon fichier étant terminé, voilà que cette conversation le devient également.

Au cas ou:

Code:
Private Sub CommandButton9_Click()
'Bouton de commande "Filtrer"

'Déclaration des variables
Dim i As Long
Dim j As Long
Dim plage As Range


Application.ScreenUpdating = False

'PROGRAMME réaliser par le bouton Filtre
j = 1
For i = 13 To [Q20000].End(xlUp).Row
    If Cells(i, 17).Value = "x" Then
        Set plage = Range("A" & i & ":P" & i)
        plage.Copy
        Sheets("Résultat").Select
        ActiveSheet.Cells(j, 1).Select
        ActiveSheet.Paste
        j = j + 1
    End If
Next i
 
Application.ScreenUpdating = True
End Sub

Merci encore, bonne journée

Maxime
 

leop93

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

Parfait. Et merci du partage du code fonctionnel.

Bonne continuation
 

Haut Bas