XL 2019 format texbox téléphone et date

Yann71

XLDnaute Occasionnel
Bonjour la com.
Après recherche sur différent forum je n'ai trouvé ce que je recherchai.
J'ai un user qui rempli une base de donnée dont j'aimerai que certaine textbox & collone aient une mise en forme
bien précise. Ex.: pour un num de téléphone 000 000 00 00 dans un autre +00 000 000 000...

Merci pour votre aide futur.
 

Pièces jointes

  • Liste_téléphone_USERFORM_V_12_2_TEST.xlsm
    175.2 KB · Affichages: 12

jmfmarques

XLDnaute Accro
Bonjour
Il te faut donc intervenir au niveau format/cellule
Exemple pour ton 000 000 00 00
le format personnalisé 000" "000" "00" "00 affichera 0000000000 sous la forme 000 000 00 00
je te laisse faire les autres (au moins les tenter)
 

Yann71

XLDnaute Occasionnel
Bonjour
Il te faut donc intervenir au niveau format/cellule
Exemple pour ton 000 000 00 00
le format personnalisé 000" "000" "00" "00 affichera 0000000000 sous la forme 000 000 00 00
je te laisse faire les autres (au moins les tenter)
Bonjour jmfmarques, merci pour ta réponse, j'ai déjà pensé à la mise en forme, mais le soucis c'est que dans la colonne autre 1 & 2 il peut y avoir 2 type de numéros càd +00 000 000 000 ou
+00 000 000 0000 d'où mon problème concernant la mise en forme. Et un petit plus cela aurait-été que dans la textbox le format du numéro se fasse aussi mais ceci c'est un plus que je peux me passer.
 

GALOUGALOU

XLDnaute Accro
bonjouryann71 bonjour le fil bonjour le forum
la valeur textbox est toujours considéré comme du texte
je vous propose d'essayer cette solution pour transformer la valeur texte en valeur numérique.
dans les lignes codes du textbox rajouter une ligne sur les textbox concernées, comme dans l'exemple suivant
Enrichi (BBcode):
   f.Cells(ligneEnreg, 3) = Adresse
   f.Cells(ligneEnreg, 3) = f.Cells(ligneEnreg, 3) * 1
   f.Cells(ligneEnreg, 4) = Me.Identité
   f.Cells(ligneEnreg, 4) = f.Cells(ligneEnreg, 4) * 1
des solutions plus simple existent certainement, mais je ne les connais pas
cordialement
galougalou
 

Yann71

XLDnaute Occasionnel
bonjour galougalou, merci pour ton aide, j'aimerai savoir ou dois-je inscrire le code que tu viens de me donner, je suis un demi-débutant, mon user je l'ai réaliser grâce à des bous de code de personne si connaissant bien mieux que moi. Je joins mon dernier fichier.
 

Pièces jointes

  • Liste_téléphone_USERFORM_V_12_2_TEST.xlsm
    173.1 KB · Affichages: 5

GALOUGALOU

XLDnaute Accro
re
le code dans l'userform
Enrichi (BBcode):
Private Sub B_validation_Click()
  If Me.nom = "" Then
     MsgBox "Saisir un nom"
     Me.nom.SetFocus
     Exit Sub
  End If
  '--- Transfert Formulaire dans BD
   f.Cells(ligneEnreg, 1) = Application.Proper(Me!nom)
   f.Cells(ligneEnreg, 2) = date_de_naissance
  
   f.Cells(ligneEnreg, 3) = tel_maman
    f.Cells(ligneEnreg, 3) = f.Cells(ligneEnreg, 3) * 1
   f.Cells(ligneEnreg, 4) = Me.tel_papa
      f.Cells(ligneEnreg, 4) = f.Cells(ligneEnreg, 4) * 1
   f.Cells(ligneEnreg, 5) = Me.ComboBox1
   f.Cells(ligneEnreg, 6) = Me.autre_1
      f.Cells(ligneEnreg, 6) = f.Cells(ligneEnreg, 6) * 1
   f.Cells(ligneEnreg, 7) = Me.ComboBox2
   f.Cells(ligneEnreg, 8) = Me.autre_2
      f.Cells(ligneEnreg, 8) = f.Cells(ligneEnreg, 8) * 1
   f.Cells(ligneEnreg, 9) = Me.infos
  
  
End Sub
les colonnes doivent être formatées soit au format personnalisé pour les n° de téléphones, soit au format date pour la colonne date
dans les cellules conventionnellement la saisie des dates dans excel est ##/##/####

pour la textbox une procédure vous permet de saisir les 8 chiffres sans séparateur. elle n'est pas obligatoire vous pouvez la supprimer, mais alors il faudra saisir la date avec les séparateurs.
Enrichi (BBcode):
Private Sub date_de_naissance_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    Dim VT As Integer
 date_de_naissance.MaxLength = 10
    Select Case KeyAscii
        Case 46, 48 To 57
        
            VT = Len(date_de_naissance)
            If VT = 2 Or VT = 5 Then date_de_naissance = date_de_naissance & "/"
        Case Else
            KeyAscii = 0
            MsgBox "CARACTERE NON AUTORISE"
    End Select
End Sub
cordialement
galougalou
 

Pièces jointes

  • Copie de Liste_téléphone_USERFORM_V_12_2_TEST v1.xlsm
    172.1 KB · Affichages: 6

Yann71

XLDnaute Occasionnel
re
le code dans l'userform
Enrichi (BBcode):
Private Sub B_validation_Click()
  If Me.nom = "" Then
     MsgBox "Saisir un nom"
     Me.nom.SetFocus
     Exit Sub
  End If
  '--- Transfert Formulaire dans BD
   f.Cells(ligneEnreg, 1) = Application.Proper(Me!nom)
   f.Cells(ligneEnreg, 2) = date_de_naissance
 
   f.Cells(ligneEnreg, 3) = tel_maman
    f.Cells(ligneEnreg, 3) = f.Cells(ligneEnreg, 3) * 1
   f.Cells(ligneEnreg, 4) = Me.tel_papa
      f.Cells(ligneEnreg, 4) = f.Cells(ligneEnreg, 4) * 1
   f.Cells(ligneEnreg, 5) = Me.ComboBox1
   f.Cells(ligneEnreg, 6) = Me.autre_1
      f.Cells(ligneEnreg, 6) = f.Cells(ligneEnreg, 6) * 1
   f.Cells(ligneEnreg, 7) = Me.ComboBox2
   f.Cells(ligneEnreg, 8) = Me.autre_2
      f.Cells(ligneEnreg, 8) = f.Cells(ligneEnreg, 8) * 1
   f.Cells(ligneEnreg, 9) = Me.infos
 
 
End Sub
les colonnes doivent être formatées soit au format personnalisé pour les n° de téléphones, soit au format date pour la colonne date
dans les cellules conventionnellement la saisie des dates dans excel est ##/##/####

pour la textbox une procédure vous permet de saisir les 8 chiffres sans séparateur. elle n'est pas obligatoire vous pouvez la supprimer, mais alors il faudra saisir la date avec les séparateurs.
Enrichi (BBcode):
Private Sub date_de_naissance_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

    Dim VT As Integer
date_de_naissance.MaxLength = 10
    Select Case KeyAscii
        Case 46, 48 To 57
       
            VT = Len(date_de_naissance)
            If VT = 2 Or VT = 5 Then date_de_naissance = date_de_naissance & "/"
        Case Else
            KeyAscii = 0
            MsgBox "CARACTERE NON AUTORISE"
    End Select
End Sub
cordialement
galougalou
Re GALOUGALOU c'est exactement ça. Mais en essayant de rentrer des données, j'ai remarqué que si je ne rempli pas tous les champs des numéro de tel une erreur s'affiche.
 

GALOUGALOU

XLDnaute Accro
re
oui, vous avez raison, je viens de faire le test
pour gérer ce problème, dans le code ci-dessous j'ai rajouté un test pour effectuer l'opération uniquement si le textbox contient une valeur
remplacer le code du #11 par celui ci
Enrichi (BBcode):
Private Sub B_validation_Click()
  If Me.nom = "" Then
     MsgBox "Saisir un nom"
     Me.nom.SetFocus
     Exit Sub
  End If
  '--- Transfert Formulaire dans BD
   f.Cells(ligneEnreg, 1) = Application.Proper(Me!nom)
   f.Cells(ligneEnreg, 2) = date_de_naissance
 
   f.Cells(ligneEnreg, 3) = tel_maman
   If f.Cells(ligneEnreg, 3) <> "" Then
    f.Cells(ligneEnreg, 3) = f.Cells(ligneEnreg, 3) * 1
    End If
   f.Cells(ligneEnreg, 4) = Me.tel_papa
    If f.Cells(ligneEnreg, 4) <> "" Then
      f.Cells(ligneEnreg, 4) = f.Cells(ligneEnreg, 4) * 1
      End If
   f.Cells(ligneEnreg, 5) = Me.ComboBox1
   f.Cells(ligneEnreg, 6) = Me.autre_1
      If f.Cells(ligneEnreg, 6) <> "" Then
      f.Cells(ligneEnreg, 6) = f.Cells(ligneEnreg, 6) * 1
      End If
   f.Cells(ligneEnreg, 7) = Me.ComboBox2
   f.Cells(ligneEnreg, 8) = Me.autre_2
      If f.Cells(ligneEnreg, 8) <> "" Then
      f.Cells(ligneEnreg, 8) = f.Cells(ligneEnreg, 8) * 1
      End If
   f.Cells(ligneEnreg, 9) = Me.infos
 
 
End Sub
cordialement
galougalou
 

ChTi160

XLDnaute Barbatruc
Bonjour Yann
Bonjour le Fil ,le Forum
je me suis intéressée aux formats dans les TextBox pas traité la Saisie bien quelle soit limitée à des Chiffres!
ça pourrait être une Solution Lol
Bonne continuation
Jean marie
 

Pièces jointes

  • Liste_téléphone_USERFORM_V1 Chti160.xlsm
    183.7 KB · Affichages: 14

Yann71

XLDnaute Occasionnel
Bonjour Yann
Bonjour le Fil ,le Forum
je me suis intéressée aux formats dans les TextBox pas traité la Saisie bien quelle soit limitée à des Chiffres!
ça pourrait être une Solution Lol
Bonne continuation
Jean marie
Salut ChTi malgré la situation comment vas-tu? Ton user est très bien pensé je t'en remercie. Cependant il y a un soucis de code lors de validation de l'entrée je rencontre des erreurs pourrais-tu m'aider stp
 

Discussions similaires