Signaler

Intégrer les informations d'un forulaire dans mon fichier excel [Résolu]

Posez votre question ElHamanecer 16Messages postés mardi 11 avril 2017Date d'inscription 26 avril 2017 Dernière intervention - Dernière réponse le 20 avril 2017 à 18:56 par ElHamanecer
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
Utile
+2
plus moins
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...

Cette réponse vous a-t-elle aidé ?  
ElHamanecer- 20 avril 2017 à 18:56
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 !
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !