Format de restitution de données avec un UserForm

Bonjour le forum,

Je me suis attaqué à un projet de grande envergure (pour moi) et, pour commencer, j'ai créé une page de saisie pour les utilisateurs avec un UserForm. Dans une ListBox, l'utilisateur choisit des données d'une liste numérique (0,25 ou 0,50 ou 0,75 ou 1).

Seulement, quand je restitue la saisie dans un tableau récapitulatif, ma donnée est en format texte alors que ma liste est bien au format numérique...

Y a-t-il un petit bout de fonction ou de commande à rajouter dans le code VBA ?

Merci encore pour votre aide précieuse et bonne journée à tous.

Fabrice,

Salut Fabrice,

je ne connais pas ton code mais la différence entre ces deux lignes de code est que la première rapporte la valeur au format texte et la deuxième au format nombre.

Worksheets("Sheet1").Range("A1").Value = TextBox1.Text
Worksheets("Sheet1").Range("A1").Value = (TextBox2.Text) * 1

En espérant que ça t'a aidé un peu.

Bonjour Eric,

Merci de ton intérêt pour mon petit souci... Voici la ligne de code qui me permet d'alimenter mon tableau :

Sheets("Journal_enregistrements").Cells(ligne, 7) = LstTemps4.Value

La valeur se met au bon endroit mais reste au format texte...

Merci d'avance.

Fabrice,

Et comme ceci ?

Sheets("Journal_enregistrements").Cells(ligne, 7) = LstTemps4.Value * 1

Salut le forum

Essaye comme ceci

Sheets("Journal_enregistrements").Cells(ligne, 7) = CDbl(LstTemps4)

Mytå

Bonjour le forum,

J'ai testé les deux propositions ce matin. Celle d'Eric ne fonctionne pas du tout et me donne un message d'erreur immédiat d'incompatibilité de type... Pour la solution de Myta, cela a fonctionné du 1er coup, puis, quand j'ai tenté d'autres saisies, j'ai eu un message d'erreur : "erreur d'exécution '13' - incompatibilité de type.

Je vous joins la totalité de mon code qui, surement, paraitra basic aux spécialistes VBA que vous êtes mais qui, pour moi, représente un bel effort.

Private Sub UserForm_Initialize()

Dim TotTemps As String

Workbooks("Déclaration_charges_CREDIT.xls").Activate

LstNoms.RowSource = "Listes!Noms"
Me.Calendar1 = ""

LstProjets_E.RowSource = "Listes!Projets_E"
LstProjets_E2.RowSource = "Listes!Projets_E2"
LstProjets_E3.RowSource = "Listes!Projets_E3"

LstProjets_I.RowSource = "Listes!Projets_I"
LstProjets_I2.RowSource = "Listes!Projets_I2"
LstProjets_I3.RowSource = "Listes!Projets_I3"

LstChantiers.RowSource = "Listes!Chantiers"
LstChantiers2.RowSource = "Listes!Chantiers2"
LstChantiers3.RowSource = "Listes!Chantiers3"
LstChantiers4.RowSource = "Listes!Chantiers4"
LstChantiers5.RowSource = "Listes!Chantiers5"
LstChantiers6.RowSource = "Listes!Chantiers6"

LstLocal.RowSource = "Listes!Local"
LstLocal2.RowSource = "Listes!Local2"
LstLocal3.RowSource = "Listes!Local3"

LstTemps.RowSource = "Listes!Temps"
LstTemps2.RowSource = "Listes!Temps2"
LstTemps3.RowSource = "Listes!Temps3"
LstTemps4.RowSource = "Listes!Temps4"
LstTemps5.RowSource = "Listes!Temps5"
LstTemps6.RowSource = "Listes!Temps6"
LstTemps7.RowSource = "Listes!Temps7"

LstFI.RowSource = "Listes!FI"

End Sub

Private Sub ButAnnuler_Click()
Unload Me
End Sub

Private Sub ButValider_Click()

ligne = Sheets("Journal_enregistrements").[A65000].End(xlUp).Row + 1
ligne2 = Sheets("Journal_enregistrements").[A65000].End(xlUp).Row + 2
ligne3 = Sheets("Journal_enregistrements").[A65000].End(xlUp).Row + 3
TotTemps = LstTemps.Value + LstTemps2.Value + LstTemps3.Value + LstTemps4.Value + LstTemps5.Value + LstTemps6.Value + LstTemps7.Value

If LstNoms = "" Then
    LstNoms.SetFocus
    MsgBox " ***   VEUILLEZ SAISIR VOTRE NOM SVP !!!   *** "
    Exit Sub
End If

If Me.Calendar1 = "" Then
    Me.Calendar1.SetFocus
    MsgBox " ---   VOUS N'AVEZ PAS SAISI DE DATE   --- "
    Exit Sub
End If

