OVH Cloud OVH Cloud

Code VBA Déplacement

3 réponses
Avatar
David Giono
Bonsoir !

Plusieurs questions :
- La cellule active est B2 mais susceptible de changer, quel est le code
pour insérer une colonne à droite de celle-ci ,
- Quel est le code pour se déplacer d'une cellule vers la droite, la gauche,
vers le haut et vers le bas,
- Quel est le code pour demander à l'appli de faire la somme de toutes les
lignes situées au-dessus de la cellule active (sachant que le nombre de
lignes peut varier)

Merci de vos réponses.

3 réponses

Avatar
Alain CROS
Bonjour.

1)
Sub InsertCol()
ActiveCell.EntireColumn.Insert
End Sub
2)
Sub Adroite()
ActiveCell.Offset(, 1).Activate
End Sub
Sub EnHaut()
ActiveCell.Offset(-1).Activate
End Sub
Sub Agauche()
ActiveCell.Offset(, -1).Activate
End Sub
Sub EnBas()
ActiveCell.Offset(1).Activate
End Sub
3)
Sub LaSommeDansCellule()
ActiveCell = Application.Sum(ActiveCell.Offset(-ActiveCell.Row + 1).Resize(ActiveCell.Row - 1))
End Sub
Sub LaSommeAilleur()
MsgBox Application.Sum(ActiveCell.Offset(-ActiveCell.Row + 1).Resize(ActiveCell.Row - 1))
End Sub

Alain CROS.

"David Giono" a écrit dans le message de news:
Bonsoir !

Plusieurs questions :
- La cellule active est B2 mais susceptible de changer, quel est le code
pour insérer une colonne à droite de celle-ci ,
- Quel est le code pour se déplacer d'une cellule vers la droite, la gauche,
vers le haut et vers le bas,
- Quel est le code pour demander à l'appli de faire la somme de toutes les
lignes situées au-dessus de la cellule active (sachant que le nombre de
lignes peut varier)

Merci de vos réponses.




Avatar
FxM
Bonsoir David,

Les macros, ce n'est pas dur, c'est de l'anglais. Le plus compliqué est
de trouver le bon mot. Pour cela, tu as l'enregistreur de macro et il
faut quelque peu adapter ce que tu lis.

- La cellule active est B2 mais susceptible de changer, quel est le code
pour insérer une colonne à droite de celle-ci ,


Sub Macro1()
activecell.offset(0,1).EntireColumn.Insert
End Sub

insert -> insérer
entirecolumn -> colonne entière
offset(0,1) -> en se décalant de 0 ligne et 1 colonne
activecell -> par rapport à la cellule active

- Quel est le code pour se déplacer d'une cellule vers la droite, la gauche,
vers le haut et vers le bas,


Sub macro2()
activecell.offset(ligne,colonne).select
end sub

Pour la différence entre .select et .activate, vois là :
http://www.google.fr/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadm=%2337HqJbkDHA.1740%40TK2MSFTNGP12.phx.gbl&rnum&prev=/groups%3Fas_q%3Dselect%2520activate%26ie%3DUTF-8%26oe%3DUTF-8%26as_ugroup%3D*fr.excel%26as_scoring%3Dd%26lr%3D%26num%3D100%26hl%3Dfr

- Quel est le code pour demander à l'appli de faire la somme de toutes les
lignes situées au-dessus de la cellule active (sachant que le nombre de
lignes peut varier)


Sub macro3()
Range("A" & Range("A65536").End(xlUp).Row + 2).Formula = _
"=sum(A1:A" & Range("A65536").End(xlUp).Row & ")"
End Sub

En clair ...
range("A65536") -> la dernière cellule de la colonne A
.end(xlup) -> aller à la fin vers le haut jusqu'à ce que tu rencontres
quelque chose
.row -> indiquer la ligne
+2 -> pour se mettre deux lignes en dessous
.formula -> ce sera la formule de cette cellule
"=sum(A1:A" -> la somme de A1 à A
Range("A65536").End(xlUp).Row -> la dernière ligne de A
")" -> parce qu'il ne faut pas l'oublier ;o)

Visite le disciple http://www.excelabo.net, les archives google
http://www.google.fr/advanced_group_search?hl=fr&scoring=d&num0 et
n'oublie pas l'aide (F1), ni l'enregistreur de macros (outils - macro -
nouvelle macro)

Merci de vos réponses.
Z'en prie


@+
FxM

Avatar
David Giono
Merci de votre pédagogie et de votre aide.

Le gros problème de l'aide de l'application c'est qu'il faut trouver les
mots justes pour avoir un espoir de trouver la bonne rubrique.

A + (sans aucun doute pour de nouvelles questions).

"FxM" a écrit dans le message de news:

Bonsoir David,

Les macros, ce n'est pas dur, c'est de l'anglais. Le plus compliqué est
de trouver le bon mot. Pour cela, tu as l'enregistreur de macro et il
faut quelque peu adapter ce que tu lis.

- La cellule active est B2 mais susceptible de changer, quel est le
code


pour insérer une colonne à droite de celle-ci ,


Sub Macro1()
activecell.offset(0,1).EntireColumn.Insert
End Sub

insert -> insérer
entirecolumn -> colonne entière
offset(0,1) -> en se décalant de 0 ligne et 1 colonne
activecell -> par rapport à la cellule active

- Quel est le code pour se déplacer d'une cellule vers la droite, la
gauche,


vers le haut et vers le bas,


Sub macro2()
activecell.offset(ligne,colonne).select
end sub

Pour la différence entre .select et .activate, vois là :

http://www.google.fr/groups?hl=fr&lr=&ie=UTF-8&oe=UTF-8&threadm=%2337HqJbkDH

A.1740%40TK2MSFTNGP12.phx.gbl&rnum&prev=/groups%3Fas_q%3Dselect%2520activ
ate%26ie%3DUTF-8%26oe%3DUTF-8%26as_ugroup%3D*fr.excel%26as_scoring%3Dd%26lr%
3D%26num%3D100%26hl%3Dfr

- Quel est le code pour demander à l'appli de faire la somme de toutes
les


lignes situées au-dessus de la cellule active (sachant que le nombre de
lignes peut varier)


Sub macro3()
Range("A" & Range("A65536").End(xlUp).Row + 2).Formula = _
"=sum(A1:A" & Range("A65536").End(xlUp).Row & ")"
End Sub

En clair ...
range("A65536") -> la dernière cellule de la colonne A
.end(xlup) -> aller à la fin vers le haut jusqu'à ce que tu rencontres
quelque chose
.row -> indiquer la ligne
+2 -> pour se mettre deux lignes en dessous
.formula -> ce sera la formule de cette cellule
"=sum(A1:A" -> la somme de A1 à A
Range("A65536").End(xlUp).Row -> la dernière ligne de A

")" -> parce qu'il ne faut pas l'oublier ;o)

Visite le disciple http://www.excelabo.net, les archives google
http://www.google.fr/advanced_group_search?hl=fr&scoring=d&num0 et
n'oublie pas l'aide (F1), ni l'enregistreur de macros (outils - macro -
nouvelle macro)

Merci de vos réponses.
Z'en prie


@+
FxM