macro - étendre plage après offset

Le
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

  • Partager ce contenu :
Vos réponses Page 1 / 2
Trier par : date / pertinence
j-pascal
Le #4036161
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



JB
Le #4036151
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


JB
Le #4036141
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





Jacky
Le #4036131
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" 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


j-pascal
Le #3861941
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







j-pascal
Le #3861871
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" 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




Jacky
Le #3861851
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" %
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" 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







JB
Le #3861811
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" 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






j-pascal
Le #3861551
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" 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








j-pascal
Le #3861531
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" %
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" 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








Poster une réponse
Anonyme