Sélection d'une ligne entière = condition d'exécution d'une macro

  • Initiateur de la discussion Initiateur de la discussion RO204B
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

RO204B

XLDnaute Nouveau
Bonjour,
C'est sûrement basique mais, éternel débutant, je n'arrive pas à écrire en VBA cette chose aussi simple :
Si la sélection n'est pas une ligne entière, alors
MsgBox "Sélection non valide : sélectionner une ligne entière."
La sélection d'une ligne entière est la condition nécessaire pour la bonne exécution d'une macro.
Merci à qui voudra bien me répondre.
 
Merci Dranreb.
D'abord merci pour votre réponse.
Voulant faire court, je n'ai sans doute pas été assez explicite. Si ce n'est pas abuser, j'essaie d'être plus précis.
J'ai une macro qui a pour fonction, entre autres, d'insérer une ligne entière au même endroit (aléatoire) dans plusieurs feuilles en même temps. Mais comme je suis très distrait, je peux avoir oublié de sélectionner une ligne entière (quelconque) préalablement à l'exécution de la macro en sorte que ma commande Selection.Insert Shift:=xlDown aboutit à l'insertion d'une seule cellule, qui plus est à un endroit non désiré !...
Ce que je souhaite par conséquent, c'est que si la sélection (fortuite) est une cellule quelconque ou une plage quelconque de cellules au lieu d'une ligne entière, la macro ne s'exécute pas et que j'en sois informé par une MsgBox (la MsgBox, quand même, je sais faire !) Avec mes excuses et mes remerciements.
Cordialement
 
Eh bien si vous tenez à empêcher l'exécution vous n'avez qu'à vérifier si l'adresse de la sélection est égale à l'adresse de la ligne entière de la première cellule de la sélection tout simplement.
Mais je trouve que ce n'est pas souple.
 
Dernière édition:
Bonjour le film, le forum

Macro à vocation illustrative
(l'emploi de EntireRow dans ton code VBA devrait suffire à faire ce que tu souhaites)
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Target.EntireRow.Select
MsgBox Selection.Address
End Sub
 
Bonjour RO204B, Bernard, JM,

Beaucoup de gens utilisent les MsgBox pour un oui ou pour un non.

Très souvent elles sont inutiles et agaçantes, c'est le cas pour ce problème, il suffit de commencer la macro ainsi :
Code:
Sub Macro1()
ActiveCell.EntireRow.Insert
'---suite du code---
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour