message erreur avec une macro

niki42

XLDnaute Occasionnel
Salut à tous les branchés d'XLD

Voilà j'aurai besoin d'un conseil concernant un fichier.
J'ai fait un userform pour rentrer des données mais j'ai une erreur au démarrage avec l'instruction userform1 show et je n'arrive pas à comprendre pourquoi.
Dans ma feuille il ya une cellule avec un prix (cellule G2) et ce prix doit alimenter le text box txtPrix

Merci pour votre aide
Niki [file name=saisiecr1.zip size=10416]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/saisiecr1.zip[/file]
 

Pièces jointes

  • saisiecr1.zip
    10.2 KB · Affichages: 15

Hervé

XLDnaute Barbatruc
Bonjour

Dans la macro d'initialisation corrige :

TextPrix.Value = range('G2')


Fait attention à l'orthographe des noms des controles, pour éviter des erreurs de synthaxe tu peux utiliser Me. devant tes controles ainsi VBA te proposera la bonne synthaxe.

A plus
 

niki42

XLDnaute Occasionnel
Salut Hervé

Effectivement c'était une erreur de syntaxe (en plus ce n 'est pas la première fois que ça m'arrive, lahonte.)
Par contre je vais abuser de ta gentillesse et solliciter un conseil.
Quelle instruction rajouter dans mon code pour que je n'ai pas d'erreur sur les données récupérées à savoir mes données sont entrées sous forme de texte et non sous forme de nombre;

merci pour ta réponse
Niki
 

Hervé

XLDnaute Barbatruc
re

Lors du renvoi des données vers les cellules, il faut forcer le format :

Private Sub CmdOK_Click()
Dim derniereligne As Integer

'vérif informations
If TxtDate.Value = '' Then MsgBox 'Merci de renseigner une date.', , 'Attention': TxtDate.SetFocus: Exit Sub
If TextFiche.Value = '' Then MsgBox 'Merci de renseigner un numéro.', , 'Attention': TextFiche.SetFocus: Exit Sub
If TextNbre.Value = '' Then MsgBox 'Merci de renseigner une quantité.', , 'Attention': TextNbre.SetFocus: Exit Sub

'renvoi des données
With Worksheets('Feuil1')
derniereligne = .range('a65536').End(xlUp).Row + 1
.range('A' & derniereligne) = CDate(TxtDate)
.range('B' & derniereligne) = CDbl(TextFiche)
.range('C' & derniereligne) = CDbl(TextNbre)
.range('D' & derniereligne) = CDbl(TextPrix)
.range('E' & derniereligne) = CDbl(TextPrix * TextNbre)
End With
End Sub

A plus
 

Hervé

XLDnaute Barbatruc
re niky

VBA, renvoi toutes les données issues d'un control sous forme de string (chaînes de caractères) , les C.... permettent de convertir ces données suivant la valeur voulue.

range('a1')=Textbox1

renvoi dans la cellule A1 la valeur du textbox1 sous la forme de texte, que celui-ci contienne de l'alpha ou du numérique.

range('a1')=cdbl(Textbox1), converti la valeur de la textbox en nombre décimale.

dans l'aide d'excel recherche : Fonctions de conversion de types de données.

A plus.

Salut
 

Hervé

XLDnaute Barbatruc
Bonjour niki,

Non ce n'est pas normal ????

en pièce jointe l'aide d'excel sous format word.

A plus


[file name=niki.zip size=7289]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/niki.zip[/file]
 

Pièces jointes

  • niki.zip
    7.1 KB · Affichages: 18

Membres actuellement en ligne

Statistiques des forums

Discussions
314 450
Messages
2 109 731
Membres
110 554
dernier inscrit
Tchana Yoba