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

Mon "For each Cell" s'arrete...

  • Initiateur de la discussion Initiateur de la discussion Capsule
  • 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 !

C

Capsule

Guest
Bonjour,
J'ai un problème de boucle "For each Cell in Plage" qui ne me prend que les cellules de la 1ere colonne...et pas les autres...
Dans ma Plage, la colonne 2 est vide, mais la 3 est pleine.

Voici le code :

Code:
Sub CRHEBDO()

Dim r As Integer
Dim c As Integer
Dim i As Integer
Dim d As Integer
Dim s As Integer
Dim Cell As Range
Dim Plage As Range


Set Plage = ActiveSheet.UsedRange.Rows("2:" & ActiveSheet.UsedRange.Rows.Count)
 
 For Each Cell In Plage
    If Not IsEmpty(Cell) Then
            r = Cell.Row
            c = Cell.Column
            s = ActiveSheet.Name
            d = Cells(1, c + 1).Value
            
            'collage de la données
            i = Sheets("GLOBAL").UsedRange.Rows.Count + 1
            Sheets("GLOBAL").Range("A" & i).Value = s
            Sheets("GLOBAL").Range("B" & i).Value = d
            Sheets("GLOBAL").Range("C" & i).Value = Cell.Value
            
          End If
  Next Cell
  
End Sub

merci
 
Re : Mon "For each Cell" s'arrete...

Bonsoir Capsule,
Tu pourrais nous expliquer a quoi sert cette ligne STP ?
a+
papou🙂

Code:
Set Plage = ActiveSheet.UsedRange.Rows("2:" & ActiveSheet.UsedRange.Rows.Count)
 
Re : Mon "For each Cell" s'arrete...

Salut Capsule,

Si je peux me permettre ... que ton code semble compliqué (utilisation de variables objet)
pour copier / coller des valeurs 😕

Mais nous ne connaissons pas les tenants / aboutissants

A+
 
Re : Mon "For each Cell" s'arrete...

OK ça fonctionne !

je post mon code ici :

Code:
Option Explicit
Sub CRHEBDO()

Dim r As Integer
Dim c As Integer
Dim i As Integer
Dim d As Integer
Dim s As Integer
Dim Cell As Range
Dim Plage As Range


Set Plage = ActiveSheet.UsedRange
 
 For Each Cell In Plage.Offset(1).Resize(Plage.Rows.Count - 1)
    If Not IsEmpty(Cell) Then
            c = Cell.Column
            s = ActiveSheet.Name
            d = Cells(1, c + 1).Value
            
            'collage de la donnée
            i = Sheets("GLOBAL").UsedRange.Rows.Count + 1
            Sheets("GLOBAL").Range("A" & i).Value = s
            Sheets("GLOBAL").Range("B" & i).Value = d
            Sheets("GLOBAL").Range("C" & i).Value = Cell.Value
            
          End If
  Next Cell
  
End Sub

Pour mon info, qu'est-ce qui n'alait pas dans mon code. Je ne saisi pas la différence entre :
Code:
Set Plage = ActiveSheet.UsedRange
 
 For Each Cell In Plage.Offset(1).Resize(Plage.Rows.Count - 1)

et
Code:
Set Plage = ActiveSheet.UsedRange.Rows("2:" & ActiveSheet.UsedRange.Rows.Count)
 
 For Each Cell In Plage

Merci
 
Re : Mon "For each Cell" s'arrete...

Bonjour.
Il serait indiqué de toute façon de déclarer r, c et i As Long.
À défaut d'être la bonne, peut être hélas, ça ferait au moins une cause de plantage possible en moins ultérieurement.
Cordialement.
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
4
Affichages
736
Réponses
15
Affichages
791
Réponses
5
Affichages
915
Réponses
2
Affichages
528
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
592
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…