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

Capsule

XLDnaute Nouveau
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
 
C

Compte Supprimé 979

Guest
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 :confused:

Mais nous ne connaissons pas les tenants / aboutissants

A+
 

Capsule

XLDnaute Nouveau
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
 

Dranreb

XLDnaute Barbatruc
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.
 

Discussions similaires

Réponses
21
Affichages
380
Réponses
1
Affichages
195

Statistiques des forums

Discussions
312 472
Messages
2 088 710
Membres
103 930
dernier inscrit
Jibo