Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1904 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Instruction VBA Excel

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Instruction VBA Excel

n°1272751
Novasim220
Posté le 23-12-2005 à 21:21:45  profilanswer
 

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:

mood
Publicité
Posté le 23-12-2005 à 21:21:45  profilanswer
 

n°1272755
Epena
Posté le 23-12-2005 à 21:55:08  profilanswer
 

Textbox.text = Feuil1.Cells(Ligne, colonne).Value
ou  
TextBox.text =Worksheets("Nom_Feuille" ).Cells(Ligne, colonne).Value

n°1272759
Novasim220
Posté le 23-12-2005 à 22:08:44  profilanswer
 

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

n°1272765
Novasim220
Posté le 23-12-2005 à 22:24:42  profilanswer
 

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

n°1272809
Epena
Posté le 24-12-2005 à 07:42:40  profilanswer
 

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 !

n°1272818
Novasim220
Posté le 24-12-2005 à 09:43:53  profilanswer
 

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

n°1273538
Epena
Posté le 27-12-2005 à 08:09:30  profilanswer
 

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

n°1273940
Novasim220
Posté le 28-12-2005 à 05:52:27  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Instruction VBA Excel

 

Sujets relatifs
ListBox VBAMacro API excel
Besoin d'aide VBA ExcelTri automatique sous Excel
Aide Copie TCD en VBADemande d'aide pour un USF VBA Excel
[VBA Excel] Macro excel en batch?VBA Excel instruction pour desactiver les Msgbox() ?
Plus de sujets relatifs à : Instruction VBA Excel


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR