Bonjour à tous,
novice que je suis, j'ai voulu reprendre un calendrier autonome sauf que je n'arrive pas à affecter le code VBA à une cellule en particulier.
Comme vous pouvez le voir ci-dessous, le calendrier s'affiche dans toutes les cellules de la feuille 1.
Je me suis bien évidemment aventurée dans tous les codes et propriétés des Userforms pour trouver un Linkedcells et j'ai remarqué que 2 fonctions ont été crées dans le code mais quand je les insère dans les cellules, cela ne fonctionne pas...
si (par exemple) tu souhaites que ce soit au double-clic en C5 de ta Feuil1 que le calendrier s'affiche, essaie
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$C$5" Then
Cancel = True
UsF_Calendrier.Show
Target.Value = IIf(vDate <> "00:00:00", vDate, "")
End If
End Sub
Est-ce que tu utilise le classeur sur PC ou sur Mac. Celui que tu as mis, à été enregistrer sous MAC. Pourquoi?
Les é sont transformés en Ž typique à MAC. J'ai corrigé le problème et les dates sont bien insérées dans les cellules.
Lone-wolf, oui effectivement j'avais remarqué pour Férié etc
Effectivement, ça a été enregistré sous MAC et le transfert PC/MAC est obligé à cause des restrictions Citrix de l'entreprise ... Du coup, joindre un fichier Excel sur un forum est impossible
Ah oui je vois, mais je travaille majoritairement sur PC et le fichier sera d'ailleurs mis à disposition sur PC...
D'ailleurs, par simple curiosité, comment tu as fais pour corriger les Ž et les remettre au format de base ?
tu as 2 possibilités, soit tu sélectionne la lettre Z et tu change par é; soit tu sélectionne Z et ensuite, Edition > Remplacer > Projet en cours > Remplacer par: é. La 2ème bienentendu, est plus rapide et moins fastidieuse.
Lone-wolf c'est terriblement efficace...
Aussi j'ai une question, j'ai appliqué le code et j'ai voulu affecter mon calendrier à d'autres cellules j'ai donc recopier le code suivant en modifiant ma cellule:
If Target.Address = "$C$6" Then
Cancel = True
UsF_Calendrier.Show
Target.Value = IIf(vDate <> "00:00:00", vDate, "")
End If
Sauf que le problème c'est qu'il y a 87 cellules et au bout de x cellules, le fichier se bloque et impossible de le fermer...
Auriez-vous une solution qui marche pour éviter de recopier ce code 87 fois,
genre
If Target.Address = "C6:C87" Then
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("c6:c87")) Is Nothing Then
Target.Value = IIf(vDate <> "00:00:00", vDate, "")
End If
Cancel = True
End Sub
Merci, j'ai juste rajouté: If Not Intersect(Target, [C6:C87]) Is Nothing Then
car dans ton code Lone-Wolf tu n'évoques pas le "UsF_Calendrier.Show"... Du coup, l'userform n'apparait pas quand tu cliques sur la cellule...
Par contre, j'ai encore le même problème à partir d' à peu près C60, mon fichier se bloque et impossible de le fermer...
Vous pensez que c'est grave ou que c'est encore le code ?
Bonjour.
Plus facile avec mon calendrier parce qu'il est équipé des méthodes de communication et de positionnement pour ça.
De plus il n'a besoin d'aucun module auxiliaire, ni standard ni de classe.
Merci, j'ai juste rajouté: If Not Intersect(Target, [C6:C87]) Is Nothing Then
car dans ton code Lone-Wolf tu n'évoques pas le "UsF_Calendrier.Show"... Du coup, l'userform n'apparait pas quand tu cliques sur la cellule...