VBA TextBox ne se recopie pas en numérique

Fermé
FafaM - 8 mars 2019 à 18:04
 FafaM - 17 mars 2019 à 07:53
Bonjour,
J'ai créé un formulaire dont la TextBox25 est un nombre (0 ou 1). Quand j'enregistre le contenu du formulaire dans l'onglet Base, la quantité 1 se recopie en texte et pas en numérique. Or, le format numérique est essentiel au bon fonctionnement du fichier pour calculer le stock disponible. Je voudrais également masquer les 2 onglets du fichier pour que les utilisateurs ne les voient pas. Mais, quand j'active la ligne de code "Application.Visible = False" dans ThisWorkbook, je ne vois plus les onglets et j'ai besoin de les visualiser. Existe t-il un code qui me permette de les afficher ?
SVP, quelqu'un peut-il m'aider. Merci

https://cjoint.com/c/ICiq4ZcikfR
Configuration: Windows / Firefox 65.0

3 réponses

M-12 Messages postés 1331 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 8 avril 2023 283
8 mars 2019 à 19:01
Bonjour,

Comme son nom l'indique, un TextBox, contient du texte
Il suffit de rajouter *1

TextBox25 * 1
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
8 mars 2019 à 19:48
Bonjour,

ou de convertir explicitement :
xxx = CDbl(TextBox25)


Masquer une feuille :
Sheets("ta_feuille").visible = xlSheetHidden
'ou
Sheets("ta_feuille").visible = xlSheetVeryHidden

=xlSheetVisible pour l'afficher
eric

0
Bonjour,
Merci pour vos réponses. Cela fonctionne très bien. Par contre, j'ai un problème avec le code pour empêcher une 2ème saisie avec le même identifiant. Cela ne fonctionne plus. J'ai ajouté un critère :

And Len(TextBox2.Text) = 7

à ma ligne de code juste avant :

numlign = Sheets("Base").Range("A65536").End(xlUp).Row
With Sheets("Base")
For i = 1 To numlign
If .Cells(i, 2).Value = TextBox2 Then
MsgBox "une commande a déjà été enregistrée pour cet identifiant,. Impossible d'en enregistrer une nouvelle"
Exit For
End If
Next
End With

Est-ce la cause du problème ou est-ce le code ci-dessus qui ne va pas ?

SVP, quelqu'un peut-il m'aider à faire en sorte d'empêcher une 2ème saisie. Merci
0
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
Modifié le 11 mars 2019 à 11:54
Bonjour,

merci d'utiliser la balise code <> pour qu'il soit plus lisible.

Toujours pareil, si compares un nombre à un texte ça sera différent.
Converti ton texte en numérique.
Plutôt qu'une boucle, tu peux compter s'il est présent avec un Nb.Si(). Application.Countif en vba.
eric
0
Merci Eriiic pour cette solution qui fonctionne parfaitement.
0