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

macro - étendre plage après offset

13 réponses
Avatar
j-pascal
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une liste. J'ai
ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste. A partir
de cette cellule, je veux ajouter les noms. J'avais pensé à un truc du genre
:

Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment puis-je
en partant de la cellule active et en ajoutant n cellules (ou "n" sera une
variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP

10 réponses

1 2
Avatar
j-pascal
J'oubliais :

Le "Selection.End(xlDown)" va évidemment me faire aterrir à la 65.536 ème
ligne si le tableau initial ne comporte aucun nom ! J'ajouterai donc un test
avant de lancer cette procédure ;-)

Bon week-end

JP

j-pascal wrote:
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une
liste. J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste. A
partir de cette cellule, je veux ajouter les noms. J'avais pensé à un
truc du genre



Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment
puis-je en partant de la cellule active et en ajoutant n cellules (ou
"n" sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP



Avatar
JB
Bonjour,

Activecell.Value="Toto"

JB

Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une liste. J'ai
ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste. A partir
de cette cellule, je veux ajouter les noms. J'avais pensé à un truc d u genre
:

Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment pu is-je
en partant de la cellule active et en ajoutant n cellules (ou "n" sera une
variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP


Avatar
JB
Sans test:

[A65000].End(Xlup).Offset(1,0).Select

JB

J'oubliais :

Le "Selection.End(xlDown)" va évidemment me faire aterrir à la 65.536 ème
ligne si le tableau initial ne comporte aucun nom ! J'ajouterai donc un t est
avant de lancer cette procédure ;-)

Bon week-end

JP

j-pascal wrote:
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une
liste. J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste. A
partir de cette cellule, je veux ajouter les noms. J'avais pensé à un
truc du genre



Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment
puis-je en partant de la cellule active et en ajoutant n cellules (ou
"n" sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP





Avatar
Jacky
Bonjour,
Essaie ceci:
'-----------
Sub jj()
derlg = Sheets("Feuil1").Range("a65536").End(3).Row
Range("a" & derlg).Select
MsgBox "Dernière cellule occupée de la feuille 1 colonne A est : " &
ActiveCell.Address(0, 0)
decalage = 5
Range("a" & derlg + decalage).Select
MsgBox "La selection décalée de : " & decalage & " lignes" & Chr(10) &
"Cellule : " & ActiveCell.Address(0, 0)
End Sub
'----------
--
Salutations
JJ

"j-pascal" a écrit dans le message de news:
u8%
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une liste.
J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste. A
partir de cette cellule, je veux ajouter les noms. J'avais pensé à un truc
du genre :

Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment
puis-je en partant de la cellule active et en ajoutant n cellules (ou "n"
sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP


Avatar
j-pascal
Donc tu pars de la fin, tu remontes jusqu'à la première cellule que tu
trouves sur ton passage et tu redescends d'une cellule. Simple et efficace
;-) Merci !


JB wrote:
Sans test:

[A65000].End(Xlup).Offset(1,0).Select

JB

J'oubliais :

Le "Selection.End(xlDown)" va évidemment me faire aterrir à la
65.536 ème ligne si le tableau initial ne comporte aucun nom !
J'ajouterai donc un test avant de lancer cette procédure ;-)

Bon week-end

JP

j-pascal wrote:
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une
liste. J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste.
A partir de cette cellule, je veux ajouter les noms. J'avais pensé
à un truc du genre



Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment
puis-je en partant de la cellule active et en ajoutant n cellules
(ou "n" sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP







Avatar
j-pascal
Bonsoir Jacky,

Ta procédure décale bien de "n" cellules en dessous de la dernière cellule
pleine ; néanmoins ce que je cherche, c'est sélectionner la plage qui part
de la première cellule vide (après la dernière cellule pleine !) + "n"
cellules. J'ai essayé plein de trucs et ça ne marche pas (erreur de
compilation !).

Peut-être @ + ?

JP

wrote:
Bonjour,
Essaie ceci:
'-----------
Sub jj()
derlg = Sheets("Feuil1").Range("a65536").End(3).Row
Range("a" & derlg).Select
MsgBox "Dernière cellule occupée de la feuille 1 colonne A est : " &
ActiveCell.Address(0, 0)
decalage = 5
Range("a" & derlg + decalage).Select
MsgBox "La selection décalée de : " & decalage & " lignes" &
Chr(10) & "Cellule : " & ActiveCell.Address(0, 0)
End Sub
'----------

"j-pascal" a écrit dans le message de news:
u8%
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une
liste. J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste. A
partir de cette cellule, je veux ajouter les noms. J'avais pensé à
un truc du genre :

Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment
puis-je en partant de la cellule active et en ajoutant n cellules
(ou "n" sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP




Avatar
Jacky
Re....
.... néanmoins ce que je cherche, c'est sélectionner la plage qui part de
la première cellule vide (après la dernière cellule pleine !) + "n"
'---------

Sub jj()
derlg = Sheets("Feuil1").Range("a65536").End(3).Row + 1
n = 5 'A adapter
Range("a" & derlg & ":a" & derlg + n).Select
End Sub
'-------
--
Salutations
JJ

"j-pascal" a écrit dans le message de news:
%
Bonsoir Jacky,

Ta procédure décale bien de "n" cellules en dessous de la dernière cellule
pleine ; néanmoins ce que je cherche, c'est sélectionner la plage qui part
de la première cellule vide (après la dernière cellule pleine !) + "n"
cellules. J'ai essayé plein de trucs et ça ne marche pas (erreur de
compilation !).

Peut-être @ + ?

JP

wrote:
Bonjour,
Essaie ceci:
'-----------
Sub jj()
derlg = Sheets("Feuil1").Range("a65536").End(3).Row
Range("a" & derlg).Select
MsgBox "Dernière cellule occupée de la feuille 1 colonne A est : " &
ActiveCell.Address(0, 0)
decalage = 5
Range("a" & derlg + decalage).Select
MsgBox "La selection décalée de : " & decalage & " lignes" &
Chr(10) & "Cellule : " & ActiveCell.Address(0, 0)
End Sub
'----------

"j-pascal" a écrit dans le message de news:
u8%
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une
liste. J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste. A
partir de cette cellule, je veux ajouter les noms. J'avais pensé à
un truc du genre :

Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment
puis-je en partant de la cellule active et en ajoutant n cellules
(ou "n" sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP







Avatar
JB
n = 5
[A65000].End(xlUp).Offset(1, 0).Resize(n, 1).Select

JB


Bonsoir Jacky,

Ta procédure décale bien de "n" cellules en dessous de la dernière cellule
pleine ; néanmoins ce que je cherche, c'est sélectionner la plage qui part
de la première cellule vide (après la dernière cellule pleine !) + "n"
cellules. J'ai essayé plein de trucs et ça ne marche pas (erreur de
compilation !).

Peut-être @ + ?

JP

wrote:
Bonjour,
Essaie ceci:
'-----------
Sub jj()
derlg = Sheets("Feuil1").Range("a65536").End(3).Row
Range("a" & derlg).Select
MsgBox "Dernière cellule occupée de la feuille 1 colonne A est : " &
ActiveCell.Address(0, 0)
decalage = 5
Range("a" & derlg + decalage).Select
MsgBox "La selection décalée de : " & decalage & " lignes" &
Chr(10) & "Cellule : " & ActiveCell.Address(0, 0)
End Sub
'----------

"j-pascal" a écrit dans le message de news:
u8%
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une
liste. J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma liste . A
partir de cette cellule, je veux ajouter les noms. J'avais pensé à
un truc du genre :

Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ? Comment
puis-je en partant de la cellule active et en ajoutant n cellules
(ou "n" sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP






Avatar
j-pascal
Bonsoir JB,

Je suis bluffé par la concision de ta proc ! Génial !
Merci ++

JP


wrote:
n = 5
[A65000].End(xlUp).Offset(1, 0).Resize(n, 1).Select

JB


Bonsoir Jacky,

Ta procédure décale bien de "n" cellules en dessous de la dernière
cellule pleine ; néanmoins ce que je cherche, c'est sélectionner la
plage qui part de la première cellule vide (après la dernière
cellule pleine !) + "n" cellules. J'ai essayé plein de trucs et ça
ne marche pas (erreur de compilation !).

Peut-être @ + ?

JP

wrote:
Bonjour,
Essaie ceci:
'-----------
Sub jj()
derlg = Sheets("Feuil1").Range("a65536").End(3).Row
Range("a" & derlg).Select
MsgBox "Dernière cellule occupée de la feuille 1 colonne A est : "
& ActiveCell.Address(0, 0)
decalage = 5
Range("a" & derlg + decalage).Select
MsgBox "La selection décalée de : " & decalage & " lignes" &
Chr(10) & "Cellule : " & ActiveCell.Address(0, 0)
End Sub
'----------

"j-pascal" a écrit dans le message de
news: u8%
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une
liste. J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma
liste. A partir de cette cellule, je veux ajouter les noms.
J'avais pensé à un truc du genre :

Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ?
Comment puis-je en partant de la cellule active et en ajoutant n
cellules (ou "n" sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP








Avatar
j-pascal
Re,

Je viens de m'apercevoir que lorsqu'il n'y a pas de données initiales dans
la colonne, la plage commence à la deuxième ligne. C'est normal ?

JP

Jacky wrote:
Re....
.... néanmoins ce que je cherche, c'est sélectionner la plage qui
part de la première cellule vide (après la dernière cellule pleine
!) + "n"
'---------

Sub jj()
derlg = Sheets("Feuil1").Range("a65536").End(3).Row + 1
n = 5 'A adapter
Range("a" & derlg & ":a" & derlg + n).Select
End Sub
'-------

"j-pascal" a écrit dans le message de news:
%
Bonsoir Jacky,

Ta procédure décale bien de "n" cellules en dessous de la dernière
cellule pleine ; néanmoins ce que je cherche, c'est sélectionner la
plage qui part de la première cellule vide (après la dernière
cellule pleine !) + "n" cellules. J'ai essayé plein de trucs et ça
ne marche pas (erreur de compilation !).

Peut-être @ + ?

JP

wrote:
Bonjour,
Essaie ceci:
'-----------
Sub jj()
derlg = Sheets("Feuil1").Range("a65536").End(3).Row
Range("a" & derlg).Select
MsgBox "Dernière cellule occupée de la feuille 1 colonne A est : "
& ActiveCell.Address(0, 0)
decalage = 5
Range("a" & derlg + decalage).Select
MsgBox "La selection décalée de : " & decalage & " lignes" &
Chr(10) & "Cellule : " & ActiveCell.Address(0, 0)
End Sub
'----------

"j-pascal" a écrit dans le message de
news: u8%
Bonjour,

Je souhaiterais ajouter un certain nombre de noms à la fin d'une
liste. J'ai ceci :

Sub essai_ajouts()

Sheets("toto").Select
Range("A4").Select
Selection.End(xlDown).Offset(1, 0).Select

End Sub

La cellule active est donc la première cellule vide après ma
liste. A partir de cette cellule, je veux ajouter les noms.
J'avais pensé à un truc du genre :

Range("ActiveCells" & mavar).Select

Mais sans trop de surprise, ça ne marche pas !

Question : comment détermine-t-on en vba la cellule active ?
Comment puis-je en partant de la cellule active et en ajoutant n
cellules (ou "n" sera une variable) déterminer une nouvelle plage ?

Merci d'avance pour vos (éventuelles) réponses.

JP








1 2