Calendrier universel Userfom

Bonjour à tous,

J'ai récupéré un calendrier universel userform (fonctionnant sur Mac) que j'essaie d'adapter à mon cas: saisir une période par ses dates de début et fin.

Actuellement le calendrier s'ouvre par double clic sur n'importe quelle cellule. Après sélection d'une date dans la grille, l'userform se referme et la date est déposée dans la cellule où l'on vient de double cliquer.

Je voudrais que l'ouverture du calendrier soit lancée par deux boutons (bouton date de début et bouton date de fin) et que le résultat de chacune des sélections soit déposé dans les deux cellules N7 et N11.

Le fichier est en PJ.

Merci pour votre aide.

Dul

Bonjour dul,

Je n'ai pas de Mac (trop cher pour mes moyens Mais j'accepte les dons ), j'ai donc modifié sous Excel pour Pc.

Je sais que le code est proche entre Pc et Mac.

J'espère bien qu'il fonctionnera.

Joseph

Bonjour le fil, bonjour le forum,

Dans le module de classe Classe 1, code MouseUp j'ai modifié le code. La ligne :

Set TEST = IIf(Application.Caller = "Bouton 1", Sheets("Feuil1").Range("N7"), Sheets("Feuil1").Range("N11"))

définit l'adresse de la cellule où sera renvoyé la date en fonction du bouton cliqué.

Le code complet :

Private Sub bruno_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Set TEST = IIf(Application.Caller = "Bouton 1", Sheets("Feuil1").Range("N7"), Sheets("Feuil1").Range("N11"))
If X > 8 Or Y > 8 Then bruno.BackColor = &H0&: Exit Sub
fait 'va a macro "fait"
bruno.BackColor = &HFF0000
mmaa = CDate("01 " & UserForm1.Label50)
If bruno.Caption < 15 And Right(bruno.Name, Len(bruno.Name) - 5) > 20 Then
mmaa = mmaa + 33
End If
If bruno.Caption > 20 And Right(bruno.Name, Len(bruno.Name) - 5) < 20 Then
mmaa = mmaa - 20
End If
TEST.Value = CDate(bruno.Caption & " " & Month(mmaa) & " " & Year(mmaa))
UserForm1.Hide
End Sub

Ton fichier modifié :

35jospeh-v01.xlsm (35.90 Ko)

Bonjour le fil, bonjour le forum,

Bonjour ThauThème,

Je m'instruis et t'en remercie.

J'aime bien ta version. Mais, car il y a trop souvent un "Mais", le calendrier s'ouvre en novembre 2010.

Pour avoir la date du jour, j'ai placé à la première ligne de la macro (fait)

UserForm1.Label50.Caption = IIf(X <> "", Format(X, "mmmm yyyy"), Format(Date, "mmmm yyyy")) 

Ainsi, le calendrier s'ouvre avec la date du jour

Autre observation :

Set TEST = IIf(Application.Caller = "Bouton 1", Sheets("Feuil1").Range("N7"), Sheets("Feuil1").Range("N11"))

Écris invariablement dans N11.

J'ai dû changer Bouton 1 pour Button 1. Et là, tout est beau et merveilleux.

Joseph

Bonjour,

Saisie de la date de début et de fin dans un seul calendrier.

Ceuzin

Bonsoir le fil, bonsoir le forum,

@Joseph

  • Tu as répondu la première fois pendant que j'étais en train de chercher pour Dul. C'est pour ça que je vous ai confondu dans ma première réponse.
  • Bien vu pour la date du jour, je n'avais pas vraiment fais attention à ça. (je m'instruis aussi du coup)
  • Étrange parce que chez moi c'est exactement le contraire, ça ne marche pas avec Button 1....

Bonsoir,

Merci beaucoup pour vos solutions, je vais utiliser la proposition de Retraite8, qui avec l'ouverture à la date du jour, correspond le plus à mon utilisation (et évite de cliquer les 7 années de décalage avec 2017).

Il y a d'origine un petit problème avec les "flèches" de direction (carrés blancs) permettant de naviguer d'un mois à l'autre, parfois la flèche de droite remonte dans le temps au lieu d'avancer (idem avec l'autre), je n'ai pas réussi à tirer de conclusion (en quittant excel et en relançant), cela semble aléatoire. Auriez-vous une solution pour résoudre ce problème. Merci.

Dul

Rechercher des sujets similaires à "calendrier universel userfom"