For Each .... Next

nadir****

XLDnaute Occasionnel
Bonjour.
J'ai un soucis avec le code suivant:
Code:
Dim Pré As Range, Cellule As Range
Set Pré = Worksheets("PRE").Range("A1").CurrentRegion
Pré.Columns(2).Insert
For Each Cellule In Pré.Columns(2)
    Cellule = Cellule.Offset(, 1) & Cellule.Offset(, 2)
Next Cellule
Une erreur se produit à l'éxécution:
Erreur d'écécution '13'
Incompatibilité de type
Le déboggeur pointe sur l'instruction
Code:
    Cellule = Cellule.Offset(, 1) & Cellule.Offset(, 2)

Est-ce que quelqu'un pourrait m'aider ?
Merci
Nadir
 

Pièces jointes

  • TestForEach.xlsm
    37.5 KB · Affichages: 53

Hervé

XLDnaute Barbatruc
Re : For Each .... Next

bonjour :)

essayes comme ceci :

Code:
Sub testForEach()
'
Dim Pré As Range, Cellule As Range
'
Set Pré = Worksheets("PRE").Range("A1").CurrentRegion
Pré.Columns(2).Insert
For Each Cellule In Range("b1:b" & Pré.Rows.Count)
    Cellule = Cellule.Offset(, 1) & Cellule.Offset(, 2)
Next Cellule
'
End Sub

a plus
 

nadir****

XLDnaute Occasionnel
Re : For Each .... Next

Merci Hervé.

Je travaille souvent sur les lignes entières (ou des colonnes entières) de plages et je trouvais mon premier code plus simple. J'aurais bien aimé pouvoir l'utiliser. Mais je ne sais pas pourquoi il y a un bug!

Je peux également faire une boucle du type

Code:
for i = 1 to Pré.rows.count
   Pré(i,2)=Pré(i,3) & Pré(i,4)
next i

Mais je ne comprends pas pourquoi mon code précédent ne fonctionne pas.
Si avant de lancer la boucle (en mode arrêt) je fais un Pré.columns(2). select en fenêtre d’exécution, la bonne colonne est sélectionnée.
Par contre aucune cellule n'est sélectionnée si je fais un Cellule.select.
Je ne sais pas.

je trouvais mon premier code "élégant" mais ...

Merci de ton aide.

Nadir
 

Discussions similaires

Réponses
12
Affichages
663

Statistiques des forums

Discussions
312 086
Messages
2 085 197
Membres
102 814
dernier inscrit
JLGalley