Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Pourquoi mon for each ne marche pas?

4 réponses
Avatar
steph05
Bonjour,
Je voudrais faire un for each pour r=E9cup=E9rer les 6 premiers caract=E8res
de ma colonne A. Mais je ne r=E9cup=E8re que les 6 de A1. Qu'est-ce qui
cloche dans ma formule:

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

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

merci

4 réponses

Avatar
Filochard
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

Avatar
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



Avatar
steph05
On 29 sep, 12:09, LSteph wrote:
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


Avatar
Filochard
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