Modifier texbox format alphanumerique en numerique

Bonsoir à toutes et tous.

Je reviens vers vous car j'ai un problème avec un tableau de comande de tanues de spot.

Quand je rentre le nmbre de tenue les cellule ou se trouve la valeur m'indique le nombre

est stocké au format texte, ce qui entraine une erreur dans les calculs.

Je voudrais savoir comment modifier le format alphanumerique d'une textbox en format numerique.

je joins le fichier.

merci d'avance.

Bonjour Ldopa

Si j'ai bien compris , vite fait, dans ton module Format_numérique, au lieu de

Selection.NumberFormat = "General"

Remplace par :

Selection.NumberFormat = "0"

Bonne soirée

Bonjour Patty5046.

Merci de ta réponse, mais ce n'est pas exxactemet cela.

cela ne fonctionne pas.

j'ai essayé aussi cela,

Select Case i
    Case 2, 10 'etc 
         ws.Cells(ligne, i + 1) = Me.Controls("TextBox" & i) * 1
    Case Else 'Autres cas
         ws.Cells(ligne, i + 1) = Me.Controls("TextBox" & i) 
End Select

Mais cela ne fonctionne pas.

merci encore pour ton aide.

Bonjour

J'ai étudié de plus près.

En fait, tu utilises des formules et l'erreur vient du fait que lorsque ton nombre n'est pas chargé, il est "vide" et donc ta formule plante.

Perso, je ne suis pas "Formules".

Tu pourrais essayer une macro, ce serait plus simple je pense.

Si tu es d'accord et que j'ai du temps, je regarderais.

Bonne fin de journée

RE :

J'ai essayer la formule suivante

Private Sub Modifier_Click()

'Pour le bouton Modifier

Dim Ligne As Long
Dim I As Integer

   If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
   '
' Format_Numerique Macro
'

'
     If Me.ComboBox1.ListIndex = -1 Then Exit Sub

         Ligne = Me.ComboBox1.ListIndex + 4

         Ws.Cells(Ligne, "B") = ComboBox2

     For I = 1 To 30
         If Me.Controls("TextBox" & I).Visible = True Then
             If I = 1 Then Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I) * 1 Else Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
         End If
     Next I
   End If

Unload Me
UserForm1.Show

End Sub

Mais cela m'indique une erreur en surlignant la zone ci-après avec incompatibilité de type ?,

"Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I) * 1 Else"

Merci d'avance pour ton aide

Rebonjour

Essaie quelque chose comme cela :

Private Sub Modifier_Click()

'Pour le bouton Modifier

Dim Ligne As Long
Dim I As Integer
Dim Total
Total = 0
   If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
   '
' Format_Numerique Macro
'

'
    Range("F4:F53,H4:H53,J4:J53,L4:L53,N4:N53,P4:P53,R4:R53,T4:T53,V4:V53,X4:X53,Z4:Z53,AB4:AB53,AD4:AD53,AF4:AF53").Select
    Selection.NumberFormat = "0"

     If Me.ComboBox1.ListIndex = -1 Then Exit Sub

         Ligne = Me.ComboBox1.ListIndex + 4

         Ws.Cells(Ligne, "B") = ComboBox2

     For I = 1 To 30
         If Me.Controls("TextBox" & I).Visible = True Then
            Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
         End If
     Next I
     For I = 6 To 32 Step 2
        If IsNumeric(Ws.Cells(Ligne, I).Value) Then
            Total = Total + Ws.Cells(Ligne, I).Value * Ws.Cells(3, I - 1)
        End If
     Next I
     Ws.Cells(Ligne, 34).Value = Total
   End If

Unload Me
UserForm1.Show

End Sub

Tes formules sont écrasées par cela :

Ws.Cells(Ligne, 34).Value = Total

Et il semble que cela fonctionne

A plus

Bonsoir.

Merci pour ta ptposition, je viens de la tester,mais les nombres reste tjs au format texte..

j'avoue que je suis sec.

A te ralire.

Re

Dans un textbox, c'est toujours du texte si je ne me trompe, je ne comprend pas vraiment ton problème ni où tu bloques.

Tu peux toujours contrôler que la saisie soit numérique, il y a plein d'exemples en cherchant bien.

Si le textbox n'est pas chargé, tu peux le forcer à 0.

Dans ce que je t'ai donné, tes calculs se font bien (Prix TTC en colonne AH) alors qu'avant avec tes formules il y avait une erreur.

Bon courage

Bonne soirée

RE:

Désolé, mais je n'avait pas verifier, , j'avais juste regardé les valeurs dans les colonnes.

Effectivement les calculs sont justes avec ce que tu m'a donné.

Je te remerci beaucoup..

A te relire.

Bonjour,

comme dit, un textbox ramène du texte.
Il faut convertir en numérique au moment de l'écriture ta_cellule = CLng(ta_valeur_en_texte)

Ta cellule doit avoir le format voulu, ou peut rester au format Standard
eric

Bonsoir False.

Merci pour ton intervention,

mais peux tu m'en dire un peu plus.

Bonsoir à tous,

Regarde ici...

Cdlt,

Moi c'est true (en rouge)
Pourquoi j'ai mis CLng ? C'est CDbl qu'il faudrait

Dans ton cas ça serait : ws.Cells(ligne, i + 1) = CDbl(Me.Controls("TextBox" & i))
Je n'avais pas vu ton * 1 qui fait la même chose, mais c'est à faire sur toutes les écritures concernée

Prends aussi l'habitude d'écrire explicitement la propriété voulue. Ici par défaut il prendre .Text mais tu n'es pas à l'abri de surprises avec d'autres objets

Bonjour True.

Désolé pour l'inversion du nom.

j'arrive progressivement à ecrice certaines ligne de code, mais j'avoue que la commande CDbl je n'arrive pas à l'integrer.

J'en ai besoin afin de pouvoir etablir le bon de commande en passant par des tableaux croisés dynamiques.

Merci d'avance

Bonjour,

Je plaisantais, c'est eriiic
ne pas hésiter à faire F1 sur les instructions que tu connais peu ou mal, c'est comme ça qu'on progresse aussi.
eric

Salut à tous,

Un peu de lecture : Fonctions de conversion de types (VBA) | Microsoft Learn

Et une photo

000354

pour l'exemple

RE :

Merci eriiic, je n'avais pas saisie le sens de "à faire sur toutes les écritures concernée".

J'ai ajouté à chaque textbox concernée "ws.Cells(ligne, i + 1) = CDbl(Me.Controls("TextBox" & i))", et maintenant j'obtient le résultat excompté.

en core merci.

A vous relire tous.

Bonjour à toute l'équipe.

Je suis contente que vous ayez réussi à l'aider, car j'avais un peu abandonné étant occupée par ailleurs.

Merci à tous pour votre aide permanente.

Bonnes fêtes de Noël.

Rechercher des sujets similaires à "modifier texbox format alphanumerique numerique"