Intégrer les informations d'un forulaire dans mon fichier excel

Résolu/Fermé
ElHamanecer Messages postés 16 Date d'inscription mardi 11 avril 2017 Statut Membre Dernière intervention 26 avril 2017 - 19 avril 2017 à 15:00
 ElHamanecer - 20 avril 2017 à 18:56
Bonjour,

Je me lance dans la création d'un petit logiciel pour mon entreprise.

Le concept :

Créer une page d'accueil avec 4 boutons :

- Nouveau Client ( Qui me dirige vers un formulaire)
- Rendez-vous
- Planning
- Facturation

Aujourd'hui, j'attaque la première parti, le formulaire (Nouveau Client). Celui ci est déjà terminé. Cependant, je rencontre un problème lors de la validation de l'inscription dans la base de donné, je n'arrive pas, après validation, à envoyer les informations inscris sur le formulaire dans la base de donné (Cliens) de mon fichier Excel.


FICHIER CLIENT
n

CODE


'Pour Le Formulaire
Dim Ws As Worksheet



'Civilité
'***********************************************************************************************

Private Sub userform_initialize()

ComboBox1.ColumnCount = 1
ComboBox1.List() = Array("", "M.", "Mme.", "Mlle.")
Set Ws = Sheets("Clients") 'Correspond au nom de l'onglet excel


End Sub

'***********************************************************************************************



'Pour le Bouton Nouveau client

Private Sub CommandButton1_Click()

Dim L As Integer
If MsgBox("Confirmez-vous l'inscription de ce nouveau client ?", vbYesNo, "Demande de confimation d'ajout") = vbYes Then
L = Sheets("Clients").Range("A" & Rows.Count).End(xlUp).Row + 1 'Pour enregistrer les informations clients sur la dernière ligne
Range("A" & L).Value = ComboBox1
Range("B" & L).Value = txtnom
Range("C" & L).Value = txtprenom
Range("D" & L).Value = txtrace
Range("E" & L).Value = txtcp
Range("F" & L).Value = txtmail

Dim J As Long
Dim I As Integer

ComboBox1.Clear
Set Ws = Sheets("Clients")
With Me.ComboBox1

For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("A" & J)
Next J

End With

Else
'Rien

End If


End Sub


'Pour Quitter

Private Sub CommandButton2_Click()

Unload Me


End Sub
A voir également:

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
19 avril 2017 à 16:40
Bonjour ElHamanecer, bonjour le forum,

Le problème avec les Tableaux (ListObject) c'est que quand tu veux écrire sur la première ligne vide et que tu pars de la fin ça écrit dans la première ligne vide après le tableau. Il te faut changer la manière d'obtenir la première ligne vide du tableau. D'abord, vérifie s'il n'y a pas de données à la fin de ton tableau. puis remplace le code :

 L = Sheets("Clients").Range("A" & Rows.Count).End(xlUp).Row + 1

par :
 L = IIf(Ws.Range("A2").Value = "", 2, Ws.Range("A1").End(xlDown).Row + 1)


Il serait aussi bien que tu rajoutes Ws. devant pour éviter que les données ne soient renvoyées dans un autre onglet :
 ws.Range("A" & L).Value = ComboBox1
    ws.Range("B" & L).Value = txtnom
    ws.Range("C" & L).Value = txtprenom
    ws.Range("D" & L).Value = txtrace
    ws.Range("E" & L).Value = txtcp
    ws.Range("F" & L).Value = txtmail


Dans le code du Click sur le CommandButton1, supprime la ligne :
Set Ws = Sheets("Clients")

Tu as déjà définis la variable Ws à l'initialisation de l'UserForm. Ce doublon est inutile d'autant plus que tu as déclarée cette variable au niveau module, en première ligne. Donc elle garde sa portée tant que l'UserForm est ouvert...

2
Merci pour ta réponse !
ça fonctionne très bien avec tes modifications !


Merci vraiment beaucoup je vais pouvoir avancer sur mon projet !
Je ne m'y connais absolument pas dans ce domaine. Je fais ce logiciel pour me facilité la vie avec mes rendez-vous et mes rentré d'argent.

Merci vraiment !
0