Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Comment fait on pour définir la valeur d'un textbox

  • Initiateur de la discussion thuan
  • Date de début
T

thuan

Guest
Bonjour,
J'ai un petit pb j aimerai calculer les harmoniques pour une fréquence donnée. pour cela je demande dans un textbox la valeur de la fréquence, puis l'utilisateur clic sur un commandbutton nommée calcul pour lancer le calcul, dans 3 textbox j'affiche le résult pour l'harmonique 2, l'harmonique 3, l'harmonique 4.
Pour ce faire il faut multiplier la valeur de la fréquence au début par 2 ou 3 ou 4 suivant l'harmonique souhaiter.
Pouvez vous m'aider... MERCI D'AVANCE
 
T

thuan

Guest
voici les ligne de commande que je rentre mais cela ne marche pas

With TextBox1
Select Case .TextBox1.Value
Case .TextBox2.Value: .TextBox2.Caption = TextBox1.Value * 2
Case .TextBox3.Value: .TextBox3.Caption = TextBox1.Value * 3
Case .TextBox4.Value: .TextBox4.Caption = TextBox1.Value * 4
End Select
End With
 
A

Arnaud

Guest
Select Case TextBox1.Value
Case TextBox2.Value: TextBox2.Value = Int(TextBox1.Value) * 2
Case TextBox3.Value: TextBox3.Value = Int(TextBox1.Value) * 3
Case TextBox4.Value: TextBox4.Value = Int(TextBox1.Value) * 4
End Select
 
T

thuan

Guest
oki mais la tu vois je rentre donc ton code dans mon programme qui est:

Private Sub UserForm_Initialize()
Dim i As Integer
i = 33
With ComboBox1
.AddItem Sheets("Moteur Porte Meule").Range("C" & i)
.AddItem Sheets("Moteur Porte Pièce").Range("C" & i)
.AddItem Sheets("Moteur de Taillage").Range("C" & i)
.AddItem Sheets("Broche Porte Meule").Range("C" & i)
.AddItem Sheets("Broche Porte Pièce").Range("C" & i)
.AddItem Sheets("Ensemble Bloc Renvoi").Range("C" & i)
.AddItem Sheets("Bloc Serrage").Range("C" & i)
.AddItem Sheets("Palier Intermédiaire Taillage").Range("C" & i)
.AddItem Sheets("Porte Molette Taillage").Range("C" & i)
End With
With TextBox1
Select Case TextBox1.Value
Case TextBox2.Value: TextBox2.Value = Int(TextBox1.Value) * 2
Case TextBox3.Value: TextBox3.Value = Int(TextBox1.Value) * 3
Case TextBox4.Value: TextBox4.Value = Int(TextBox1.Value) * 4
End Select
End With
End Sub

Quand je lance la USF j ai un message d'erreur il me met:
Erreur d'excécution '13' : Incompatibilité de type
 
T

thuan

Guest
oki j ai rentré ca comme code alors:

Private Sub UserForm_Initialize()
Dim i As Integer
i = 33
With ComboBox1
.AddItem Sheets("Moteur Porte Meule").Range("C" & i)
.AddItem Sheets("Moteur Porte Pièce").Range("C" & i)
.AddItem Sheets("Moteur de Taillage").Range("C" & i)
.AddItem Sheets("Broche Porte Meule").Range("C" & i)
.AddItem Sheets("Broche Porte Pièce").Range("C" & i)
.AddItem Sheets("Ensemble Bloc Renvoi").Range("C" & i)
.AddItem Sheets("Bloc Serrage").Range("C" & i)
.AddItem Sheets("Palier Intermédiaire Taillage").Range("C" & i)
.AddItem Sheets("Porte Molette Taillage").Range("C" & i)
End With
Select Case TextBox1.Value
Case TextBox2.Value: TextBox2.Value = Int(TextBox1.Value) * 2
Case TextBox3.Value: TextBox3.Value = Int(TextBox1.Value) * 3
Case TextBox4.Value: TextBox4.Value = Int(TextBox1.Value) * 4
End Select
End Sub

