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

VBA excel: déplacer curseur dans tableau + selections

2 réponses
Avatar
kernitou
j'ai un tableau de cette forme, à 2 colonnes :

cellule plage_vide
ligne_vide
plage_vide texte
plage_vide texte
plage_vide texte

- ici dans mon exemple on a la ligne cellule puis 3 lignes à traiter mais le
tableau complet comprend des centaines de fois cette configuration avec des
nombres de lignes à traiter qui changent (donc pas toujours 3 comme ici)
- je veux copier la cellule dans les plages_vides en face du texte avec une
petite macro (en boucle évidemment)

quand j'enregistre la macro et que je l'exécute, ça foire + il y a des
instructions que je ne comprends pas... la macro :

Selection.Copy <<< JE SUIS POSITIONNE SUR LA 1E CELLULE ET JE LA COPIE
ActiveCell.Offset(0, 1).Range("A1").Select <<< JE ME DEPLACE VERS LA
DROITE MAIS CE A1 DANS LA MACRO M'ENERVE
Selection.End(xlDown).Select <<< JE SAUTE DANS LA 2E COL. SUR LA 1E LIGNE
Range(Selection, Selection.End(xlDown)).Select <<< J'IDENTIFIE LE NB DE
LIGNE CONCERNEES
Range(Selection, Selection.End(xlToLeft)).Select <<< JE ME DEPLACE A
GAUCHE TOUT EN MAINTENANT LA SELECTION
ActiveCell.Offset(0, -1).Range("A1:A5").Select <<< L'ENDROIT OU JE VAIS
COPIER MA FORMULE; LE A1:A5 M'ENERVE PUISQUE LA GRANDEUR DE LA ZONE VA ETRE
CHANGEANTE ; LA MACRO SE BLOQUE DE TOUTE FACON ICI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False <<< COPIER LA CELLULE
>>> ENSUITE J'AI DES LIGNES DE DEPLACEMENT DANS LE TABLEAU QUI 1) SUPPRIME LA LIGNE CELLULE ET SE POSITIONNE SUR LA SUIVANTE
ActiveCell.Select
Application.CutCopyMode = False
Selection.End(xlUp).Select
ActiveCell.Range("A1:F1").Select
Selection.ClearContents
ActiveCell.Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select

je pige rien, à l'aide, j'ai cherché pas trouvé... ai pas trouvé comment se
débarasser de ces a1:a5 qui sont variables chez moi !

merci d'avance

2 réponses

Avatar
Yann
Re-,
Ce n'est toujours pas le bon endroit, mais voici encore ta réponse.

' Positionnes-toi manellement sur ta première cellule
While ActiveCell <> Empty
With ActiveCell
.Copy Range(Cells(.Offset(0, 1).End(xlDown).Row, .Column),
Cells(.Offset(0, 1).End(xlDown).End(xlDown).Row, .Column)) ' Attention, ce
code n'est pas bon si tu n'as qu'une seule fois du texte
'cellule plage_vide
'ligne_vide
'plage_vide texte
.End(xlDown).Select
End With
Wend

--
Bye
Yann


"kernitou" a écrit :

j'ai un tableau de cette forme, à 2 colonnes :

cellule plage_vide
ligne_vide
plage_vide texte
plage_vide texte
plage_vide texte

- ici dans mon exemple on a la ligne cellule puis 3 lignes à traiter mais le
tableau complet comprend des centaines de fois cette configuration avec des
nombres de lignes à traiter qui changent (donc pas toujours 3 comme ici)
- je veux copier la cellule dans les plages_vides en face du texte avec une
petite macro (en boucle évidemment)

quand j'enregistre la macro et que je l'exécute, ça foire + il y a des
instructions que je ne comprends pas... la macro :

