IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBV TextBox unité d'une cellule


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Août 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : Août 2015
    Messages : 6
    Par défaut VBV TextBox unité d'une cellule
    Bonjour à tous,

    je souhaite me créer un formulaire permettant des mettre une unité prédéfinie dans une cellule (km, Litre etc ...)

    avec les buttonClick ça marche bien , mais je souhaite aussi une texbox me permettant de créer une unité (genre "machin", "bidule") en la tappant directement.

    j'ai essayé ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub TextBox1_Change()
     
    Selection.NumberFormat = "# " & TextBox1.Value & ""
     
    End Sub
    ça marche, mais un certain nombre de lettres ou enchaînement de lettres bloquent (a et z sont acceptés, o non mais zooo oui, étrange ...)

    l'erreur renvoyée est "erre d’exécution 1004 : Impossible de définir la propriété NumberFormat de la classe Range"

    auriez vous une idée pour m'inspirer svp ?

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Bonjour,

    Si les valeurs sont textuelles, essaie avec le signe @ plutôt que #
    Si ce sont des numériques, mets un 0

  3. #3
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Bonjour.

    Voici un demo sur l'utilisation de NumberFormat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Private Sub TextBox1_Change()
     ligne = Selection.Cells(1).Row
     
     Set c = Cells(ligne, 1)
     Cells(ligne, 1).Select
     
     v = TextBox1.Value
     
     If v = "vrai" Or v = "faux" Then
      'Booleen
      Cells(ligne, 1).NumberFormat = "General"
     
      If v = "vrai" Then
       Cells(ligne, 1).Value = True
      Else
       Cells(ligne, 1).Value = False
      End If
     
     Else
     If IsNumeric(Replace(v, ".", ",")) Then
      'Nombres
      Cells(ligne, 1).NumberFormat = "0.00"
      Cells(ligne, 1).Value = CDbl(Replace(v, ".", ","))
     
     
     ElseIf IsDate(v) Then
      'Dates
      Cells(ligne, 1).NumberFormat = "General"
      Cells(ligne, 1).FormulaLocal = v
     
     
     Else
      'Textes
      Cells(ligne, 1).NumberFormat = "@"
      Cells(ligne, 1).Value = v
     
     
     End If
     End If
     
     'Infos
     Cells(ligne, 3).Value = TypeName(Cells(ligne, 1).Value)
     Cells(ligne, 2).Value = Cells(ligne, 1).NumberFormat
     
    End Sub

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur avant-vente
    Inscrit en
    Août 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur avant-vente

    Informations forums :
    Inscription : Août 2015
    Messages : 6
    Par défaut
    merci pour vos réponses,

    @parmi , j'ai remplacé # par 0, ça ne foncitonne pas, l'erreur reste la même.

    @docmarti, merci, ton code me permet de savoir quel est le type de ce que je rentre dans ma textbox, pour autant je ne vois pas comment récupèrer ce qu'il y'a dans ma textbox et l'appliquer comme étant le nouveau format de ma case.

    auriez vous d'autres idées?

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    Selection.NumberFormat = "# """ & TextBox1.Value & """"

    _________________________________________________________________________________________________________

    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion …

    _________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 609
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 609
    Par défaut
    Il ne faut pas oublier qu'une textbox n'est pas numérique par défaut.
    Il faut forcer la valeur texte en nombre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Range("A1") = CDbl(TextBox1)
        Range("A1").NumberFormat = "0 " & """Bidules"""

Discussions similaires

  1. Pb copier une valeur d'une textbox vers une cellule
    Par whykiki dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/12/2007, 11h49
  2. Réponses: 7
    Dernier message: 28/09/2007, 09h51
  3. Réponses: 6
    Dernier message: 24/01/2007, 08h15
  4. VBA-Excel copier la valeur d'une textbox dans une cellule
    Par GrandGarfield dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/08/2006, 10h15
  5. [VBA-E] Inscrire dans le textbox une partie du contenu d'une cellule
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/08/2006, 08h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo