• Initiateur de la discussion Initiateur de la discussion RENOUX Pierre
  • 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 !

R

RENOUX Pierre

Guest
Question, La macro écrite ci-dessous sert à copier et coller des cellules à l’aide d’un bouton de formulaire (CommandButton1). Si une cellule donnée à la valeur vraie (A8) la macro s’exécute sinon un message apparaît, et il faut avoir la valeur vrai en A8. Voici la macro
MACRO Sub CommandButton1_Click()
If Sheets("insc1").Range("A8") <> True Then
MsgBox "Vous avez oublié un champs obligatoire du formulaire .", _ vbCritical, "Attention"
Else
If Sheets("insc1").Range("A8") = True Then
Sheets("INSC1").Select
Range("AA3:AD260").Select
Selection.Copy Range("AE3").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False
Range("G12").ClearContents
Range("A1").Select
End If
End If
End Sub
Voilà ma question peut on faire la même chose mais remplacer l’exécution de la macro par entrée sur le clavier, après la saisie d’une valeur dans une cellule. EXEMPLE : je saisie une valeur en A1 je fais entrée ( ou éventuellement CTRL+ lettre) et copier coller (ou autres) s’exécute. Deuxième question : comment faire pour indiquer plusieurs conditions à la ligne deux de la macro (A8 <> True, A9 =1 ; etc…). Si quelqu’un peut m’aider il m’aura fait faire un grand pas en avant.
 
Salut PiR,

avant toute chose je te conseil de lire le Charte de ce forum (ca te prendra 2 min et t'apprendra beaucoup de choses)

ensuite la ligne 'If Sheets("insc1").Range("A8") = True Then' et le 'End If' qui va avec est inutile. Tu definis deja completement ta condition avec :
'If Sheets("insc1").Range("A8") <> True Then'

C’est un peu comme si tu disais, la voiture est soit bleue (true), soit rouge (false). Si elle n’est pas bleue (premier if) alors je fais ca et sinon (else), si elle est bleue (deuxieme if), je fais autre chose.

pour repondre a tes questions: tu peux affecter un Ctrl + lettre a une macro en faisant Outils>macro, tu delectionne ta macro puis modifier.
Pour le Enter, je pense que le mieux est de lancer ta macro a partir de ThisWorkbook avec Workbook_SelectionChange ou qq chose comme ca.

et pour la fin ca marche comme ca:
If Sheets("insc1").Range("A8") = True Or Range("A1") = 9 Or ... Then

idem avec des And (tu peux aussi combiner les 2 mais ca devient perilleux).

N'oublie pas de lire la Charte et si tu as des pb, n'hesite pas...

A++, sylsyl.
 
bonsoir sylsyl,
merci de ta réponse même si elle ne réponds pas à mon attente. Pour en revenir à la macro que j'ai écrite elle dis en claire que si la cellule (A8 dans ce cas) et différente de vrai <> True Then alors il faut arrêter et me prévenir grace à MSGbox, mais si elle indique vrai = True Then alors l'exécution de la macro peut continuer. mais ce que je voudrais essayer de savoir c'est comment exécuter cette macro en validant entrée aprés avoir saisie une valeur dans une cellule.(Au lieu de faire fonctionner la macro par un bouton de formulaire).Je vais continuer mes recherches;

A+
Pierre
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
12
Affichages
282
Retour