Textbox pas bonne valeur lorsque j'active macro une 2e fois
Bonjour,
J'ai un programme Visual Basic
Présentement j'ai un problème lorsque je sauvegarde.. je m'explique:
Mes textbox prend une donnée (résultat d'un calcul excel) à partir d'une cellule et me l'affiche. J'ai réussi par Linkcell en plus d'un petit programme, tel que:
(Ce programme permet de prendre une valeur inscrite dans une cellule et l'affiche dans une textbox, tel que 102.000")
Sub textbox_Change()
textbox = Format( textbox, "0.000")
If Sheets("RÉSULTATS").Range("Calcul.D1.3").Text = True Then
textbox.Text = Sheets("RÉSULTATS").Range("Calcul.D1.3").Text & " '' "
End If
End Sub
ET lorsque je sauvegarde avec ceci:
(Ce programme permet de Rejouer toute mes textbox une dernière fois avant de sauvegarder)
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Call Feuil4.textbox_Change
etc..
End Sub
(Ce programme permet de sauvegarder en cliquant sur un bouton)
Sub Sauvegarde_Click()
Application.Dialogs(xlDialogSaveAs).Show
End Sub
La plupart de mes valeurs de mes textbox sont perdues et m'affiche absolument n'importe quoi (ex.1082000.000) (qui devrait m'affiche quelque chose du genre: 102.000")
J'aimerais bien qu'il affiche À TOUT LES FOIS tel que mon programme textbox_Change demande
Merci de m'aider
Bonsoir maprg3,
Deux choses :
Sub textbox_Change()
textbox = Format( textbox, "0.000")
If Sheets("RÉSULTATS").Range("Calcul.D1.3").Text = True Then
textbox.Text = Sheets("RÉSULTATS").Range("Calcul.D1.3").Text & " '' "
End If
End Sub1 - J'ai du mal à comprendre tu formates le textbox, et ensuite tu le mets à jour selon une condition ? Cela veut dire que quand tu saisis dans le formulaire, il remplace une éventuelle saisie par le contenu d'une cellule si une condition contenue dans une autre cellule est remplie ? Surprenant... Mais pourquoi pas. Dans ce cas il faut plutôt mettre cette ligne :
textbox = Format( textbox, "0.000")juste avant le End Sub, de cette manière tu reformates le texbox avec la nouvelle valeur (enfin, si elle est numérique, ce qui semble ne pas être le cas : pourquoi & " '' " ?)
2 - En VBA, dans la fonction Format le séparateur de décimal est le point et le séparateur de milliers est la virgule, donc il semblerait que tu aies utilisé la virgule mais non le point comme dans ton exemple. Sinon, puisque le textbox est alimenté par le contenu d'une cellule, vérifie que le chargement du Textbox se passe correctement.
Merci pour tes conseils ! Cela m'a bien aidé et ça fonctionné.
En passant, le " " " est nécessaire car ce sont des mesures en impériale et ce qui affiche est (ex.: 102.125")