charette36
XLDnaute Nouveau
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 ( et d'autre fonctionnalité ici pas importante). 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...
APrès de multiples recherche sur internet, je ne trouve pas la solution..
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
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 ( et d'autre fonctionnalité ici pas importante). 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...
APrès de multiples recherche sur internet, je ne trouve pas la solution..
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