Impossible déposer données saisies dans feuille Excel.

FOUQUET Yves

XLDnaute Occasionnel
Bonjour,

J'essaye de saisir une ligne de données dans un Userform pour la déposer dans une ligne de ma feuille Excel 'Feuil2'.
J'ai déjà franchi plein d'obstacle avec les Combobox mais si cela fonctionne apparemment normalement (sans planter), je n'arrive pas à enregistrer mes données dans la feuille Excel en fin de saisie (Bouton ajouter la ligne). Cela a marché un temps mais plus maintenant.
Quand l'Userform s'affiche pour la saisie c'est une autre feuille du tableur qui se positionne en fond! Les données vont s'inscrire en partie dans cette feuille là. "Aides3"
Voilà mon code (d'amateur).

'Module d'ajout d'une ligne Bouton Nouvelle ligne COmmandButton3
Private Sub CommandButton3_Click()
'Controler si le montant a été saisi
If Controls("Textbox5") = "" Then
MsgBox "Vous devez ABSOLUMENT indiquer un montant !", vbExclamation, "ERREUR"
Controls("Textbox5").SetFocus
End If

Dim L As Integer

If MsgBox("Etes-vous certain de vouloir INSERER cette nouvelle ligne comptable ?", vbYesNo, "Demande de confirmation") = vbYes Then
'condition : si oui au message

L = Sheets("Feuil2").Range("a65536").End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE
Range("A" & L).Value = CDate(TextBox1) 'Insère la donnée de la textbox1 dans la colonne A comme une date
Range("B" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne B
Range("D" & L).Value = ComboBox2
Range("E" & L) = ValeurTBx(TextBox5) 'Insére la donnée formatée monétaire dans la colonne E
Range("H" & L).Value = ComboBox3
Range("I" & L).Value = TextBox2
Range("J" & L).Value = TextBox3
Range("K" & L).Value = TextBox4
Range("F" & L).Value = "," ' Colonne de pointage avec relevé banque, passe à "," par défaut
End If


' Affiche une boîte de message
MsgBox ("Ligne insérée dans le tableau") 'Vous informant que la ligne est insérée dans votre tableau Excel.

Unload Me ' Vide et ferme l'Userform ( formulaire)
UserForm1.Show 'Affiche le formulaire
End Sub

J'implore votre indulgence... lol
Merci de votre aide
Yves
 

Staple1600

XLDnaute Barbatruc
Bonsoir le fil, Yves

[Yves] (Bienvenue sur le forum]

Ainsi modifié, ton code devrait mieux fonctionner ;)
VB:
Private Sub CommandButton3_Click()
Dim L As Long
'Module d'ajout d'une ligne Bouton Nouvelle ligne COmmandButton3
'Controler si le montant a été saisi
If Controls("Textbox5") = "" Then
MsgBox "Vous devez ABSOLUMENT indiquer un montant !", vbExclamation, "ERREUR"
Controls("Textbox5").SetFocus
End If
If MsgBox("Etes-vous certain de vouloir INSERER cette nouvelle ligne comptable ?", vbYesNo, "Demande de confirmation") = vbYes Then
'condition : si oui au message
With Sheets("Feuil2")
L = .Range("a65536").End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE
.Range("A" & L).Value = CDate(TextBox1) 'Insère la donnée de la textbox1 dans la colonne A comme une date
.Range("B" & L).Value = ComboBox1 'Insère la donnée de la liste déroulante dans la colonne B
.Range("D" & L).Value = ComboBox2
.Range("E" & L) = ValeurTBx(TextBox5) 'Insére la donnée formatée monétaire dans la colonne E
.Range("H" & L).Value = ComboBox3
.Range("I" & L).Value = TextBox2
.Range("J" & L).Value = TextBox3
.Range("K" & L).Value = TextBox4
.Range("F" & L).Value = "," ' Colonne de pointage avec relevé banque, passe à "," par défaut
End With
End If
' Affiche une boîte de message
MsgBox ("Ligne insérée dans le tableau") 'Vous informant que la ligne est insérée dans votre tableau Excel.
Unload Me ' Vide et ferme l'Userform ( formulaire)
UserForm1.Show 'Affiche le formulaire
End Sub
 

FOUQUET Yves

XLDnaute Occasionnel
Yess!!!! Ca marche!
Un grand merci.
Dans mes combobox j'ai des listes assez longue. J'ai trouvé comme éviter les blans mais je voudrai pouvoir utiliser la molette pour descendre ou monter mes listes.
Je n'ai pas trouer de solution ni dans les paramètres de ComboBox, ni dans la programmation.
Voilà ce que j'ai écrit pour l'instant mais ce serait plus pratique si la molette marchait...

'Affecte la liste à la Combobox2 NATURE en évitant les lignes vides
Dim Dlig2 As Long 'déclare la variable Dlig2 (Ligne de Fin)
Dim Cel2 As Variant
Sheets("Aides3").Select
Dlig2 = Range("C65536").End(xlUp).Row 'définit la variable Dlig2
ComboBox2.Clear 'vide la ComboBox2
'remplit la ComboBox2
For Each Cel2 In Range("C2:C" & Dlig2) 'boucle sur toutes les cellule de C2 à C_Dlig2
'condition : si la cellule n'est pas vide ajoute son contenu à la ComboBox2

If Cel2.Value <> " " Then ComboBox2.AddItem Cel2.Value
Next Cel2 'prochaine cellule

Pardon si j'abuse et Merci encore.
 

Staple1600

XLDnaute Barbatruc
Re

Pour la molette, voir ici (entre autres fils*)

*: pour d'autres exemples (voir ici)
Comme le conseille la charte du forum, que tu as lue naturellement ;)
 

Statistiques des forums

Discussions
311 725
Messages
2 081 947
Membres
101 849
dernier inscrit
florentMIG