Excel ne répond pas lors d'execution d'une macro
Résolu
Mossaab
-
Mossaab95 Messages postés 9 Statut Membre -
Mossaab95 Messages postés 9 Statut Membre -
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
Mercii
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
A voir également:
- Excel macro qui ne s'exécute pas
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
9 réponses
bonjour, je suggère d'ajouter une ligne
après la ligne
DoEvents
après la ligne
For i = 2 To L
Mossaab
Merci mais ça n'a pas marché
yg_be
Messages postés
24281
Statut
Contributeur
1 584
>
Mossaab
et en mettant
après la ligne ?
Mossaab
>
yg_be
Messages postés
24281
Statut
Contributeur
Non plus :'(
yg_be
Messages postés
24281
Statut
Contributeur
1 584
>
Mossaab
que se passe-t'il exactement? excel ne répond pas?
Mossaab
>
yg_be
Messages postés
24281
Statut
Contributeur
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voila monsieur
https://www.transfernow.net/files/?utm_source=dOqTRM032020&utm_medium=&utm_content=en
Merci beaucoup
https://www.transfernow.net/files/?utm_source=dOqTRM032020&utm_medium=&utm_content=en
Merci beaucoup
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.
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.
Mais je compare dèja chaque ligne aux lignes suivantes, j = i+1 toujours
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 ?
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 ?
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