Pourquoi mon for each ne marche pas?

Le
steph05
Bonjour,
Je voudrais faire un for each pour récupérer les 6 premiers caractères
de ma colonne A. Mais je ne récupère que les 6 de A1. Qu'est-ce qui
cloche dans ma formule:

ligne = Range("A1").End(xlDown).Row

For Each LaCellule In Range("B1:B" & ligne)
LaCellule = Left(ActiveCell.Offset(0, -1), 6)
Next LaCellule

merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Filochard
Le #4855341
Je voudrais faire un for each pour récupérer les 6 premiers caractères
de ma colonne A. Mais je ne récupère que les 6 de A1. Qu'est-ce qui
cloche dans ma formule:

ligne = Range("A1").End(xlDown).Row

For Each LaCellule In Range("B1:B" & ligne)
LaCellule = Left(ActiveCell.Offset(0, -1), 6)
Next LaCellule


Code de remplacement :

For Each LaCellule In Range("B1:B" & ligne)
LaCellule.Value = Left(LaCellule.Offset(0, -1), 6)
Next LaCellule

LSteph
Le #4855321
Bonjour,
Attention
une cellule que tu boucle ne devient pas cellule active
on pourrait mais en macro , en ne sélectionnant pas on va beaucoup plus
vite

Sub aaaaq()
Dim c As Range
For Each c In Range("a1", [a65536].End(xlUp).Address)
c.Offset(0, 1) = Left(c, 6)
Next

End Sub

'lSteph
nota: xldown si tu as plusieurs tableaux superposés, sinon xlup
englobera aisi toute la colonne (cellules remplies) même si il y a un
vide

Bonjour,
Je voudrais faire un for each pour récupérer les 6 premiers caractères
de ma colonne A. Mais je ne récupère que les 6 de A1. Qu'est-ce qui
cloche dans ma formule:

ligne = Range("A1").End(xlDown).Row

For Each LaCellule In Range("B1:B" & ligne)
LaCellule = Left(ActiveCell.Offset(0, -1), 6)
Next LaCellule

merci



steph05
Le #4855131
On 29 sep, 12:09, LSteph
Bonjour,
Attention
une cellule que tu boucle ne devient pas cellule active
on pourrait mais en macro , en ne sélectionnant pas on va beaucoup plus
vite

Sub aaaaq()
Dim c As Range
For Each c In Range("a1", [a65536].End(xlUp).Address)
c.Offset(0, 1) = Left(c, 6)
Next

End Sub

'lSteph
nota: xldown si tu as plusieurs tableaux superposés, sinon xlup
englobera aisi toute la colonne (cellules remplies) même si il y a un
vide




Bonjour,
Je voudrais faire un for each pour récupérer les 6 premiers caract ères
de ma colonne A. Mais je ne récupère que les 6 de A1. Qu'est-ce qui
cloche dans ma formule:

ligne = Range("A1").End(xlDown).Row

For Each LaCellule In Range("B1:B" & ligne)
LaCellule = Left(ActiveCell.Offset(0, -1), 6)
Next LaCellule

merci- Masquer le texte des messages précédents -


- Afficher le texte des messages précédents -


Merci, la deuxième méthode marche mais pas la première (en ajoutant
value).
Merci


Filochard
Le #4855001
Merci, la deuxième méthode marche mais pas la première (en ajoutant
value).


Cette affirmation me parait très hasardeuse...
Avez- vous bien initialisé la variable "ligne" ?

http://cjoint.com/?jDrR1OcBiT

Publicité
Poster une réponse
Anonyme