Bonjour,
J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à
sélectionner la colonne A pour la recopie vers le bas de la formule qui s'y
trouve.
Private Sub CommandButton5_Click()
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça
bloque
Range(Selection, Selection.End(xlDown)).Select
Selection.FillDown
End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et
plus efficace.
Merci de vos bons conseils.
danielH
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pascal ETIENNE
Bonjour Daniel j'ai eu le meme problème, et je l'ai résolu comme ça: excel refuse de sélectionner des ranges ou cellules dans le code lié a un bouton. il faut que le code lié au bouton appelle simplement une procédure qui se trouve dans un module standard et ça marche.
dans un module standard: sub mamacro()
ton code End Sub
et dans le code du bouton: Private Sub CommandButton5_Click() call mamacro End Sub A+ Pascal
"danielrv" a écrit dans le message de news:
Bonjour, J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à sélectionner la colonne A pour la recopie vers le bas de la formule qui s'y
trouve.
Private Sub CommandButton5_Click() Selection.EntireRow.Delete ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça bloque Range(Selection, Selection.End(xlDown)).Select Selection.FillDown End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et plus efficace. Merci de vos bons conseils. danielH
Bonjour Daniel
j'ai eu le meme problème, et je l'ai résolu comme ça:
excel refuse de sélectionner des ranges ou cellules dans le code lié a un
bouton.
il faut que le code lié au bouton appelle simplement une procédure qui se
trouve dans un module standard et ça marche.
dans un module standard:
sub mamacro()
ton code
End Sub
et dans le code du bouton:
Private Sub CommandButton5_Click()
call mamacro
End Sub
A+
Pascal
"danielrv" <novice@neuf.fr> a écrit dans le message de
news:edfPoHlHGHA.3944@tk2msftngp13.phx.gbl...
Bonjour,
J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à
sélectionner la colonne A pour la recopie vers le bas de la formule qui
s'y
trouve.
Private Sub CommandButton5_Click()
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça
bloque
Range(Selection, Selection.End(xlDown)).Select
Selection.FillDown
End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et
plus efficace.
Merci de vos bons conseils.
danielH
Bonjour Daniel j'ai eu le meme problème, et je l'ai résolu comme ça: excel refuse de sélectionner des ranges ou cellules dans le code lié a un bouton. il faut que le code lié au bouton appelle simplement une procédure qui se trouve dans un module standard et ça marche.
dans un module standard: sub mamacro()
ton code End Sub
et dans le code du bouton: Private Sub CommandButton5_Click() call mamacro End Sub A+ Pascal
"danielrv" a écrit dans le message de news:
Bonjour, J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à sélectionner la colonne A pour la recopie vers le bas de la formule qui s'y
trouve.
Private Sub CommandButton5_Click() Selection.EntireRow.Delete ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça bloque Range(Selection, Selection.End(xlDown)).Select Selection.FillDown End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et plus efficace. Merci de vos bons conseils. danielH
Jacky
Bonjour,
Si la sélection en cours n'est pas en ligne 1, cette macro fonctionne correctement chez moi.
Salutations JJ
"danielrv" a écrit dans le message de news:
Bonjour, J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à sélectionner la colonne A pour la recopie vers le bas de la formule qui s'y
trouve.
Private Sub CommandButton5_Click() Selection.EntireRow.Delete ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça bloque Range(Selection, Selection.End(xlDown)).Select Selection.FillDown End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et plus efficace. Merci de vos bons conseils. danielH
Bonjour,
Si la sélection en cours n'est pas en ligne 1, cette macro fonctionne
correctement chez moi.
Salutations
JJ
"danielrv" <novice@neuf.fr> a écrit dans le message de
news:edfPoHlHGHA.3944@tk2msftngp13.phx.gbl...
Bonjour,
J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à
sélectionner la colonne A pour la recopie vers le bas de la formule qui
s'y
trouve.
Private Sub CommandButton5_Click()
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça
bloque
Range(Selection, Selection.End(xlDown)).Select
Selection.FillDown
End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et
plus efficace.
Merci de vos bons conseils.
danielH
Si la sélection en cours n'est pas en ligne 1, cette macro fonctionne correctement chez moi.
Salutations JJ
"danielrv" a écrit dans le message de news:
Bonjour, J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à sélectionner la colonne A pour la recopie vers le bas de la formule qui s'y
trouve.
Private Sub CommandButton5_Click() Selection.EntireRow.Delete ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça bloque Range(Selection, Selection.End(xlDown)).Select Selection.FillDown End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et plus efficace. Merci de vos bons conseils. danielH
danielrv
Bonjour et merci pour vos réponses, Je m'aperçois que je n'ai pas été précis dans ma question. Cette macro fonctionne, mais s'il y a une cellule vide entre la colonne de la cellule active quand on clicque sur le bouton, colonne H par exemple et la colonne A, la sélection s'arrête à la cellule vide, ce qui est normal. Ce que je cherche c'est de forcer la colonne A de la ligne active.
ActiveCell.Offset(-1, 0).Range("A1").Select 's'arrête à la première cellule vide et non en colonne A
danielH
Bonjour et merci pour vos réponses,
Je m'aperçois que je n'ai pas été précis dans ma question.
Cette macro fonctionne, mais s'il y a une cellule vide entre la colonne de
la cellule active quand on clicque sur le bouton, colonne H par exemple et
la colonne A, la sélection s'arrête à la cellule vide, ce qui est normal. Ce
que je cherche c'est de forcer la colonne A de la ligne active.
ActiveCell.Offset(-1, 0).Range("A1").Select 's'arrête à la première cellule
vide et non en colonne A
Bonjour et merci pour vos réponses, Je m'aperçois que je n'ai pas été précis dans ma question. Cette macro fonctionne, mais s'il y a une cellule vide entre la colonne de la cellule active quand on clicque sur le bouton, colonne H par exemple et la colonne A, la sélection s'arrête à la cellule vide, ce qui est normal. Ce que je cherche c'est de forcer la colonne A de la ligne active.
ActiveCell.Offset(-1, 0).Range("A1").Select 's'arrête à la première cellule vide et non en colonne A
danielH
AV
| ActiveCell.Offset(-1, 0).Range("A1").Select 's'arrête à la première cellule | vide et non en colonne A
Cells(ActiveCell.Row, "A").Select
AV
| ActiveCell.Offset(-1, 0).Range("A1").Select 's'arrête à la première cellule
| vide et non en colonne A
Bonjour et merci pour vos réponses, Je m'aperçois que je n'ai pas été précis dans ma question. Cette macro fonctionne, mais s'il y a une cellule vide entre la colonne de la cellule active quand on clicque sur le bouton, colonne H par exemple et la colonne A, la sélection s'arrête à la cellule vide, ce qui est normal. Ce que je cherche c'est de forcer la colonne A de la ligne active.
ActiveCell.Offset(-1, 0).Range("A1").Select 's'arrête à la première cellule vide et non en colonne A
danielH
-- JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/ C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
Bonjour et merci pour vos réponses,
Je m'aperçois que je n'ai pas été précis dans ma question.
Cette macro fonctionne, mais s'il y a une cellule vide entre la colonne de la
cellule active quand on clicque sur le bouton, colonne H par exemple et la
colonne A, la sélection s'arrête à la cellule vide, ce qui est normal. Ce que
je cherche c'est de forcer la colonne A de la ligne active.
ActiveCell.Offset(-1, 0).Range("A1").Select 's'arrête à la première cellule
vide et non en colonne A
danielH
--
JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs
et astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
Bonjour et merci pour vos réponses, Je m'aperçois que je n'ai pas été précis dans ma question. Cette macro fonctionne, mais s'il y a une cellule vide entre la colonne de la cellule active quand on clicque sur le bouton, colonne H par exemple et la colonne A, la sélection s'arrête à la cellule vide, ce qui est normal. Ce que je cherche c'est de forcer la colonne A de la ligne active.
ActiveCell.Offset(-1, 0).Range("A1").Select 's'arrête à la première cellule vide et non en colonne A
danielH
-- JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/ C:Program FilesMicrosoft OfficeOffice1036VBALIST.XLS
LSteph
Bonjour Daniel, Attention la macro que tu indiques supprime la ligne entière d'accord mais aussi ensuite elle prend la cellule juste supérieure à la cellule de départ et la recopie sur les cellules vides de la colonne situées en dessous. Pour faire idem mais en ce décalant depuis lla sélection vers lacolonne a et prendre comme point de départ la cellule juste au dessus, voici:
'*** Private Sub CommandButton5_Click() If ActiveCell.Row <> 1 Then Selection.EntireRow.Delete Cells(ActiveCell.Row - 1, 1).Select Range(Selection, Selection.End(xlDown)).FillDown Else MsgBox "Il n'y a plus de ligne audessus de celle-ci" End If
End Sub
'*****
Explication: A1 désigne habituellement la première cellule en haut à gauche de la feuille. Or, lorsque tu écris ActiveCell.Offset(-1, 0).Range("A1").Select cla désigne la première cellule en haut à gauche de ActiveCell.Offset(-1, 0) donc si tu démarre ta macro en c2 cela désigne la première cellule en haut à gauche de c1 soit ainsi c1.
'lSteph
"danielrv" a écrit dans le message de news:
Bonjour, J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à sélectionner la colonne A pour la recopie vers le bas de la formule qui s'y trouve.
Private Sub CommandButton5_Click() Selection.EntireRow.Delete ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça bloque Range(Selection, Selection.End(xlDown)).Select Selection.FillDown End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et plus efficace. Merci de vos bons conseils. danielH
Bonjour Daniel,
Attention la macro que tu indiques supprime la ligne entière d'accord mais
aussi ensuite elle prend la cellule juste supérieure à la cellule de
départ et la recopie sur les cellules vides de la colonne situées en
dessous. Pour faire idem mais en ce décalant depuis lla sélection vers
lacolonne a et
prendre comme point de départ la cellule juste au dessus, voici:
'***
Private Sub CommandButton5_Click()
If ActiveCell.Row <> 1 Then
Selection.EntireRow.Delete
Cells(ActiveCell.Row - 1, 1).Select
Range(Selection, Selection.End(xlDown)).FillDown
Else
MsgBox "Il n'y a plus de ligne audessus de celle-ci"
End If
End Sub
'*****
Explication:
A1 désigne habituellement la première cellule en haut à gauche de la
feuille. Or, lorsque tu écris ActiveCell.Offset(-1, 0).Range("A1").Select
cla désigne la première cellule en haut à gauche de ActiveCell.Offset(-1,
0)
donc si tu démarre ta macro en c2 cela désigne la première cellule en haut à
gauche de c1 soit ainsi c1.
'lSteph
"danielrv" <novice@neuf.fr> a écrit dans le message de news:
edfPoHlHGHA.3944@tk2msftngp13.phx.gbl...
Bonjour,
J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à
sélectionner la colonne A pour la recopie vers le bas de la formule qui
s'y trouve.
Private Sub CommandButton5_Click()
Selection.EntireRow.Delete
ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça
bloque
Range(Selection, Selection.End(xlDown)).Select
Selection.FillDown
End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et
plus efficace.
Merci de vos bons conseils.
danielH
Bonjour Daniel, Attention la macro que tu indiques supprime la ligne entière d'accord mais aussi ensuite elle prend la cellule juste supérieure à la cellule de départ et la recopie sur les cellules vides de la colonne situées en dessous. Pour faire idem mais en ce décalant depuis lla sélection vers lacolonne a et prendre comme point de départ la cellule juste au dessus, voici:
'*** Private Sub CommandButton5_Click() If ActiveCell.Row <> 1 Then Selection.EntireRow.Delete Cells(ActiveCell.Row - 1, 1).Select Range(Selection, Selection.End(xlDown)).FillDown Else MsgBox "Il n'y a plus de ligne audessus de celle-ci" End If
End Sub
'*****
Explication: A1 désigne habituellement la première cellule en haut à gauche de la feuille. Or, lorsque tu écris ActiveCell.Offset(-1, 0).Range("A1").Select cla désigne la première cellule en haut à gauche de ActiveCell.Offset(-1, 0) donc si tu démarre ta macro en c2 cela désigne la première cellule en haut à gauche de c1 soit ainsi c1.
'lSteph
"danielrv" a écrit dans le message de news:
Bonjour, J'utilise cette petite macro pour supprimer une ligne, je n'arrive pas à sélectionner la colonne A pour la recopie vers le bas de la formule qui s'y trouve.
Private Sub CommandButton5_Click() Selection.EntireRow.Delete ActiveCell.Offset(-1, 0).Range("A1").Select '<----c'est ici que ça bloque Range(Selection, Selection.End(xlDown)).Select Selection.FillDown End Sub
Bien sûr, je ne suis pas contre une modif complète si c'est plus clair et plus efficace. Merci de vos bons conseils. danielH
danielrv
Merci à vous pour vos réponses,
C'est le code de AV (encore merci) que je rajoute, Cells(ActiveCell.Row, "A").Select J'aurais préféré en une ligne pour le fun ;-)))
Pour JLuc, Range(ActiveCell.Offset(-1, 0), Cells(1, 1)).Select cela sélectionne de la cellule active à la cellule A1 réelle, ça va servir pour plus tard, merci.
danielH A+
JLuc Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/
Merci à vous pour vos réponses,
C'est le code de AV (encore merci) que je rajoute,
Cells(ActiveCell.Row, "A").Select
J'aurais préféré en une ligne pour le fun ;-)))
Pour JLuc,
Range(ActiveCell.Offset(-1, 0), Cells(1, 1)).Select
cela sélectionne de la cellule active à la cellule A1 réelle, ça va servir
pour plus tard, merci.
danielH
A+
JLuc
Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et
astuces !
http://www.excelabo.net
http://jacxl.free.fr/
http://dj.joss.free.fr/
C'est le code de AV (encore merci) que je rajoute, Cells(ActiveCell.Row, "A").Select J'aurais préféré en une ligne pour le fun ;-)))
Pour JLuc, Range(ActiveCell.Offset(-1, 0), Cells(1, 1)).Select cela sélectionne de la cellule active à la cellule A1 réelle, ça va servir pour plus tard, merci.
danielH A+
JLuc Pensez a regarder ces sites très bien fait, ce sont des mines de trucs et astuces ! http://www.excelabo.net http://jacxl.free.fr/ http://dj.joss.free.fr/
danielrv
Bonjour et merci "LSteph" La macro (grâce aux précédents renseignements reçus) recopiait bien la cellule au-dessus de la cellule active, et bien pour la colonne A. La macro que tu as créée résume en 1 ligne
Cells(ActiveCell.Row, "A").Select 'sélectionne colonne A ligne cellule active ActiveCell.Offset(-1, 0).Range("A1").Select 'sélectionne ligne-1 cellule active
en plus, tu ajoutes une alerte sur la ligne concernée, chose à laquelle je n'avais pas pensé. Encore merci pour toutes les infos. Bonne continuation.
(j'en rajoute pour expliquer ce que j'ai réussi à comprendre, ça peut servir à ceux qui découvrent comme moi)
danielH
Bonjour et merci "LSteph"
La macro (grâce aux précédents renseignements reçus) recopiait bien la
cellule au-dessus de la cellule active, et bien pour la colonne A.
La macro que tu as créée résume en 1 ligne
Cells(ActiveCell.Row, "A").Select 'sélectionne colonne A ligne cellule
active
ActiveCell.Offset(-1, 0).Range("A1").Select 'sélectionne ligne-1 cellule
active
en plus, tu ajoutes une alerte sur la ligne concernée, chose à laquelle je
n'avais pas pensé.
Encore merci pour toutes les infos.
Bonne continuation.
(j'en rajoute pour expliquer ce que j'ai réussi à comprendre, ça peut servir
à ceux qui découvrent comme moi)
Bonjour et merci "LSteph" La macro (grâce aux précédents renseignements reçus) recopiait bien la cellule au-dessus de la cellule active, et bien pour la colonne A. La macro que tu as créée résume en 1 ligne
Cells(ActiveCell.Row, "A").Select 'sélectionne colonne A ligne cellule active ActiveCell.Offset(-1, 0).Range("A1").Select 'sélectionne ligne-1 cellule active
en plus, tu ajoutes une alerte sur la ligne concernée, chose à laquelle je n'avais pas pensé. Encore merci pour toutes les infos. Bonne continuation.
(j'en rajoute pour expliquer ce que j'ai réussi à comprendre, ça peut servir à ceux qui découvrent comme moi)
danielH
LSteph
Non tu n'a pas tout compris: ActiveCell.Offset(-1, 0).Range("A1").Select range(a1) ici est inutile.
a+
"danielrv" a écrit dans le message de news:
Bonjour et merci "LSteph" La macro (grâce aux précédents renseignements reçus) recopiait bien la cellule au-dessus de la cellule active, et bien pour la colonne A. La macro que tu as créée résume en 1 ligne
Cells(ActiveCell.Row, "A").Select 'sélectionne colonne A ligne cellule active ActiveCell.Offset(-1, 0).Range("A1").Select 'sélectionne ligne-1 cellule active
en plus, tu ajoutes une alerte sur la ligne concernée, chose à laquelle je n'avais pas pensé. Encore merci pour toutes les infos. Bonne continuation.
(j'en rajoute pour expliquer ce que j'ai réussi à comprendre, ça peut servir à ceux qui découvrent comme moi)
danielH
Non tu n'a pas tout compris:
ActiveCell.Offset(-1, 0).Range("A1").Select
range(a1) ici est inutile.
a+
"danielrv" <novice@neuf.fr> a écrit dans le message de news:
uBpaeXoHGHA.240@TK2MSFTNGP11.phx.gbl...
Bonjour et merci "LSteph"
La macro (grâce aux précédents renseignements reçus) recopiait bien la
cellule au-dessus de la cellule active, et bien pour la colonne A.
La macro que tu as créée résume en 1 ligne
Cells(ActiveCell.Row, "A").Select 'sélectionne colonne A ligne cellule
active
ActiveCell.Offset(-1, 0).Range("A1").Select 'sélectionne ligne-1 cellule
active
en plus, tu ajoutes une alerte sur la ligne concernée, chose à laquelle je
n'avais pas pensé.
Encore merci pour toutes les infos.
Bonne continuation.
(j'en rajoute pour expliquer ce que j'ai réussi à comprendre, ça peut
servir à ceux qui découvrent comme moi)
Non tu n'a pas tout compris: ActiveCell.Offset(-1, 0).Range("A1").Select range(a1) ici est inutile.
a+
"danielrv" a écrit dans le message de news:
Bonjour et merci "LSteph" La macro (grâce aux précédents renseignements reçus) recopiait bien la cellule au-dessus de la cellule active, et bien pour la colonne A. La macro que tu as créée résume en 1 ligne
Cells(ActiveCell.Row, "A").Select 'sélectionne colonne A ligne cellule active ActiveCell.Offset(-1, 0).Range("A1").Select 'sélectionne ligne-1 cellule active
en plus, tu ajoutes une alerte sur la ligne concernée, chose à laquelle je n'avais pas pensé. Encore merci pour toutes les infos. Bonne continuation.
(j'en rajoute pour expliquer ce que j'ai réussi à comprendre, ça peut servir à ceux qui découvrent comme moi)
danielH
danielrv
Ah d'accord, mais c'est ce qui est retranscrit par vba lorsque l'on enregistre une macro. Merci pour le renseignement.
danielH
Ah d'accord, mais c'est ce qui est retranscrit par vba lorsque l'on
enregistre une macro.
Merci pour le renseignement.