OVH Cloud OVH Cloud

Sélection avec la souris dans une macro

8 réponses
Avatar
Grégory
Bonjour,

Vous êtes tellement réactifs et compétents que je me permet de vous
recontacter à nouveau!
J'ai créé une macro qui me supprime une ligne d'un tableau en le remettant
en forme après (il y a pas mal de modif à faire, mais inutile de les
détailler ici).

Pour l'instant, je demande à l'utilisateur de sélectionner la ligne à
supprimer AVANT d'appuyer sur le bouton d'exécution de la macro.
Je souhaiterai désormais que l'utilisateur clique sur le bouton, qu'un
message lui demande de sélectionner la ligne (facile) et que la macro
s'interrompe jusqu'à ce qu'Excel ait détecté le click. La macro continue
alors et la ligne est alors supprimée!

Je sais que ça tourne autour des évènements mais je n'ai pas encore trouvé
la solution...

Merci de votre aide,
Greg

8 réponses

Avatar
papou
Bonjour
Tu peux utiliser une gestion d'erreur dans le code de ton bouton de façon à
ce que s'il n'y a pas eu de selection la macro s'interrompt :
Dim LaRef
Set LaRef = Application.InputBox("Selectionner la ligne à supprimer", "Ligne
?", , , , , , 8)
On Error GoTo cpasbon
LaRef.EntireRow.Delete
Exit Sub

cpasbon:
MsgBox "La plage n'a pas été sélectionnée"
Exit Sub

Cordialement
Pascal

"Grégory" a écrit dans le message de
news:
Bonjour,

Vous êtes tellement réactifs et compétents que je me permet de vous
recontacter à nouveau!
J'ai créé une macro qui me supprime une ligne d'un tableau en le remettant
en forme après (il y a pas mal de modif à faire, mais inutile de les
détailler ici).

Pour l'instant, je demande à l'utilisateur de sélectionner la ligne à
supprimer AVANT d'appuyer sur le bouton d'exécution de la macro.
Je souhaiterai désormais que l'utilisateur clique sur le bouton, qu'un
message lui demande de sélectionner la ligne (facile) et que la macro
s'interrompe jusqu'à ce qu'Excel ait détecté le click. La macro continue
alors et la ligne est alors supprimée!

Je sais que ça tourne autour des évènements mais je n'ai pas encore trouvé
la solution...

Merci de votre aide,
Greg


Avatar
Nicolas B.
Salut,

Tu cherches une boite de dialogue qui ressemble à celle-ci ?

MsgBox Application.InputBox("Sélectionnez la ligne.", Type:=8).Address


A+
Nicolas B.

Bonjour,

Vous êtes tellement réactifs et compétents que je me permet de vous
recontacter à nouveau!
J'ai créé une macro qui me supprime une ligne d'un tableau en le remettant
en forme après (il y a pas mal de modif à faire, mais inutile de les
détailler ici).

Pour l'instant, je demande à l'utilisateur de sélectionner la ligne à
supprimer AVANT d'appuyer sur le bouton d'exécution de la macro.
Je souhaiterai désormais que l'utilisateur clique sur le bouton, qu'un
message lui demande de sélectionner la ligne (facile) et que la macro
s'interrompe jusqu'à ce qu'Excel ait détecté le click. La macro continue
alors et la ligne est alors supprimée!

Je sais que ça tourne autour des évènements mais je n'ai pas encore trouvé
la solution...

Merci de votre aide,
Greg


Avatar
Grégory
Super, merci!
Ca fonctionne même sur des cellules en remplacant "Row" par cells.


Bonjour
Tu peux utiliser une gestion d'erreur dans le code de ton bouton de façon à
ce que s'il n'y a pas eu de selection la macro s'interrompt :
Dim LaRef
Set LaRef = Application.InputBox("Selectionner la ligne à supprimer", "Ligne
?", , , , , , 8)
On Error GoTo cpasbon
LaRef.EntireRow.Delete
Exit Sub

cpasbon:
MsgBox "La plage n'a pas été sélectionnée"
Exit Sub

Cordialement
Pascal

"Grégory" a écrit dans le message de
news:
Bonjour,

Vous êtes tellement réactifs et compétents que je me permet de vous
recontacter à nouveau!
J'ai créé une macro qui me supprime une ligne d'un tableau en le remettant
en forme après (il y a pas mal de modif à faire, mais inutile de les
détailler ici).

Pour l'instant, je demande à l'utilisateur de sélectionner la ligne à
supprimer AVANT d'appuyer sur le bouton d'exécution de la macro.
Je souhaiterai désormais que l'utilisateur clique sur le bouton, qu'un
message lui demande de sélectionner la ligne (facile) et que la macro
s'interrompe jusqu'à ce qu'Excel ait détecté le click. La macro continue
alors et la ligne est alors supprimée!

Je sais que ça tourne autour des évènements mais je n'ai pas encore trouvé
la solution...

Merci de votre aide,
Greg







Avatar
Nicolas B.
Désolé, j'avais pas vu ta réponse :-(


A+
Nicolas B.

Bonjour
Tu peux utiliser une gestion d'erreur dans le code de ton bouton de façon à
ce que s'il n'y a pas eu de selection la macro s'interrompt :
Dim LaRef
Set LaRef = Application.InputBox("Selectionner la ligne à supprimer", "Ligne
?", , , , , , 8)
On Error GoTo cpasbon
LaRef.EntireRow.Delete
Exit Sub

cpasbon:
MsgBox "La plage n'a pas été sélectionnée"
Exit Sub

Cordialement
Pascal


Avatar
papou
Re
Tant mieux si ça te convient :-)

Cordialement
Pascal
"Grégory" a écrit dans le message de
news:
Super, merci!
Ca fonctionne même sur des cellules en remplacant "Row" par cells.


Bonjour
Tu peux utiliser une gestion d'erreur dans le code de ton bouton de
façon à


ce que s'il n'y a pas eu de selection la macro s'interrompt :
Dim LaRef
Set LaRef = Application.InputBox("Selectionner la ligne à supprimer",
"Ligne


?", , , , , , 8)
On Error GoTo cpasbon
LaRef.EntireRow.Delete
Exit Sub

cpasbon:
MsgBox "La plage n'a pas été sélectionnée"
Exit Sub

Cordialement
Pascal

"Grégory" a écrit dans le message de
news:
Bonjour,

Vous êtes tellement réactifs et compétents que je me permet de vous
recontacter à nouveau!
J'ai créé une macro qui me supprime une ligne d'un tableau en le
remettant



en forme après (il y a pas mal de modif à faire, mais inutile de les
détailler ici).

Pour l'instant, je demande à l'utilisateur de sélectionner la ligne à
supprimer AVANT d'appuyer sur le bouton d'exécution de la macro.
Je souhaiterai désormais que l'utilisateur clique sur le bouton, qu'un
message lui demande de sélectionner la ligne (facile) et que la macro
s'interrompe jusqu'à ce qu'Excel ait détecté le click. La macro
continue



alors et la ligne est alors supprimée!

Je sais que ça tourne autour des évènements mais je n'ai pas encore
trouvé



la solution...

Merci de votre aide,
Greg









Avatar
papou
Bonjour Nicolas
No soucis ;-)
Mieux vaut deux fois que pas du tout !

Cordialement
Pascal


"Nicolas B." a écrit dans le message
de news:
Désolé, j'avais pas vu ta réponse :-(


A+
Nicolas B.

Bonjour
Tu peux utiliser une gestion d'erreur dans le code de ton bouton de
façon à


ce que s'il n'y a pas eu de selection la macro s'interrompt :
Dim LaRef
Set LaRef = Application.InputBox("Selectionner la ligne à supprimer",
"Ligne


?", , , , , , 8)
On Error GoTo cpasbon
LaRef.EntireRow.Delete
Exit Sub

cpasbon:
MsgBox "La plage n'a pas été sélectionnée"
Exit Sub

Cordialement
Pascal




Avatar
Grégory
Encore une petite chose...

Le message d'erreur ne s'affiche pas si l'utilisateur ne sélectionne pas de
ligne (ou cellule) et s'il clique sur OK. A la place, c'est Excel qui
m'envoie un message d'erreur ("La plage que vous avez sélectionné contient
une erreur") et la macro plante après avoir cliqué sur "OK".

De plus, comment gérer l'appui sur "Cancel" de l'InputBox ? (l'utilisateur
lance la macro pour supprimer une ligne puis décide finalement d'annuler
l'opération?) => sur quelle commande faire un "If"?

Merci,
Greg



Re
Tant mieux si ça te convient :-)

Cordialement
Pascal
"Grégory" a écrit dans le message de
news:
Super, merci!
Ca fonctionne même sur des cellules en remplacant "Row" par cells.


Bonjour
Tu peux utiliser une gestion d'erreur dans le code de ton bouton de
façon à


ce que s'il n'y a pas eu de selection la macro s'interrompt :
Dim LaRef
Set LaRef = Application.InputBox("Selectionner la ligne à supprimer",
"Ligne


?", , , , , , 8)
On Error GoTo cpasbon
LaRef.EntireRow.Delete
Exit Sub

cpasbon:
MsgBox "La plage n'a pas été sélectionnée"
Exit Sub

Cordialement
Pascal

"Grégory" a écrit dans le message de
news:
Bonjour,

Vous êtes tellement réactifs et compétents que je me permet de vous
recontacter à nouveau!
J'ai créé une macro qui me supprime une ligne d'un tableau en le
remettant



en forme après (il y a pas mal de modif à faire, mais inutile de les
détailler ici).

Pour l'instant, je demande à l'utilisateur de sélectionner la ligne à
supprimer AVANT d'appuyer sur le bouton d'exécution de la macro.
Je souhaiterai désormais que l'utilisateur clique sur le bouton, qu'un
message lui demande de sélectionner la ligne (facile) et que la macro
s'interrompe jusqu'à ce qu'Excel ait détecté le click. La macro
continue



alors et la ligne est alors supprimée!

Je sais que ça tourne autour des évènements mais je n'ai pas encore
trouvé



la solution...

Merci de votre aide,
Greg














Avatar
papou
Re
Tu remontes la ligne "On error Goto cpasbon" au-dessus de la ligne Set LaRef
Cordialement
Pascal

"Grégory" a écrit dans le message de
news:
Encore une petite chose...

Le message d'erreur ne s'affiche pas si l'utilisateur ne sélectionne pas
de

ligne (ou cellule) et s'il clique sur OK. A la place, c'est Excel qui
m'envoie un message d'erreur ("La plage que vous avez sélectionné contient
une erreur") et la macro plante après avoir cliqué sur "OK".

De plus, comment gérer l'appui sur "Cancel" de l'InputBox ? (l'utilisateur
lance la macro pour supprimer une ligne puis décide finalement d'annuler
l'opération?) => sur quelle commande faire un "If"?

Merci,
Greg



Re
Tant mieux si ça te convient :-)

Cordialement
Pascal
"Grégory" a écrit dans le message de
news:
Super, merci!
Ca fonctionne même sur des cellules en remplacant "Row" par cells.


Bonjour
Tu peux utiliser une gestion d'erreur dans le code de ton bouton de
façon à


ce que s'il n'y a pas eu de selection la macro s'interrompt :
Dim LaRef
Set LaRef = Application.InputBox("Selectionner la ligne à
supprimer",




"Ligne
?", , , , , , 8)
On Error GoTo cpasbon
LaRef.EntireRow.Delete
Exit Sub

cpasbon:
MsgBox "La plage n'a pas été sélectionnée"
Exit Sub

Cordialement
Pascal

"Grégory" a écrit dans le message
de




news:
Bonjour,

Vous êtes tellement réactifs et compétents que je me permet de
vous





recontacter à nouveau!
J'ai créé une macro qui me supprime une ligne d'un tableau en le
remettant



en forme après (il y a pas mal de modif à faire, mais inutile de
les





détailler ici).

Pour l'instant, je demande à l'utilisateur de sélectionner la
ligne à





supprimer AVANT d'appuyer sur le bouton d'exécution de la macro.
Je souhaiterai désormais que l'utilisateur clique sur le bouton,
qu'un





message lui demande de sélectionner la ligne (facile) et que la
macro





s'interrompe jusqu'à ce qu'Excel ait détecté le click. La macro
continue



alors et la ligne est alors supprimée!

Je sais que ça tourne autour des évènements mais je n'ai pas
encore





trouvé
la solution...

Merci de votre aide,
Greg