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

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

  • Calendrier Autonome.xls
    87.5 KB · Affichages: 92

Staple1600

XLDnaute Barbatruc
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.
 

Lou2411

XLDnaute Junior
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.
 

Staple1600

XLDnaute Barbatruc
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:

Lou2411

XLDnaute Junior
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

  • Classeur1.xlsx
    87.3 KB · Affichages: 28

Staple1600

XLDnaute Barbatruc
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 ;) )
 

Discussions similaires

Réponses
14
Affichages
654

Membres actuellement en ligne

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 813
dernier inscrit
kaiyi