Mais il me met le même message d'erreur
 
A

Arnaud

Guest
et bien c dur de dire sans voir les composant.

g vu que tu avais écris 'TextBox2.Caption' . le composant TextBox2 est un Label ?? si oui c normal que ça plante mon code.
vba te met normalement sur la ligne qui le gène donc ça devrai aider
 
T

thuan

Guest
Non je n'utilise pas de label ( sauf pour écrire des titres sur ma USF) j'ai bien que des textbox, voici tout mon code en entier tu verra ce qui est déclaré:

Private Sub ComboBox1_Change()
If ComboBox1.ListIndex <> -1 Then Worksheets(ComboBox1.ListIndex + 1).Activate
End Sub
Private Sub CommandButton1_Click()
WSCol.Activate
Unload UserForm1
End Sub
Private Sub TextBox1_Change()

End Sub
Private Sub TextBox2_Change()

End Sub
Private Sub TextBox3_Change()

End Sub
Private Sub TextBox4_Change()

End Sub

Private Sub UserForm_Initialize()
Dim i As Integer
i = 33
With ComboBox1
.AddItem Sheets("Moteur Porte Meule").Range("C" & i)
.AddItem Sheets("Moteur Porte Pièce").Range("C" & i)
.AddItem Sheets("Moteur de Taillage").Range("C" & i)
.AddItem Sheets("Broche Porte Meule").Range("C" & i)
.AddItem Sheets("Broche Porte Pièce").Range("C" & i)
.AddItem Sheets("Ensemble Bloc Renvoi").Range("C" & i)
.AddItem Sheets("Bloc Serrage").Range("C" & i)
.AddItem Sheets("Palier Intermédiaire Taillage").Range("C" & i)
.AddItem Sheets("Porte Molette Taillage").Range("C" & i)
End With
Select Case TextBox1.Value
Case TextBox2.Value: TextBox2.Value = Int(TextBox1.Value) * 2
Case TextBox3.Value: TextBox3.Value = Int(TextBox1.Value) * 3
Case TextBox4.Value: TextBox4.Value = Int(TextBox1.Value) * 4
End Select
End Sub
Private Sub CommandButton2_Click()
WSCol.Activate
End Sub
 
T

thuan

Guest
Alors je te join un exemple simplifié ( pour que ca ne soit pas trop lourd à télécharger) de ce que je voudrai faire
 

Pièces jointes

  • Classeur1.zip
    6.6 KB · Affichages: 36
  • Classeur1.zip
    6.6 KB · Affichages: 37
  • Classeur1.zip
    6.6 KB · Affichages: 33
A

Arnaud

Guest
Select Case TextBox1.Value
Case TextBox2.Value:
If IsNumeric(TextBox1.Value) Then TextBox2.Value = Int(TextBox1.Value) * 2
Case TextBox3.Value:
If IsNumeric(TextBox1.Value) Then TextBox3.Value = Int(TextBox1.Value) * 3
Case TextBox4.Value:
If IsNumeric(TextBox1.Value) Then TextBox4.Value = Int(TextBox1.Value) * 4
End Select
 
@

@+Thierry

Guest
Bonjour Thuan, Arnaud, Sebb, Le Forum

Moi, sans voir ton fichier, je pense qu'il y a tout simplement erreur dans l'évènement choisi !

UserForm_Initialize, ne peut être utilisé pour cette partie de Select Case, vu qu'à l'initialise ces TextBox sont Vides !!

Vous devriez essayer l'évènement TextBox1_Change()...

Bon Aprèm
@+Thierry
 
T

thuan

Guest
salut thierry, sebb, arnaud, le forum

Thierry j'ai pas compris ce que tu voulais que je fasse, mes textbox sont dégà en TextBox1_Change(), qud je les défini.
Peux tu jetter un coup d oeil sur mon code stp merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…