'*********************'Date de Naissance***************************
Private Sub TargetBox_Change()
Dim Texte As String
Texte = Me.TargetBox.Text
If Len(Texte) > 10 Then 'on limite le nombre de caractères saisis à 10 'dd/mm/yyyy
TargetBox = Left(Texte, 10)
End If
If Len(Texte) = 10 Then 'on vérifie qu'il s'agit d'une date
If Not IsDate(Texte) Then
MsgBox "cette date n'est pas une date valide"
Texte = ""
End If
End If
Select Case Len(Texte) 'on ajoute automatiquement les /
Case 2, 5
Texte = Texte & "/"
End Select
TargetBox.Text = Texte
End Sub
Private Sub TargetBox_Change()
Dim Texte As String
Texte = Me.TargetBox.Text
If Len(Texte) > 6 Then
Texte = Left(Texte, 6)
End If
Select Case Len(Texte)
Case 2
Texte = Texte & " "
End Select
Me.TargetBox.Text = Texte
End Sub
ben oui tu a vu qui c'est l'auteur ?Dans mes recherches, Je viens de tomber sur un site sympa
Collection de textbox formatés avec masque de saisie
Chaque exemple est fourni avec exemple d'appel dans l'event KEYdown un datebox format FR "DD/MM/YYYY" datebox US format "MM/DD/YYYY" N° Securité social forma...forum.excel-pratique.com
évidemmentben oui tu a vu qui c'est l'auteur ?
Private Sub DateBoxMasK(ByVal tbx As Object, ByVal KeyCode As MSForms.ReturnInteger, Optional MaskVisible As Boolean = True)
Dim V$, K&, Mask$, X&, Pos&
Mask = "__/__/____"
With tbx
V = .Value & Mid(Mask, Len(.Value) + 1) 'on prend la valeur actuelle du textbox
Pos = .SelStart + 1:
Select Case KeyCode
Case 96 To 105, 48 To 57
If Pos = 3 Or Pos = 6 Then Pos = Pos + 1
K = KeyCode:
If K >= 96 Then K = K - 48:
If Pos > 10 Then KeyCode = 0: Exit Sub
Mid(V, Pos, 1) = Chr(K)
If Pos = 2 Or Pos = 5 Then Pos = Pos + 1
'*******Contrôle de la validité de la date*********
If Val(V) > 31 Or Val(Mid(V, 1, 1)) > 3 Then V = Mask: Pos = 0
If Val(Mid(V, 4, 1)) > 1 Or Val(Mid(V, 4, 2)) > 12 Then Mid(V, 4, 2) = Mid(Mask, 4, 2): Pos = 3
If Mid(V, 7, 4) Like "####" Then an = Mid(V, 7, 4) Else an = "2004"
If Mid(V, 1, 5) Like "##/##" Then If Not IsDate(Mid(V, 1, 6) & an) Then Mid(V, 4) = Mid(Mask, 4): Pos = 3
'****fin de Contrôle de la validité de la date*****
KeyCode = 0
Case 8:
If Pos = 7 Or Pos = 4 Then Pos = Pos - 1
If Pos > 1 Then Mid(V, Pos - 1, 1) = Mid(Mask, Pos - 1, 1)
Pos = Application.Max(0, Pos - 2)
KeyCode = 0
Case 13
If Len(.Value) < 10 Or InStr(1, V, "_") > 0 Then KeyCode = 0
Case Else: KeyCode = 0 'toutes les autres touches sont automatiquement annulées
End Select
If V = Mask Then V = ""
If V <> "" And Not MaskVisible Then V = Split(V, Mid(Mask, 1, 1))(0)
.Value = V
.SelStart = Application.Min(10, Pos)
End With
End Sub
Bonsoir,Salut
Dans la PJ, une version épuré, et lisible
pour comprendre, il faut que tu prennes le temps d'aller voir le code et tous les commentaires que j'y ai mis
pour le tri, c'est l'objet des deux macros "TriBD" et "TriRésiliation"
dans la feuille Listes: des tables qui permettent de ne plus avoir aucun nom de structure et num tel en dur dans le code==> pour la maintenance et le suivi, c'est beaucoup plus sain
Re bonsoirHello ici
en PJ une version 5: j'y ai apporté quelques modifs
1) il n'y a plus qu'UN seul combobox==> CBx_Generique
===> adieu les combo.enable, .visible en fonction de la feuille active
2) les checkBox ont été remplacées par des Options boutons
==> idem. adieu les checkbox= false, enable, visible.....
une seule option est selectionnée==> si tu cliques sur une option, les autres sont automatiquement déselectionnées==> ca lance automatiquement le remplissage du combo avec la feuille adéquate (avec une seule macro)
3)j'ai mutualisé certaines opérations: notamment "déplacerligne"
qui pour l'instant permet de déplacer une ligne de la feuille BD vers la feuille Résiliation (bouton Supprimer de BD)
mais je suppose que le bouton "vers SAF" permet de déplacer vers la feuille SAF (mais à partir de la feuille BD uniquement?? ==> dans ce cas, ce bouton ne devrait etre visible que lorsque la feuille BD est active ???)
certains boutons ne font rien encore...
va voir le code et fais nous un retour
Re bonsoir
je me reconnecte dés demain cette semaine j'aurai un peu plus de temps. En tous cas merci de consacrer de votre temps.
Bonne soirée
jRe bonsoir
je me reconnecte dés demain cette semaine j'aurai un peu plus de temps. En tous cas merci de consacrer de votre temps.
Bonne soirée
J'ai téléchargé la dernière version c'est vraiment du grand art. Je vais prendre le temps d'étudier le contenu car à vrai dire je n'ai pas l'habitude faute de connaissances suffisantes d'utiliser un code VBA aussi élaboré. Encore une fois, Je souhaite remercier vivement tous ceux qui m'ont apporté leur aideHello ici
en PJ une version 5: j'y ai apporté quelques modifs
1) il n'y a plus qu'UN seul combobox==> CBx_Generique
===> adieu les combo.enable, .visible en fonction de la feuille active
2) les checkBox ont été remplacées par des Options boutons
==> idem. adieu les checkbox= false, enable, visible.....
une seule option est selectionnée==> si tu cliques sur une option, les autres sont automatiquement déselectionnées==> ca lance automatiquement le remplissage du combo avec la feuille adéquate (avec une seule macro)
3)j'ai mutualisé certaines opérations: notamment "déplacerligne"
qui pour l'instant permet de déplacer une ligne de la feuille BD vers la feuille Résiliation (bouton Supprimer de BD)
mais je suppose que le bouton "vers SAF" permet de déplacer vers la feuille SAF (mais à partir de la feuille BD uniquement?? ==> dans ce cas, ce bouton ne devrait etre visible que lorsque la feuille BD est active ???)
certains boutons ne font rien encore...
va voir le code et fais nous un retour