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

Supprimer des lignes entre 2 fichiers via une boucle

  • Initiateur de la discussion Initiateur de la discussion Sun
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Sun

XLDnaute Nouveau
Bonjour,

Je cherche à supprimer/ou effacer (la ligne existe toujours mais il n'y a plus rien dessus)
certaines lignes dans un fichier, or je ne dois supprimer que certaines lignes
Je dispose de deux liste, la liste avec toutes les lignes et la liste des lignes à supprimer
(les deux listes sont sur des fichiers distincts, mais pour des raisons pratiques j'essaye d'abord de faire fonctionner la macro avec un seul fichier regroupant l'ensemble des informations)

Je fais mon code qui me semble propre (je suis débutant)
et excel m'affiche le message d'erreur suivant : Boucle sans Do

Je vous joins une copie de mon code


Si l'un d'entre vous peut m'aider à résoudre ce petit soucis de boucle, il est le bienvenue. 🙂

Cordialement Sun
 
Dernière édition:
Re : problème de boucle sans do

bonjour et bienvenue,

dans ton premier "IF", mets plutôt elseif au lieu de else if.

dans une boucle loop, si un if then est mal positionné, excel dit souvent que la boucle do loop n'est pas bonne.

@+
 
Re : problème de boucle sans do

Bonjour Sun,Mercant76


Do While Cells(ligne2, colone2).Value > Cells(ligne1, colone1)
If Cells(ligne1, colone1).Value <> Cells(ligne2, colone2).Value Then
ligne2 = ligne2 + 1
Else
If Cells(ligne1, colone1).Value = Cells(ligne2, colone2).Value Then
Cells(ligne1, colone1).Value = ""
End If
If Cells(ligne1, colone1).Value = "" Then
ligne1 = ligne1 + 1
End If
'If Cells(ligne1, colone1).Value > Cells(ligne2, colone2).Value Then
'Exit Do
'End If

ENDIF' il manque ceci!!

Loop


A+
 
Re : problème de boucle sans do

Merci beaucoup pour ton aide Mercant.

J'ai effectuer la petite modification mais le programme ne veut toujours pas tourner.

J'ai essayer de le tourner différemment en utilisant une autre boucle et maintenant il suffit que j'amorce la comparaison, or je n'y arrive pas
(je ne vois pas quelle instruction taper)

Do Until cel.Offset <> ""



'Cells(ligne1, colone1).Value <> Cells(ligne2, colone2).Value


If Cells(ligne1, colone1).Value = Cells(ligne2, colone2).Value Then

Cells(ligne1, colone1).EntireRow.Delete

c'est la ligne en commentaire qui me pose problème, car d'elle dépend tout le reste.


Cordialement Sun

@néné : Merci de ton aide, excel m'indique une erreur de compilation dans l'initialisation de mes variables ligne1 etc ...
 
Dernière édition:
Re : problème de boucle sans do

Comme le disait Mercant 76

"dans une boucle loop, si un if then est mal positionné, excel dit souvent que la boucle do loop n'est pas bonne.".

Or dans ta routine il manque le "EndIf" décrit dans mon méssage.

Regardes et dit nous!!!

A+
 
Re : problème de boucle sans do

Bonjour à tous,
Le code de départ me laisse dubitatif.
soit j'ai raté quelque chose, soit il ne fait rien.
Le voici raccourci;
VB:
Sub Test1()
Dim ligne1 As Integer, ligne2 As Integer, colone1 As Integer, colone2 As Integer
ligne1 = 1: colone1 = 1: ligne2 = 1: colone2 = 1
Do While Cells(ligne2, colone2).Value > Cells(ligne1, colone1).Value
    If Cells(ligne1, colone1).Value <> Cells(ligne2, colone2).Value Then
        ligne2 = ligne2 + 1
    Else
        If Cells(ligne1, colone1).Value = Cells(ligne2, colone2).Value Then ligne1 = ligne1 + 1
    End If
    'If Cells(ligne1, colone1).Value > Cells(ligne2, colone2).Value Then Exit Do
Loop
MsgBox "La suppression des fichiers est terminée"
End Sub
Si quelqu'un peut m'expliquer la finalité....
Cordialement
 
Re : problème de boucle sans do

Do While Cells(ligne2, colone2).Value > Cells(ligne1, colone1).Value

Au départ je voulais partir comme ça, sauf que la liste de fichier est longue et pas forcément dans l'ordre croissant. De plus lors d'une égalité entre Cells(ligne2, colone2).Value et Cells(ligne1, colone1).Value la boucle s’arrête car la condition de boucle est finie, or il faut qu'elle continue.
 
Re : problème de boucle sans do

je débute en vba, je ne sais pas comment sélectionner 2 fichiers pour leur faire exécuter la macro

@efgé : si tu peux me communiquer le code qui permet de classer dans l'ordre croissant je suis preneur

Pour l'instant mon code ressemble à

 

Pièces jointes

Dernière édition:
Re : Supprimer des lignes entre 2 fichiers via une boucle

Pourtant excel m'indique :
erreur de compilation :

instruction incorrecte à l'extérieur d'une procédure
et il surligne le 1 de Ligne1 = 1
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
180
Réponses
2
Affichages
203
Réponses
1
Affichages
180
Réponses
8
Affichages
471
Réponses
10
Affichages
282
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
174
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
482
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…