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

MaximeC

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

Pouvez vous m'indiquer pourquoi l'incrémentation du m ligne 18 n'est pas correcte puisque le programme m'indique le message d'erreur 1004 une nouvelle fois ...

Code:
Private Sub CommandButton1_Click()

'INITIALISATION

Dim i As Long ' Lignes de la colonne B
Dim j As Long ' Colonne A à Colonne P
Dim k As Long ' Lignes de la colonne R
Dim m As Long ' Changment de couleur
Dim reference As String ' Stockage de la référence
Dim n As Long
Application.ScreenUpdating = False
' PROGRAMME

m = 0
For k = 3 To [R65536].End(xlUp).Row  ' Parcours la colonne R
    For i = 3 To [B65536].End(xlUp).Row  ' Parcours des données recensées à l'exception  des cellules non remplies
        If Cells(k, 18).Value = Cells(i, 2).Value And Cells(i, 2).Value <> "" And Cells(k, 18).Value <> "" Then 'Recherche des similitudes en évitant les cellules vides ..
            m = m + 1
            Worksheets(1).Range(Cells(i, 1), Cells(i, 16)).Interior.ColorIndex = m
            Cells(k, 18).Interior.ColorIndex = m
            reference = Cells(k, 18).Value ' Le but est d'attribuer une couleur par référence //  Stockage de la chaine
            i = i + 1
                    For n = i To [B65536].End(xlUp).Row ' Parcours de la colonne B à partir de la référence qui suit la référence trouvée
                        If Cells(i, 2).Value = reference Then
                            Worksheets(1).Range(Cells(i, 1), Cells(i, 16)).Interior.ColorIndex = m
                        End If
                    Next n
        End If
    Next i
Next k
Application.ScreenUpdating = True

End Sub
 

MaximeC

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

Pourvez vous m'indiquer pourquoi mon incrémentation a la ligne 18 ne fonctionne pas puisque le programme m'indique l'erreur 1004??
Code:
Private Sub CommandButton1_Click()

'INITIALISATION

Dim i As Long ' Lignes de la colonne B
Dim j As Long ' Colonne A à Colonne P
Dim k As Long ' Lignes de la colonne R
Dim m As Long ' Changment de couleur
Dim reference As String ' Stockage de la référence
Dim n As Long
Application.ScreenUpdating = False
' PROGRAMME

m = 0
For k = 3 To [R65536].End(xlUp).Row  ' Parcours la colonne R
    For i = 3 To [B65536].End(xlUp).Row  ' Parcours des données recensées à l'exception  des cellules non remplies
        If Cells(k, 18).Value = Cells(i, 2).Value And Cells(i, 2).Value <> "" And Cells(k, 18).Value <> "" Then 'Recherche des similitudes en évitant les cellules vides ..
            m = m + 1
            Worksheets(1).Range(Cells(i, 1), Cells(i, 16)).Interior.ColorIndex = m
            Cells(k, 18).Interior.ColorIndex = m
            reference = Cells(k, 18).Value ' Le but est d'attribuer une couleur par référence //  Stockage de la chaine
            i = i + 1
                    For n = i To [B65536].End(xlUp).Row ' Parcours de la colonne B à partir de la référence qui suit la référence trouvée
                        If Cells(i, 2).Value = reference Then
                            Worksheets(1).Range(Cells(i, 1), Cells(i, 16)).Interior.ColorIndex = m
                        End If
                    Next n
        End If
    Next i
Next k
Application.ScreenUpdating = True

End Sub
 

MaximeC

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

Bonjour,

Excusez moi de vous solliciter de nouveau, mais j'aimerai savoir si vous connaissez l'instruction qui me permetterai de sauvergarder mon document.

