Bonjour,
Débutant en VBA, j'ai testé de créer un premier fichier pour faire des devis, des factures etc... A force de bidouiller, plus rien ne marchait, plantage à chaque fois. Donc, j'ai trouvé un cours que j'ai lu très attentivement. Je suis ensuite reparti d'une page blanche.
Alors mon problème qui fonctionne apparemment sur d'autres classeurs (vidéo à l'appui sur YouTube):
Je suis dans USF "Tarifs":
- Je sélectionne via ComboBox1 le tarif que je souhaite modifier et remplit tous les textbox de l'USF
Cette première étape fonctionne très bien
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 Private Sub ComboBox1_Change() 'Sélection du tarif à modifier Dim T As Control Dim a As Integer, Ta As Worksheet Set Ta = ThisWorkbook.Sheets("Tarif") a = Ta.Range("Tarifs").Cells.Find(Me.ComboBox1, lookat:=xlWhole).Row 'Affiche les textbox, labels etc... For Each T In Me.Controls If TypeOf T Is MSForms.textbox Or TypeOf T Is MSForms.Label Then T.Visible = True End If Next T CommandButton2.Visible = True CommandButton4.Visible = False 'On remplit les textbox TextBoxID = Ta.Range("A" & a) TextBox1 = Ta.Range("B" & a) TextBox2 = Ta.Range("C" & a) TextBox3 = Ta.Range("D" & a) ComboBox1.Visible = False TextBox1.SetFocus Set Ta = Nothing End Sub
Ensuite j'effectue mes modifications dans les différents textbox et je veux les reporter dans le tableau "Tarifs" :
Et là est mon problème
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 Dim a As Integer, Ta As Worksheet Set Ta = ThisWorkbook.Sheets("Tarif") a = Ta.Range("Tarifs").Cells.Find(Me.ComboBox1.Text, lookat:=xlWhole).Row 'recherche rang dans tableau "Tarif" Ta.Cells(a, 2) = TextBox1.Value Ta.Cells(a, 3) = TextBox2.Value Ta.Cells(a, 4) = TextBox3.Value Set Ta = Nothing End Sub
seul le textbox1 change. Le 2 et 3 restent inchangés
Si j'inverse les ligne textbox1 avec textbox3 alors c'est textbox3 qui change correctement
Deux questions:
- Pourquoi?
- Un petit coup de main peut être ?
Merci d'avance
Partager