XL 2013 Erreur dans une cellule lors d'une Vba

aziz

XLDnaute Occasionnel
Bonjour à tous,
Voici mon souci avec mon userform :

Lorsque je fais une création client il n'y pas d'erreur dans la cellule.

Et par contre quand je souhaite faire une modif, là il y a une erreur dans la cellule ? :confused:

Merci pour votre aide
 

Pièces jointes

  • testA.xlsm
    38.8 KB · Affichages: 44
  • testA.xlsm
    38.8 KB · Affichages: 39

Lone-wolf

XLDnaute Barbatruc
Re : Erreur dans une cellule lors d'une Vba

Bonjour aziz

Modifie le format des colonnes par Nombre. Et dans la macro Val(TextBoxNbrAdultes) idem pour les deux autres. Pour les TextBox's numériques met l'alignement à droite. Et pour le numéro de téléphone: Format(Val(TextBoxNtelephone), "000 000 00 00")
 
Dernière édition:

aziz

XLDnaute Occasionnel
Re : Erreur dans une cellule lors d'une Vba

Merci pour ta réponse, j'ai fais ceci mais cela n'a pas fonctionné


Private Sub TextBoxNbrAdultes_Change()
txtvalue = Format(Value, "00")
End Sub

Private Sub TextBoxNbrAnimaux_Change()
txtvalue = Format(Value, "00")
End Sub

Private Sub TextBoxNtelephone_Change()
txtvalue = Format(Val(TextBoxNtelephone), "000 000 00 00")
End Sub
 

Pièces jointes

  • testA.xlsm
    42.7 KB · Affichages: 41
  • testA.xlsm
    42.7 KB · Affichages: 45

Papou-net

XLDnaute Barbatruc
Re : Erreur dans une cellule lors d'une Vba

Bonjour aziz, Lone-wolf, le Forum,

Le contenue des Textbox est toujours au format texte.

Il est donc inutile de le modifier lors de la saisie. La conversion se fera donc lors de l'enregistrement des données sur la feuille de calcul:

Code:
Private Sub CommandButton1_Click()
Dim CTRL As Control 'Variable pour la collection des controls
Dim i As Integer
Dim Response As Byte

'Si le User tente de change le nom de la ComboBox en Mode Modification
If Me.ComboBoxParNom.ListIndex = -1 Then Exit Sub 'ON sort si pas de sélection
'Ici un message demandant d'accepter les changement en les listant
Response = MsgBox("Acceptez vous les changements ? ", vbQuestion + vbOKCancel, T & " Modification de : " & Nom)
'Si Réponse OK on continue
If Response = 1 Then
    'ici avec la Feuille on va faire :
    Set WS = Worksheets("Base client")
    With WS
        .Range("A" & Me.ComboBoxParNom.ListIndex + 3) = TextBoxDate   ' On écrit dans chaque colonne les valeurs des différents controls
        .Range("C" & Me.ComboBoxParNom.ListIndex + 3) = TextBoxnom              ' Idem
        .Range("D" & Me.ComboBoxParNom.ListIndex + 3) = TextBoxAdresse            ' Idem
        .Range("E" & Me.ComboBoxParNom.ListIndex + 3) = Val(TextBoxcodepostal)             ' Idem
        .Range("F" & Me.ComboBoxParNom.ListIndex + 3) = TextBoxville            ' Idem
        .Range("G" & Me.ComboBoxParNom.ListIndex + 3) = Format(Val(TextBoxNtelephone), "000 000 00 00")
        .Range("H" & Me.ComboBoxParNom.ListIndex + 3) = TextBoxnuméroCI
        .Range("I" & Me.ComboBoxParNom.ListIndex + 3) = TextBoxmail
        .Range("j" & Me.ComboBoxParNom.ListIndex + 3) = CInt(TextBoxNbrAdultes)
        .Range("k" & Me.ComboBoxParNom.ListIndex + 3) = CInt(TextBoxNbrEnfants)
        .Range("l" & Me.ComboBoxParNom.ListIndex + 3) = CInt(TextBoxNbrAnimaux)
    End With 'On evoie un message de confirmation
    MsgBox "Opération accomplie", vbInformation, T
Else
    MsgBox "Opération annulée", vbInformation, T
End If
' On décharge le formulaire
    Unload Me
    'on ferme le formulaire
    usfnouveauclient.Hide
End Sub
Les événements Change des textbow concernés doivent donc être supprimés.

Bon dimanche.

Cordialement.
 

Lone-wolf

XLDnaute Barbatruc
Re : Erreur dans une cellule lors d'une Vba

Bonjour Papou-net :)

À modifier aussi le code UserForm_Initialize par celui-ci et ajouter l'incrémentation des numéros des bons en colonne B.

Code:
Private Sub UserForm_Initialize()
Dim x As Integer
With Sheets("Base client")
For x = 3 To .Range("C65536").End(xlUp).Row
ComboBoxParNom.AddItem .Range("C" & x) ' on utilise la colonne C de la liste déroulante
Next x
End With
End Sub
 

aziz

XLDnaute Occasionnel
Re : Erreur dans une cellule lors d'une Vba

Merci beaucoup Papou-net

derniere petite question pour la textBoxnuméroCi afin d'eviter les erreurs cellule, car des fois je peux avoir
des chiffres et des lettres en meme tps.

Enfin quel code utiliser ?
merci
 

Papou-net

XLDnaute Barbatruc
Re : Erreur dans une cellule lors d'une Vba

RE:

J'ai bien compris que textBoxnuméroCi pouvait contenir des chiffres et des lettres, c'est la raison pour laquelle la macro recopie sa valeur sans aucun formatage. Le contenu est donc bien retransmis dans le format texte du contrôle.

A +

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 469
Messages
2 088 696
Membres
103 924
dernier inscrit
Patrick c