Problème format texte en nombre (VBA) [Résolu]

Signaler
Messages postés
3
Date d'inscription
lundi 10 février 2020
Statut
Membre
Dernière intervention
11 février 2020
-
Messages postés
3
Date d'inscription
lundi 10 février 2020
Statut
Membre
Dernière intervention
11 février 2020
-
Bonsoir à tous,

Je me permets de vous écrire car j’ai un problème de macro.
En effet, je rempli sous user forme plusieurs valeur dans les textbox et par la formule suivante j’arrive à renseigner une feuille Excel :
Sheets(« ma feuille »).range(« macellule »).value = me.textbox.value

Pour transformer mes valeurs issues des textbox en format nombre, j’ajoute « * 1 » à la suite de cette formule où « cdbl » avant (me.textbox.value)

Ceci fonctionne concernant la conversation de mes valeurs textes en format nombre cependant lorsque qu’une textbox n’est pas remplies, mon code plante et l’ensemble des valeurs reste en format texte.

Pouvez vous m’aider SVP ?

Merci de votre aide
Cordialement

2 réponses

Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 496
Bonjour,

> CDbl => transforme une donnée de type numérique (ou qui y "ressemble") en Double.
Pas une bonne idée car tout nombre n'est pas de type Double...

> * 1 => Je n'aime pas multiplier une chaîne de caractères (un textbox en est une) par un chiffre.

Reste la fonction Val qui semble faite pour ça...
Sheets(« ma feuille »).range(« macellule »).value = Val(Me.Textbox1.Value)


https://docs.microsoft.com/fr-fr/office/vba/language/reference/user-interface-help/val-function
Val, Fonction
Renvoie les nombres contenus dans une chaîne en tant que valeur numérique de type approprié.
Messages postés
3
Date d'inscription
lundi 10 février 2020
Statut
Membre
Dernière intervention
11 février 2020

Super ! Ça marche !!!!
Merci beaucoup !!! :) :)
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862
Bonjour
pourquoi de pas simplement faire un test de façon à vérifier si ton text boxest vide ou pas ?
Tu peux aussi te pencher sur la fonction isnumber.

Messages postés
3
Date d'inscription
lundi 10 février 2020
Statut
Membre
Dernière intervention
11 février 2020

Merci de ton retour, :)
Le processus de ma macro est le suivant :
L’utilisateur rempli un userform avec des textbox. Une fois celles ci remplies, la macro vient chercher les valeurs de mes textbox pour les inscrire en cellules D3:D36 d’une feuille Excel.
Cependant il est possible que l’utilisateur ne remplisse pas toutes les textbox de mon userform, malgré tout cela doit quand même permettre au bouton enregistrer de fonctionner et ne pas bloquer la macro parce qu’une textbox n’a pas été remplie
Voilà...
Le problème est survenu à partir du moment où j’ai ajouté « * 1 » à mon code d’enregistrement pour que les valeurs de mes textbox soient prises en compte sous format nombre dans mes cellules Excel et non en format texte... car j’ai absolument besoin que les valeurs de mes textbox soient reporté dans mes cellules sous format nombre
Messages postés
29782
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
20 octobre 2020
2 862 >
Messages postés
3
Date d'inscription
lundi 10 février 2020
Statut
Membre
Dernière intervention
11 février 2020

Oui et donc ?
comme je te l'ai dit une simple conditions pour vérifier si ta textbox est vide ou si c'est bien un nombre suffirait à régler ton problème...
En VBA il te suffit d'utiliser un if else