Instruction VBA Excel - VB/VBA/VBS - Programmation
Marsh Posté le 23-12-2005 à 21:55:08
Textbox.text = Feuil1.Cells(Ligne, colonne).Value
ou
TextBox.text =Worksheets("Nom_Feuille" ).Cells(Ligne, colonne).Value
Marsh Posté le 23-12-2005 à 22:08:44
Salut Epena,
merci pour ta réponse; je teste et te tiens au courant
Marsh Posté le 23-12-2005 à 22:24:42
Veut rien savoir, je n'y comprend plus rien: je te met un bout de mon code
Private Sub CmdOK_Click()
'bouton validation des données
If Not IsNumeric(TxtDiamètre.Text) And TxtDiamètre.Enabled = True Then
MsgBox "Vous devez entrer un nombre dans le champ - Diamètre."
TxtDiamètre.Text = ""
TxtDiamètre.SetFocus
Exit Sub
ElseIf Not IsNumeric(TxtLargeur.Text) And TxtLargeur.Enabled = True Then
MsgBox "Vous devez entrer un nombre dans le champ - Largeur."
TxtLargeur.Text = ""
TxtLargeur.SetFocus
Exit Sub
ElseIf Not IsNumeric(TxtHauteur.Text) And TxtHauteur.Enabled = True Then
MsgBox "Vous devez entrer un nombre dans le champ - Hauteur."
TxtHauteur.Text = ""
TxtHauteur.SetFocus
Exit Sub
End If
r = Worksheets("CTA" ).Range("A65536" ).End(xlUp).Row + 1
With Worksheets("CTA" )
.Cells(r, 1) = TxtDescriptiondelaCTA.Text
.Cells(r, 2) = TxtMarque.Text
.Cells(r, 3) = TxtType.Text
.Cells(r, 4) = TxtDiamètre.Text
.Cells(r, 5) = TxtLargeur.Text
.Cells(r, 6) = TxtHauteur.Text
.Cells(r, 8) = TxtVitesseDésirée.Text
.Cells(r, 9) = TxtDébitDésiré.Text
.Cells(r, 10) = TxtVitesseMesurée.Text
.Cells(r, 11) = TxtDébitMesuré.Text
.Cells(r, 12) = TxtRemarques.Text
.Cells(r, 7).FormulaR1C1 = _
"=IF(RC[-3]<>0,RC[-3]*RC[-3]*3.1416/4/1000000,RC[-2]*RC[-1]/1000000)"
TxtSurface.Text = Sheets("CTA" ).Cells(G, 2).Value
End With
End Sub
Marsh Posté le 24-12-2005 à 07:42:40
C'est quoi G ? dans TxtSurface.Text = Sheets("CTA" ).Cells(G, 2).Value
Ne faut-il pas faire :
TxtSurface.Text = .Cells(r, 7).Value
Bon courage !
Marsh Posté le 24-12-2005 à 09:43:53
Slt,
ben je pensais qu'il fallait mettre la colonne donc G de la feuille "CTA" mais même avec TxtSurface.Text = .Cells(r, 7).Value çà ne fonctionne pas !!!
je suis désespéré car j'ai cette fonction a faire plusieurs fois
Joyeux noël
Merci de ton aide
Marsh Posté le 27-12-2005 à 08:09:30
Bonjour,
Les valeurs renvoyées par les zones de texte sont des 'String' et peuvent être interprétées comme telle par la cellule de la feuille de calcul. Il faut utiliser la fonction Val(TextBox.value) pour être sur de renvoyer une valeur numérique
Cela donnerait :
r = Worksheets("CTA" ).Range("A65536" ).End(xlUp).Row + 1
With Worksheets("CTA" )
.Cells(r, 1) = TxtDescriptiondelaCTA.Text
.Cells(r, 2) = TxtMarque.Text
.Cells(r, 3) = TxtType.Text
.Cells(r, 4) = val(TxtDiamètre.Text)
.Cells(r, 5) = val(TxtLargeur.Text)
.Cells(r, 6) = val(TxtHauteur.Text)
.Cells(r, 8) = val(TxtVitesseDésirée.Text)
.Cells(r, 9) = val(TxtDébitDésiré.Text)
.Cells(r, 10) = val(TxtVitesseMesurée.Text)
.Cells(r, 11) = val(TxtDébitMesuré.Text)
.Cells(r, 12) = TxtRemarques.Text
.Cells(r, 7).FormulaR1C1 = _
"=IF(RC[-3]<>0,RC[-3]*RC[-3]*3.1416/4/1000000,RC[-2]*RC[-1]/1000000)"
TxtSurface.Text = .Cells(r, 7).Value
End With
End Sub
Pourquoi ne pourrait-on pas calculer en VBA plutot que d'utiliser une feuille et remplacer la formule :
"=IF(RC[-3]<>0,RC[-3]*RC[-3]*3.1416/4/1000000,RC[-2]*RC[-1]/1000000)"
Par
If val(TxtDiamètre.Text) <> 0 then
TxtSurface.Text =val(TxtDiamètre.Text)*val(TxtDiamètre.Text)*3.1416/4/1000000
else
TxtSurface.Text =val(TxtLargeur.Text)*val(TxtHauteur.Text)/1000000
end if
Worksheets("CTA" ).Cells(r, 7)=TxtSurface.Text
Cordialement
Epena
Marsh Posté le 28-12-2005 à 05:52:27
Salut Epena,
désolé de te répondre tardivement;
en fait mon problème est résolu et ton approche est correcte.
Pour certaines formules j'ai effectivement utilisé la fonction VAL pour d'autre il a fallut transformae VAL en CSng ( a cause de la virgule/point).
Si tu veux voir le code en entier dis le moi je me ferrai un plaisir de te l'envoyer.
Merci encore pour ton aide.
Amicalement
Novasim 220
Marsh Posté le 23-12-2005 à 21:21:45
Bonsoir à tous,
Quelqu'un peut il me donner l'instruction pour pouvoir visualiser la valeur d'une cellule dans une textbox d'un userform!