VBA TextBox ne se recopie pas en numérique

FafaM -  
 FafaM -
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

  1. M-12 Messages postés 1349 Statut Membre 285
     
    Bonjour,

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

    TextBox25 * 1
    0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
  3. FafaM
     
    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
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
    2. FafaM
       
      Merci Eriiic pour cette solution qui fonctionne parfaitement.
      0