En fait je veux créer un bouton de commande pour "nettoyer" mon fichier (ça, c'est bon), le sauvegarder puis le fermer.

Il me semble d'après mes recherches que pour fermer il faut utiliser l'instruction : Application.Quit

Pouvez vous m'aider?

Voila mon code

Code:
Private Sub CommandButton7_Click()

'INITIALISATION
Dim i As Long
Dim j As Long

'PROGRAMME

' Supprime les "x" des cellules de la colonne Q: utilisé pour les filtres
For i = 13 To [Q65536].End(xlUp).Row
    Cells(i, 17).Value = ""
Next i
 
 ' Supprime les références de Barthe de la colonne R
For j = 13 To [R65536].End(xlUp).Row
    Cells(j, 18).Value = ""
Next j
 
 ' Réinitialise le format des cellules lorsqu'elles ont étaient trouvées après une recherche
Worksheets(1).Range(Cells(8, 1), Cells(20000, 50)).Interior.ColorIndex = 0
   
 ' Sauvegarde le fichier
 reference -documentaire - test.Save
 ' Ferme le fichier
Application.Quit

End Sub
 
Dernière édition:

leop93

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

Bonjour Maxime

Voici:

Code:
'======================================================================
'Permet de sauvegarder et quitter le classeur.
'======================================================================
Sub saveAndQuit(Cancel As Boolean)
For Each w In Application.Workbooks
w.Save
Next w
ThisWorkbook.Close
End Sub
Pourquoi un ThisWorkbook.Close plutôt qu'un Application.Quit ou un ActiveWorkbook.Close ?

Car:

- Application.Quit: Excel se ferme complètement, donc tous les fichiers en cours aussi... Pas top...
- ActiveWorkBook.Close: Le classeur sur lequel on se trouve est quitté, si on ne travaille pas sur le tient mais un autre... Pas top...

Bon après-midi

Leop93
 

MaximeC

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

Puis je l'utiliser avec un bouton de commande?
 

leop93

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

Oui il suffit de faire clique droit sur ton bouton, affecter une macro et la sélectionner (saveAndQuit) dans la liste déroulante.

Tu aurais pu tester avant de demander quand même... Ou utiliser la fonction recherche du forum ou de google...
 

MaximeC

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

C'est bon j'ai fait travailler mon cerveau et j'ai trouver! Mais peux tu m'expliquer ta boucle for s'il te plait?
MErci
 

leop93

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

Pour chaque feuille (w = worksheet = feuille) dans le classeur
Sauvergarder feuille
Feuille suivante
Là aussi tu aurais pu solliciter tes méninges... ;)
 

MaximeC

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

Certe, mais il faut le savoir que w= feuille ;)

Merci pour votre aide et votre patience,

Bonne journée

Maxime
 

leop93

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

Pas de soucis, avec plaisir.

Tout est fonctionnel désormais ?
 

MaximeC

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

Bonjour,

Je le pensais jusqu'à ce que je demande à une personne de venir le tester.

Tout mes codes fonctionnent. :)

Cependant lorsque j'ai fait ma recherche et que j'ai trouvé des similitudes, j'ai ajouté un x (dans le code vba) en face de cette/ces ligne(s), afin de pouvoir faire un tri, et éviter à mes collègues, de devoir chercher les lignes coloriées dans les 7500 qui composent le document.

Mais, quand j'exécute ce tri, mes boutons de commande se déplace vers le haut de la feuille, et masque une partie des lignes triées...

Avez vous une solution à ce problème?
 

MaximeC

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

* Le tri ce fait manuellement, puisque je ne connais pas de code vba pour cela ..
 

MaximeC

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

J'ai eu une idée ^^. Est-il possible de faire un code vba pour copier les lignes contenant un "x" dans la feuille 2, les unes derrière les autres?

Du genre

Code:
 j=1
For i = 13 to [Q65536].End(xlUp).Row
 If Cells(i,17).Value = "x" then
'Copier la plage de cellule(Ai:Pi) dans la feuille 2 sur la plage (Aj:Pj) 
j = j + 1
End for

' Et finir par une instruction nous dirigeant directiment en feuille 2
 
Dernière édition:

leop93

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

Bonjour

J'utilise ceci, tu n'as plus qu'à l'adapater. Je t'ai déjà précisé où tu devais mettre le nom de tes feuilles. ;)

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
End Sub
Bon appétit et bon courage

Leop93
 
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 :D :

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
 

MaximeC

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

Je savais pas, ou plus ;).
Merci bien, bonne ap
 

Haut Bas