Excel ne répond pas lors d'execution d'une macro [Résolu]

Signaler
-
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020
-
Bonjour,

Aidez moi s'il vous plait

J'ai crée une macro sur un fichier Excel qui contient plus que 22000 ligne, la macro s’exécute en mode pas à pas et quand je réduit le nombre de lignes, sinon le fichier excel beug et ne réponds pas.

Pouvez vous m'aider s'il vous plait ?

Voici la Macro
Sub MAJ2()

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim L As Long

L = Range("A1").End(xlDown).Row + 1

For i = 2 To L
    For j = i + 1 To L + 1
    
        If Sheets("Feuil1").Cells(i, 1) = Sheets("Feuil1").Cells(j, 1) Then
            For k = 2 To 100
                If Sheets("Feuil1").Cells(i, k) <> Sheets("Feuil1").Cells(j, k) Then
                    Sheets("Feuil1").Cells(i, k) = Sheets("Feuil1").Cells(i, k) & "//" & Sheets("Feuil1").Cells(j, k)
                    Sheets("Feuil1").Cells(j, k) = ""
                End If
            Next
        End If
    
    Next

Next



Mercii

Configuration: Windows / Chrome 79.0.3945.117

9 réponses

Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700
bonjour, je suggère d'ajouter une ligne
DoEvents

après la ligne
For i = 2 To L
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700 > Mossaab
que se passe-t'il exactement? excel ne répond pas?
>
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020

AU début avant de mettre DoEvents, la phrase Excel ne répond pas s'affiche à coté du titre du fichier, maintenant sa beug sans rien afficher
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700 > Mossaab
la macro est en train de travailler, cela peut prendre très longtemps.
moi, si je voulais faire ce genre de choses rapidement, je commencerais par trier les données.
>
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020

Ben j'ai attendu 30min, y a pas d'autre façon de refaire ce programme pour qui'il sois un peu fluide ?
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700 > Mossaab
moi, si je voulais faire ce genre de choses rapidement, je commencerais par trier les données.
Comment ça, trier les données ?
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700
si tu commences par trier les données suivant les valeurs en colonne A, tu peux faire très rapidement le reste du travail.
Le problème c'est qu'on doit comparer toutes les lignes, donc on peut pas faire le trie
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700
pourquoi le tri va-t'il empêcher de comparer? peux-tu donner un exemple?
Pouvez vous svp me donner un exemple de tri pour savoir dequoi vous parler exactement
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700
peux-tu partager ton fichier, ou un fichier d'exemple?
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020

Je ne peux pas le partager ici non ?
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700
pour partager ici un fichier, tu le publies sur internet (google drive, cjoint.com, ...) puis tu partages ici le lien vers le fichier.
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700
le fichier n'est pas public.
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020

Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700
ce que je suggère, c'est que tu sélectionnes toutes tes données, et puis que tu demandes à excel de les trier par ordre croissant de la première colonne.
ensuite, tu ne devras plus comparer toutes les lignes, il suffira de comparer chaque ligne aux lignes suivantes ayant la même valeur en colonne A.
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020

Mais je compare dèja chaque ligne aux lignes suivantes, j = i+1 toujours
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020
>
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020

Merci
J'ai réussi à faire ça
Un autre problème c'est que sur cette ligne

Sheets("Feuil1").Cells(i, k) = Sheets("Feuil1").Cells(i, k) & "//" & Sheets("Feuil1").Cells(j, k)

je veux que les données de Sheets("Feuil1").Cells(j, k) gardent leurs mise en forme (couleur rouge)
est ce que ceci est possible ?
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700 >
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020

je pense que c'est possible, si tu calcules la position et la longueur des données ajoutées, ainsi (non testé):
position=len(Sheets("Feuil1").Cells(i, k))+3
longueur=len(Sheets("Feuil1").Cells(j, k))
Sheets("Feuil1").Cells(i, k) = Sheets("Feuil1").Cells(i, k) & "//" & Sheets("Feuil1").Cells(j, k)
Sheets("Feuil1").Cells(i, k).Characters(position, longueur).Font.Color = _
      Sheets("Feuil1").Cells(j, k).Font.Color
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020
>
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020

Bonjour et merci
Je peux savoir pourquoi +3 ?
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020
700 >
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020

as-tu essayé avec d'autres valeurs, pour comprendre?
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020
>
Messages postés
12583
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
12 octobre 2020

Pas encore, mais ce que je comprend c'est que vous avez pensé que la cellule contient 3 mots ?
Messages postés
9
Date d'inscription
jeudi 5 mars 2020
Statut
Membre
Dernière intervention
9 mars 2020

ça a marché, merci beaucoup, c'est gentille