Selection.Copy <<< JE SUIS POSITIONNE SUR LA 1E CELLULE ET JE LA COPIE
ActiveCell.Offset(0, 1).Range("A1").Select <<< JE ME DEPLACE VERS LA
DROITE MAIS CE A1 DANS LA MACRO M'ENERVE
Selection.End(xlDown).Select <<< JE SAUTE DANS LA 2E COL. SUR LA 1E LIGNE
Range(Selection, Selection.End(xlDown)).Select <<< J'IDENTIFIE LE NB DE
LIGNE CONCERNEES
Range(Selection, Selection.End(xlToLeft)).Select <<< JE ME DEPLACE A
GAUCHE TOUT EN MAINTENANT LA SELECTION
ActiveCell.Offset(0, -1).Range("A1:A5").Select <<< L'ENDROIT OU JE VAIS
COPIER MA FORMULE; LE A1:A5 M'ENERVE PUISQUE LA GRANDEUR DE LA ZONE VA ETRE
CHANGEANTE ; LA MACRO SE BLOQUE DE TOUTE FACON ICI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse <<< COPIER LA CELLULE
>>> ENSUITE J'AI DES LIGNES DE DEPLACEMENT DANS LE TABLEAU QUI 1) SUPPRIME LA LIGNE CELLULE ET SE POSITIONNE SUR LA SUIVANTE
ActiveCell.Select
Application.CutCopyMode = False
Selection.End(xlUp).Select
ActiveCell.Range("A1:F1").Select
Selection.ClearContents
ActiveCell.Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select

je pige rien, à l'aide, j'ai cherché pas trouvé... ai pas trouvé comment se
débarasser de ces a1:a5 qui sont variables chez moi !

merci d'avance


Avatar
Yann
Re-,
Là encore, tu n'est pas au bon endropit, mais voici ta réponse.
' Positionne-toi manellement sur ta première cellule et exécute ce code
While ActiveCell <> Empty
With ActiveCell
.Copy Range(Cells(.Offset(0, 1).End(xlDown).Row, .Column),
Cells(IIf(.Offset(0, 1).End(xlDown).Offset(1, 0) = Empty, .Offset(0,
1).End(xlDown).Row, .Offset(0, 1).End(xlDown).End(xlDown).Row), .Column))
.End(xlDown).Select
End With
Wend

--
Bye
Yann


"kernitou" a écrit :

j'ai un tableau de cette forme, à 2 colonnes :

cellule plage_vide
ligne_vide
plage_vide texte
plage_vide texte
plage_vide texte

- ici dans mon exemple on a la ligne cellule puis 3 lignes à traiter mais le
tableau complet comprend des centaines de fois cette configuration avec des
nombres de lignes à traiter qui changent (donc pas toujours 3 comme ici)
- je veux copier la cellule dans les plages_vides en face du texte avec une
petite macro (en boucle évidemment)

quand j'enregistre la macro et que je l'exécute, ça foire + il y a des
instructions que je ne comprends pas... la macro :

Selection.Copy <<< JE SUIS POSITIONNE SUR LA 1E CELLULE ET JE LA COPIE
ActiveCell.Offset(0, 1).Range("A1").Select <<< JE ME DEPLACE VERS LA
DROITE MAIS CE A1 DANS LA MACRO M'ENERVE
Selection.End(xlDown).Select <<< JE SAUTE DANS LA 2E COL. SUR LA 1E LIGNE
Range(Selection, Selection.End(xlDown)).Select <<< J'IDENTIFIE LE NB DE
LIGNE CONCERNEES
Range(Selection, Selection.End(xlToLeft)).Select <<< JE ME DEPLACE A
GAUCHE TOUT EN MAINTENANT LA SELECTION
ActiveCell.Offset(0, -1).Range("A1:A5").Select <<< L'ENDROIT OU JE VAIS
COPIER MA FORMULE; LE A1:A5 M'ENERVE PUISQUE LA GRANDEUR DE LA ZONE VA ETRE
CHANGEANTE ; LA MACRO SE BLOQUE DE TOUTE FACON ICI
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse <<< COPIER LA CELLULE
>>> ENSUITE J'AI DES LIGNES DE DEPLACEMENT DANS LE TABLEAU QUI 1) SUPPRIME LA LIGNE CELLULE ET SE POSITIONNE SUR LA SUIVANTE
ActiveCell.Select
Application.CutCopyMode = False
Selection.End(xlUp).Select
ActiveCell.Range("A1:F1").Select
Selection.ClearContents
ActiveCell.Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select

je pige rien, à l'aide, j'ai cherché pas trouvé... ai pas trouvé comment se
débarasser de ces a1:a5 qui sont variables chez moi !

merci d'avance