VBA - Boucle for each qui s'arrête dès la première valeur trouvée

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 !

rounil09

XLDnaute Occasionnel
Bonsoir le forum,

Malgré mes essais je n'arrive pas à me sortir d'une macro.

Elle fonctionne correctement, mais s'arrête dès que la première valeur égale à la cellule "A3" a été trouvée et copiée (avec les cellules adjacentes).
Malgré le "Next" , la boucle ne continue pas.

Comment faut-il modifier cette macro pour rendre la boucle opérationnelle ?

Sub INTERROCE2()

Dim Cell As Range
Dim TopCell As Range
Dim BottomCell As Range

Sheets("Liste_EP").Select

For Each Cell In Range("I2:I100000")
If Cell.Value = Range("A3").Value Then
Cell.Activate

'Sélectionner les cellules pleines de la ligne, les copier
If IsEmpty(ActiveCell.Offset(-1, 0)) Then Set TopCell = ActiveCell Else Set TopCell = ActiveCell.End(xlToLeft)
If IsEmpty(ActiveCell.Offset(1, 0)) Then Set BottomCell = ActiveCell Else Set BottomCell = ActiveCell.End(xlToRight)
Range(TopCell, BottomCell).Select

Selection.Copy
Sheets("BD_CE").Select
'Se caler dernière cellule vide de la colonne A,coller la sélection
Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.Goto reference:=Range("A1"), Scroll:=True

End If

Next

End Sub
 
Re : VBA - Boucle for each qui s'arrête dès la première valeur trouvée

Bonsoir
Tu commences dans la feuille "Liste_EP"
ensuite tu bascules sur la feuille "BD_CE"
La boucle, elle continue mais pas sur la bonne feuille

Faut bien preciser sur quelle feuille tu fais la boucle For Each .....

Code:
For Each Cell In Sheets("Liste_EP").Range("I2:I100000")

Bonne soirée
 
Re : VBA - Boucle for each qui s'arrête dès la première valeur trouvée

Bonsoir
J'étais en train de simplifier ta macro afin de la comprendre
Pas sur que j'y sois arrivé
Mais cela fonctionne chez moi (avec 2003)

VB:
Sub INTERROCE2()

Dim Cell As Range
Dim TopCell As Range
Dim BottomCell As Range

  With Sheets("Liste_EP")
    For Each Cell In .Range("I2:I10")                 '.Range("I2:I100000")
      If Cell.Value = .Range("A3").Value Then
        Cell.Activate
    
        'Sélectionner les cellules pleines de la ligne, les copier
        If IsEmpty(ActiveCell.Offset(-1, 0)) Then
          Set TopCell = ActiveCell
        Else
          Set TopCell = ActiveCell.End(xlToLeft)
        End If
        If IsEmpty(ActiveCell.Offset(1, 0)) Then
          Set BottomCell = ActiveCell
        Else
          Set BottomCell = ActiveCell.End(xlToRight)
        End If
        
        .Range(TopCell, BottomCell).Copy
        
        With Sheets("BD_CE").Range("A" & Rows.Count).End(xlUp).Offset(1, 0)
          'Se caler dernière cellule vide de la colonne A,coller la sélection
          .PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
                              SkipBlanks:=False, Transpose:=False
          .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                              :=False, Transpose:=False
  '      Application.Goto reference:=Range("A1"), Scroll:=True
        End With
      End If
    Next Cell
    
  End With
  Application.CutCopyMode = False
End Sub

A toi de voir
 
Re : VBA - Boucle for each qui s'arrête dès la première valeur trouvée

Merci de ton aide Banzai64.
Chez moi la macro plante sur cell.activate (avec EXCEL 2007)

Je vais tenter de comprendre pourquoi. Je pense que je devrais me débrouiller.
 
Re : VBA - Boucle for each qui s'arrête dès la première valeur trouvée

Bonsoir à tous
Je pense qu'il faut d'abord activer la feuille "Liste_EP" avant d'activer une cellule de cette feuille :
VB:
'...
  With Sheets("Liste_EP")
    .Activate
    For Each Cell In .Range("I2:I10")
     If Cell.Value = .Range("A3").Value Then
        Cell.Activate
'...
ROGER2327
#4962


Mercredi 25 Gueules 138 (Sainte Marmelade, Inspirée, SQ)
1er Ventôse An CCXIX
2011-W07-6T23:08:35Z
 
- 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
18
Affichages
319
Réponses
2
Affichages
285
Retour