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

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
Cette première étape fonctionne très bien

Ensuite j'effectue mes modifications dans les différents textbox et je veux les reporter dans le tableau "Tarifs" :

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
Et là est mon problème
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