Instruction VBA Excel

Instruction VBA Excel - VB/VBA/VBS - Programmation

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! :hello:

Reply

Marsh Posté le 23-12-2005 à 21:21:45   

Reply

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

Reply

Marsh Posté le 23-12-2005 à 22:08:44    

Salut Epena,
merci pour ta réponse; je teste et te tiens au courant

Reply

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

Reply

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 !

Reply

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

Reply

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

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed