XL 2010 Insérer un calendrier dans un menu déroulant sur plusieurs cellules

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 !

Lou2411

XLDnaute Junior
Bonjour, je sais que dans le forum il il a une réponse en date du 27 juillet 2015. Le calendrier fonction jusqu’à un certain point, moi je le voudrais dans mes colonnes mais illimité et aussi ma feuille excel gèle je joint le fichier du 27 juillet 2015 créer par BrunoM45

Merci
 

Pièces jointes

Re

@Lou2411
Quel est le problème exactemement?
Le fichier de Bruno fonctionne
Quand on double-clique dans une cellule, l'userform s'affiche
Il suffit alors de faire un clic-gauche sur le jour de son choix, et il s'affichera dans la cellule active tandis que l'userform se fermera.
 
Re

@Lou2411
Quel est le problème exactemement?
Le fichier de Bruno fonctionne
Quand on double-clique dans une cellule, l'userform s'affiche
Il suffit alors de faire un clic-gauche sur le jour de son choix, et il s'affichera dans la cellule active tandis que l'userform se fermera.



Tout simplement quand j'utilise plusieurs cellule avec la date mon fichier gèle. Dans la cellule B64 je demande le calendrier je ne le retrouve pas et cela fait gelé ma feuille je dois faire ctrl suppr.
 
Re

Ok, j'ai reproduit le bug chez moi.

Voici un correctif possible
1) Une fois ton classeur ouvert, faire ALT+F11
Là à gauche, clic-droit sur Usf_Calendrier=> choisir Code
Dans le panneau de droite, tu copies ceci en haut de la fenêtre, en dessous Option Explicit et entre Private CtrlCal(1 To 42) As New Classe1
VB:
Private Declare Function GetDC& Lib "user32.dll" (ByVal hwnd&)
Private Declare Function GetDeviceCaps& Lib "gdi32" (ByVal hDC&, ByVal nIndex&)
Puis en dessous de Private CtrlCal(1 To 42) As New Classe1
Tu copies ceci
VB:
Private Sub UserForm_Initialize()
Dim x#, y#, w#, h#
x = GetDeviceCaps(GetDC(0), 88) / 72
y = GetDeviceCaps(GetDC(0), 90) / 72
With Me
    .StartUpPosition = 0
    .Left = (ActiveWindow.PointsToScreenPixelsX(ActiveCell.Left * x) * 1 / x) + ActiveCell.Width
    .Top = (ActiveWindow.PointsToScreenPixelsY(ActiveCell.Top * y) * 1 / y) + ActiveCell.Height
End With
End Sub

Chez moi, plus de problême de "gelage" 😉

EDITION: Voici comment doit se présenter le début du code de l'userform
01UsfCal.jpg
 
Dernière édition:
Re

Ok, j'ai reproduit le bug chez moi.

Voici un correctif possible
1) Une fois ton classeur ouvert, faire ALT+F11
Là à gauche, clic-droit sur Usf_Calendrier=> choisir Code
Dans le panneau de droite, tu copies ceci en haut de la fenêtre, en dessous Option Explicit et entre Private CtrlCal(1 To 42) As New Classe1
VB:
Private Declare Function GetDC& Lib "user32.dll" (ByVal hwnd&)
Private Declare Function GetDeviceCaps& Lib "gdi32" (ByVal hDC&, ByVal nIndex&)
Puis en dessous de Private CtrlCal(1 To 42) As New Classe1
Tu copies ceci
VB:
Private Sub UserForm_Initialize()
Dim x#, y#, w#, h#
x = GetDeviceCaps(GetDC(0), 88) / 72
y = GetDeviceCaps(GetDC(0), 90) / 72
With Me
    .StartUpPosition = 0
    .Left = (ActiveWindow.PointsToScreenPixelsX(ActiveCell.Left * x) * 1 / x) + ActiveCell.Width
    .Top = (ActiveWindow.PointsToScreenPixelsY(ActiveCell.Top * y) * 1 / y) + ActiveCell.Height
End With
End Sub

Chez moi, plus de problême de "gelage" 😉

EDITION: Voici comment doit se présenter le début du code de l'userform
Regarde la pièce jointe 1011751


Désolé mais ses du chinois pour moi tout cela je joint un fichier vous aller voir qu'il manque le coté gauche vbaprojet
 

Pièces jointes

Re, Bonjour Lone-Wolf

Pour qu'un fichier conserve son code VBA, il faut l'enregistrer en *.xlsm

NB: Si tu utilises un classeur avec du code VBA, il faut apprendre un mininum la manière de l'utiliser.

J'ai décrit ce qu'il y a faire précisément.

Il s'agit juste d'ajouter par copier/coller la portion de code VBA du message#11 au bon endroit.

NB: Etant nouveau membre du forum, tu ne connais pas encore ma philosophie sur le forum.
Je ne joins pas de fichier exemple "clé en main" dans le secret espoir d'inciter le demandeur à mettre les mains dans le cambouis pour résoudre sa question.

Si tu relis bien mon message#11, tu as tout les éléments pour solutionner toi-même ta question 😉

Sinon, d'autres ici, qui pratiquent une autre philosopie, joigneront peut-être un classeur avec ma suggestion de code collé au bon endroit

(au hasard, Lone-Wolf peut-être 😉 )
 
Notre forum d’entraide est 100 % gratuit et le restera.
Aucune formation payante, aucun fichier à acheter, rien à vendre. Mais comme tout site, nous devons couvrir nos frais pour continuer à vous accompagner.
Soutenez-nous en souscrivant à un compte membre : c’est rapide, vous choisissez simplement votre niveau de soutien et le tour est joué.

Je soutiens la communauté et j’accède à mon compte membre

Discussions similaires

Réponses
7
Affichages
318
Réponses
14
Affichages
998
Retour