Un double clic de cellule(s) ouvrant un calendrier [Résolu]

Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Dernière intervention
6 mars 2017
-
Bonjour,
Je suis novice de chez novice! Mais voilà un jour il faut se lancer dans le monde impitoyable de Vba!
J'essaye de mettre au point une macro qui me permet en double cliquant sur une cellule (faisant parti d'un range de cellules) de faire apparaitre un calendrier (monthview). L'utilisateur n'aurait plus qu'à clicker sur la date et valider la date avec un bouton "ok".
J'ai réussi à faire cette macro pour une cellule
Dans ma feuille
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("A1:A10")) Is Nothing Then
calendrier.Show
End If
End Sub

Dans mon userform "calendrier"
'bouton ok
Private Sub CommandButton1_Click()
Worksheets("feuil1").Range("A1") = MonthView
Unload Me
calendrier.Hide
Sheets("feuil2").Activate
Sheets("feuil1").Activate
End Sub
'bouton fermer
Private Sub CommandButton2_Click()
calendrier.Hide
End Sub

Mais voilà cette macro ne marche que pour une seule cellule et je ne sais pas comment la faire fonctionner pour tout mon range.
J'espère avoir été claire dans mon explication. Je remercie d'avance mes futurs « helper » ?
Afficher la suite 

Votre réponse

2 réponses

Messages postés
23651
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 décembre 2018
0
Merci
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du
code sur le forum.
Explications disponibles ici :
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

Message édité : Ajout des balises de code.
Commenter la réponse de jordane45
Messages postés
23651
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 décembre 2018
0
Merci
Comme tu doubles clic dans la cellule... elle devient la cellule active...
donc :

Private Sub CommandButton1_Click()

ActiveCell.Value = MonthView 
Unload Me
calendrier.Hide
End Sub

mikmak78
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Dernière intervention
6 mars 2017
-
Merci beaucoup!
jordane45
Messages postés
23651
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 décembre 2018
-
N'oublie pas de Marquer comme résolu la discussion.
(lien se trouvant sous le titre de ta question)
mikmak78
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Dernière intervention
6 mars 2017
-
re
J ai bien fait de ne pas cloturer car j ai un probleme de range

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Application.Intersect(Target, Range("D4:D26,F4:F26,H4:H26,J4:J26,L4:L26,N4:N26,P4:P26,R4:R26,T4:T26,V4:V26,X4:X26,Z4:Z26,AB4:AB26,AD4:AD26,AF4:AF26,AH4:AH26,AJ4:AJ26,AL4:AL26,AN4:AN26,AP4:AP26,AR4:AR26,AT4:AT26,AV4:AV26,AX4:AX26,AZ4:AZ26,BB4:BB26,BD4:BD26,BF4:BF26,BH4:BH26,BJ4:BJ26,BL4:BL26,BN4:BN26")) Is Nothing Then
calendrier.Show
End If
End Sub
J'ai une pop up d erreur 1004 qui apparait. Y-a-t-il une limite dans les ranges?
jordane45
Messages postés
23651
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
19 décembre 2018
-
J ai bien fait de ne pas cloturer car j ai un probleme de range
Là ... c'est un autre souci... un autre question.
Il te faut donc ouvrir une nouvelle discussion.

Par contre.. oui.. il n'est pas impossible qu'il y ait une limite de "range" et/ou une limite du nombre de caractères écrits dans une ligne de code.
mikmak78
Messages postés
59
Date d'inscription
vendredi 5 octobre 2012
Dernière intervention
6 mars 2017
-
merci je cloture et j ouvre une nouvelle question
Commenter la réponse de jordane45

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.