Format de cellule incorrect après modification via questionnaire
Bonjour,
J'ai un tableau avec différentes valeurs à l'intérieur des cellules. Un autre tableau réalise des calculs entre les cellules précédantes.
J'ai créer un formulaire qui me permet de modifier la valeur des cellules de mon premier tableau. Sauf que lorsque j'effectue ces modifications en appliquant ma maccro, la valeur de la cellule est bien modifier selon mon formulaire mais son format n'est pas le bon : en effet, la valeur du chiffre est sous format texte dans la cellule. De ce fait, les calculs dans mon dernier tableau ne s'effectue pas...
Mon code est le suivant :
'Pour le formulaire
Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer
Set Ws = Sheets("ARG2019") 'Correspond au nom de votre onglet dans le fichier Excel
With Me.ComboBox1
For J = 8 To Ws.Range("A" & Rows.Count).End(xlUp).Row 'J=3 permet de selectionner num rue 1
.AddItem Ws.Range("A" & J)
Next J
End With
For I = 1 To 6
Me.Controls("TextBox" & I).Visible = True
Next I
End Sub
'Pour la liste déroulante numero de rue
Private Sub ComboBox1_Change()
Dim Ligne As Long
Dim I As Integer
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 8 'Agir ici pour gérer le décalage
For I = 1 To 6
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 1)
Next I
End Sub
Private Sub CommandButton1_Click()
Dim L As Integer
If MsgBox("Confirmez-vous l'insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d'ajout") = vbYes Then
L = Sheets("ARG2019").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
Range("A" & L).Value = ComboBox1
Range("B" & L).Value = TextBox1
Range("C" & L).Value = TextBox2
Range("D" & L).Value = TextBox3
Range("E" & L).Value = TextBox4
Range("F" & L).Value = TextBox5
Range("G" & L).Value = TextBox6
End If
End Sub
'Pour le bouton Modifier
Private Sub CommandButton2_Click()
Dim Ligne As Long
Dim I As Integer
If MsgBox("Confirmez-vous la modification de ces données ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 8
For I = 1 To 6
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I)
End If
Next I
End If
End Sub
'Pour le bouton Quitter
Private Sub CommandButton3_Click()
Unload Me
End Sub
Merci de votre aide,
CDT clement
Bonjour,
Les données contenues dans les textbox et combobox sont des chaines de caractères et non des numériques.
Utiliser les fonctions de convertion Val, CInt, CDbl .... qui conviennent au type de donnée souhaité
par exemple
Range("B" & L).Value = CDbl(TextBox1.value)A+
Merci pour cette réponse,
J'ai procédé comme ceci : Range("D" & 10).Value = TextBox3 * 1
Cependant, cela fonctionne que pour la cellule D-10.. Comment faire pour faire ceci pour une centaine de cellule? Merci de votre aide
Clément
ça dépend !!! de la configuration, du nom des textbox, de l'ordre des cellules ....
si ça se présente comme ceci
Range("B" & L).Value = TextBox1
Range("C" & L).Value = TextBox2
Range("D" & L).Value = TextBox3
Range("E" & L).Value = TextBox4
Range("F" & L).Value = TextBox5
Range("G" & L).Value = TextBox6
.../...la réponse est déjà (presque) présente dans le code du premier post:
For I = 1 To 6
If Me.Controls("TextBox" & I).Visible = True Then
Ws.Cells(Ligne, I + 1) = Me.Controls("TextBox" & I) * 1
End If
NextA+