'If TotTemps > 1 Then
   ' MsgBox "   LE TEMPS NE PEUT ETRE SUPERIEUR A 1 POUR UNE JOURNEE   "
  '  MsgBox "   ***   ATTENTION !!!  SAISIE NON ENREGISTREE   ***   "
   ' Unload UsfSaisie
  '  Sheets("Accueil").Select
  '  Exit Sub
'End If

Sheets("Journal_enregistrements").Cells(ligne, 1) = LstNoms.Value
Sheets("Journal_enregistrements").Cells(ligne, 2) = Me.Calendar1
Sheets("Journal_enregistrements").Cells(ligne, 3) = LstFI.Value
Sheets("Journal_enregistrements").Cells(ligne, 4) = CDbl(LstTemps7.Value)
Sheets("Journal_enregistrements").Cells(ligne, 5) = LstProjets_I.Value
Sheets("Journal_enregistrements").Cells(ligne, 6) = LstChantiers4.Value
Sheets("Journal_enregistrements").Cells(ligne, 7) = CDbl(LstTemps4.Value)
Sheets("Journal_enregistrements").Cells(ligne, 8) = LstProjets_E.Value
Sheets("Journal_enregistrements").Cells(ligne, 9) = LstChantiers.Value
Sheets("Journal_enregistrements").Cells(ligne, 10) = LstLocal.Value
Sheets("Journal_enregistrements").Cells(ligne, 11) = CDbl(LstTemps.Value)

If LstProjets_E2.Value <> "" Then
    Sheets("Journal_enregistrements").Cells(ligne2, 1) = LstNoms.Value
    Sheets("Journal_enregistrements").Cells(ligne2, 2) = Me.Calendar1
    Sheets("Journal_enregistrements").Cells(ligne2, 8) = LstProjets_E2.Value
    Sheets("Journal_enregistrements").Cells(ligne2, 9) = LstChantiers2.Value
    Sheets("Journal_enregistrements").Cells(ligne2, 10) = LstLocal2.Value
    Sheets("Journal_enregistrements").Cells(ligne2, 11) = CDbl(LstTemps2.Value)
End If

If LstProjets_E3.Value <> "" Then
    Sheets("Journal_enregistrements").Cells(ligne3, 1) = LstNoms.Value
    Sheets("Journal_enregistrements").Cells(ligne3, 2) = Me.Calendar1
    Sheets("Journal_enregistrements").Cells(ligne3, 8) = LstProjets_E3.Value
    Sheets("Journal_enregistrements").Cells(ligne3, 9) = LstChantiers3.Value
    Sheets("Journal_enregistrements").Cells(ligne3, 10) = LstLocal3.Value
    Sheets("Journal_enregistrements").Cells(ligne3, 11) = CDbl(LstTemps3.Value)
End If

If LstProjets_I2.Value <> "" Then
    Sheets("Journal_enregistrements").Cells(ligne2, 1) = LstNoms.Value
    Sheets("Journal_enregistrements").Cells(ligne2, 2) = Me.Calendar1
    Sheets("Journal_enregistrements").Cells(ligne2, 5) = LstProjets_I2.Value
    Sheets("Journal_enregistrements").Cells(ligne2, 6) = LstChantiers5.Value
    Sheets("Journal_enregistrements").Cells(ligne2, 7) = CDbl(LstTemps5.Value)
End If

If LstProjets_I3.Value <> "" Then
    Sheets("Journal_enregistrements").Cells(ligne3, 1) = LstNoms.Value
    Sheets("Journal_enregistrements").Cells(ligne3, 2) = Me.Calendar1
    Sheets("Journal_enregistrements").Cells(ligne3, 5) = LstProjets_I3.Value
    Sheets("Journal_enregistrements").Cells(ligne3, 6) = LstChantiers6.Value
    Sheets("Journal_enregistrements").Cells(ligne3, 7) = CDbl(LstTemps6.Value)
End If

Sheets("Accueil").Select
Unload UsfSaisie

End Sub

Merci pour votre patience et pour votre aide.

Fabrice,

Bonjour le forum,

Peut-être à la longueur de mon code avez-vous eu peur de vous pencher sur mon problème... Je vous comprends mais il n'y a rien de compliqué et je pense aussi qu'il y avait certainement moyen de raccourcir tout ça avec des boucles en VBA...

Cependant, la solution de Myta a fonctionné une fois mais me génère un message d'erreur maintenant et je n'arrive vraiment pas à comprendre pourquoi. C'est certainement tout bête mais là, je cale complètement.

Merci d'avance à celui ou celle qui pourra me venir en aide.

Fabrice,

Bonjour le forum,

Personne pour m'indiquer comment restituer mes données en numérique ?

Merci d'avance et bonne journée.

Fabrice,

Bonjour le forum,

J'ai encore cherché hier après-midi le moyen de m'en sortir mais je n'ai toujours pas trouvé.

Il n'y a vraiment personne qui ne sache comment faire pour que la saisie d'une valeur dans mon UserForm reste en numérique quand je la restitue dans mon tableau récap ?

Merci pour votre aide éventuelle.

Fabrice,

Rechercher des sujets similaires à "format restitution donnees userform"