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

Boucle ne boucle pas

landry81

XLDnaute Nouveau
Boujour à tous,
Suite à mes recherches sur différents forum qui ne m'ont pas apporter de réponses, je retourne vers vous.
Je suis débutant en VBA et je dois réaliser pour mon stage un petit fichier. Je coince pour un bouton d'archivage. Le but est de :
- réaliser une recherche de référence (nom de la cellule "archive_réf")
- copier une ligne de l'onglet 1 suite à cette recherche
- supprimer toutes les lignes de l'onglet 2 suite à cette recherche

Le code que j'utilise pour l'instant est le suivant :
Code:
Sub Archiver()
   Dim n As Integer
   Dim lig As Range
         Set lig = Worksheets("onglet3").Range("A65536").End(xlUp).Offset(1, 0)
           
      For n = 1 To 2000
       If Worksheets("onglet1").Range("A" & n).Value = Range("archive_ref").Value Then
           Worksheets("onglet1").Range("A" & n).EntireRow.Cut
       lig.Select
       ActiveSheet.Paste
    
Dim I     As Long
Dim Plage As Range
    Set Plage = Worksheets("onglet2").Range("A7:A" & Range("A7").End(xlDown).Row)
For I = Plage.Cells.Count To 1 Step -1
  If Plage.Cells(I).Value = Range("archive_ref").Value Then
    Plage.Cells(I).EntireRow.Delete
  End If
Next
   End If
       Next n

  End Sub

Le problème :
- Si la référence n'existe pas dans l'onglet1 toutes les lignes de l'onglet 2 sont supprimer (donc jusque là tout va bien )
- Si la référence existe dans l'onglet 1, la ligne est déplacer, mais les lignes de l'onglet 2 ne sont pas supprimer !! comme si l'égalité de la fonction if bloqué la progression de la boucle.
Auriez vous une solution pour que la boucle continue pour pouvoir supprimer toutes les lignes de l'onglet 2 ?
Par avance merci,
Landry
 

tototiti2008

XLDnaute Barbatruc
Re : Boucle ne boucle pas

Bonjour landry81,

Bienvenue sur XLD,

pas sûr que ce soit ça mais à tester :

Code:
Set Plage = Worksheets("onglet2").Range("A7:A" & [COLOR=red]Worksheets("onglet2"[/COLOR][COLOR=red]).[/COLOR]Range("A7").End(xlDown).Row)
 

Discussions similaires

Réponses
4
Affichages
472
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…