UserForm

jebibo

XLDnaute Occasionnel
Bonjour à tous,
Je sollicite votre aide afin de m'aider dans le VBA je suis débutant.

j'ai crée un formulaire avec des menus déroulant (l'information se retrouve dans l'onglet 200)
je dois saisir les données dans chacune des texteBox et combobox et lorsque je complète avec l'enregistrement, l'information dois aller s'insérer dans l'onglet 100 à la ligne 5 et ainsi du suite pour chacune des enregistrement suivant.

à l'occasion je dois revenir compléter des donner sur une fiche enregistrer afin de corriger et de compléter les informations manquantes lors de la création.
le critère de recherche sera la no de contrat et la base de données dans l'onglet 100.

J'aimerai avoir un début de solution pour crée mes listes déroulante et savoir comment faire pour la recherche dans le userform

Je vous remercie à l'avance de votre aide.
 

Pièces jointes

  • MASTER_LOG_DE_VENTE.xlsm
    49.2 KB · Affichages: 44

cp4

XLDnaute Barbatruc
Bonjour,
Ligne vide.JPG
 
Dernière édition:

cp4

XLDnaute Barbatruc
Pas de réponse, j'ai supprimé la ligne auquel cas tu dois adapter le numéro de ligne dans le code au lieu de 5 mettre 6.
un essai à tester. Mettre le code dans L'userform.
VB:
Option Explicit
Dim NbVendeur As Integer, Vendeur, Facturation, Succursale, Log, MoisFact, Categorie, Paye, Maison, Garant1, Garant2, Statut

Private Sub CommandButton3_Click()
   Dim i As Long, dl As Long
   dl = Sheets("100").Range("A" & Rows.Count).End(xlUp).Row + 1
 
   If Me.TextBox_NO_CONTRAT = "" Then
   MsgBox "Veuillez saisir le numéro de contrat!", vbCritical, "ENREGISTREMENT DONNEES"
   Exit Sub
   End If
 
   With Sheets("100")
   On Error Resume Next
      .Cells(dl, 1) = Me.TextBox_NO_CONTRAT
      If IsDate(Me.TextBox_DATE_CONTRAT) Then .Cells(dl, 2) = CDate(Me.TextBox_DATE_CONTRAT)
    
      .Cells(dl, 3) = Me.ComboBoxMOIS_FACTURATION
      .Cells(dl, 4) = Me.TextBox_NO_TAG
      .Cells(dl, 5) = Me.ComboBox_LOG
      .Cells(dl, 6) = Me.ComboBox_SUCCURSALE
      .Cells(dl, 7) = Me.ComboBox_CATÉGORIE
      .Cells(dl, 8) = Me.ComboBox_STATUT

      .Cells(dl, 9) = Me.ComboBox_PAYE
      .Cells(dl, 10) = Me.ComboBox_MAISON
      .Cells(dl, 11) = Me.TextBoxN_NOM_CLIENT
      .Cells(dl, 12) = Me.TextBox_MARQUE
      .Cells(dl, 13) = Me.TextBox_MODELE
      .Cells(dl, 14) = Me.TextBoxNO_SERIE
      .Cells(dl, 15) = Me.TextBox_VENDANT
      .Cells(dl, 16) = Me.TextBox_COUTANT

      .Cells(dl, 17) = Me.TextBox9
      .Cells(dl, 18) = Me.TextBox10
      .Cells(dl, 19) = Me.TextBox11
      .Cells(dl, 20) = Me.ComboBox_VENDEUR
      .Cells(dl, 21) = Me.ComboBox_GERANT_1
      .Cells(dl, 22) = Me.ComboBoxGERANT_2
      .Cells(dl, 23) = Me.TextBox_COMMISSION
      .Cells(dl, 24) = Me.TextBox_COMMISSIONS_TAUX
   End With
MsgBox "Données enregistrées!", vbInformation, "ENREGISTREMENT DONNEES"
End Sub

Private Sub UserForm_Initialize()
   Dim n As Integer
   Vendeur = Sheets("200").Range("B5:B" & Sheets("200").[B65000].End(xlUp).Row).Value
   Me.ComboBox_VENDEUR.List = Vendeur

   Succursale = Sheets("200").Range("D5:D" & Sheets("200").[D65000].End(xlUp).Row).Value
   Me.ComboBox_SUCCURSALE.List = Succursale

   Log = Sheets("200").Range("i5:i" & Sheets("200").[i65000].End(xlUp).Row).Value
   Me.ComboBox_LOG.List = Log

   MoisFact = Sheets("200").Range("f5:f" & Sheets("200").[f65000].End(xlUp).Row).Value
   Me.ComboBoxMOIS_FACTURATION.List = MoisFact

   Categorie = Sheets("200").Range("e5:e" & Sheets("200").[e65000].End(xlUp).Row).Value
   Me.ComboBox_CATÉGORIE.List = Categorie

   Paye = Sheets("200").Range("h5:h" & Sheets("200").[h65000].End(xlUp).Row).Value
   Me.ComboBox_PAYE.List = Paye

   Maison = Sheets("200").Range("g5:g" & Sheets("200").[g65000].End(xlUp).Row).Value
   Me.ComboBox_MAISON.List = Maison

   Garant1 = Sheets("200").Range("c5:c" & Sheets("200").[c65000].End(xlUp).Row).Value
   Me.ComboBox_GERANT_1.List = Garant1
 
   Statut = Sheets("200").Range("L5:L" & Sheets("200").[L65000].End(xlUp).Row).Value
   Me.ComboBox_GERANT_1.List = Statut

   Me.ComboBoxGERANT_2 = "pas de source" 'à partir d'où faut-il extraire les données
   'Stop
End Sub

Private Sub CommandButton2_Click()
   Unload Me
End Sub
 

jebibo

XLDnaute Occasionnel
Pas de réponse, j'ai supprimé la ligne auquel cas tu dois adapter le numéro de ligne dans le code au lieu de 5 mettre 6.
un essai à tester. Mettre le code dans L'userform.
VB:
Option Explicit
Dim NbVendeur As Integer, Vendeur, Facturation, Succursale, Log, MoisFact, Categorie, Paye, Maison, Garant1, Garant2, Statut

Private Sub CommandButton3_Click()
   Dim i As Long, dl As Long
   dl = Sheets("100").Range("A" & Rows.Count).End(xlUp).Row + 1

   If Me.TextBox_NO_CONTRAT = "" Then
   MsgBox "Veuillez saisir le numéro de contrat!", vbCritical, "ENREGISTREMENT DONNEES"
   Exit Sub
   End If

   With Sheets("100")
   On Error Resume Next
      .Cells(dl, 1) = Me.TextBox_NO_CONTRAT
      If IsDate(Me.TextBox_DATE_CONTRAT) Then .Cells(dl, 2) = CDate(Me.TextBox_DATE_CONTRAT)
   
      .Cells(dl, 3) = Me.ComboBoxMOIS_FACTURATION
      .Cells(dl, 4) = Me.TextBox_NO_TAG
      .Cells(dl, 5) = Me.ComboBox_LOG
      .Cells(dl, 6) = Me.ComboBox_SUCCURSALE
      .Cells(dl, 7) = Me.ComboBox_CATÉGORIE
      .Cells(dl, 8) = Me.ComboBox_STATUT

      .Cells(dl, 9) = Me.ComboBox_PAYE
      .Cells(dl, 10) = Me.ComboBox_MAISON
      .Cells(dl, 11) = Me.TextBoxN_NOM_CLIENT
      .Cells(dl, 12) = Me.TextBox_MARQUE
      .Cells(dl, 13) = Me.TextBox_MODELE
      .Cells(dl, 14) = Me.TextBoxNO_SERIE
      .Cells(dl, 15) = Me.TextBox_VENDANT
      .Cells(dl, 16) = Me.TextBox_COUTANT

      .Cells(dl, 17) = Me.TextBox9
      .Cells(dl, 18) = Me.TextBox10
      .Cells(dl, 19) = Me.TextBox11
      .Cells(dl, 20) = Me.ComboBox_VENDEUR
      .Cells(dl, 21) = Me.ComboBox_GERANT_1
      .Cells(dl, 22) = Me.ComboBoxGERANT_2
      .Cells(dl, 23) = Me.TextBox_COMMISSION
      .Cells(dl, 24) = Me.TextBox_COMMISSIONS_TAUX
   End With
MsgBox "Données enregistrées!", vbInformation, "ENREGISTREMENT DONNEES"
End Sub

Private Sub UserForm_Initialize()
   Dim n As Integer
   Vendeur = Sheets("200").Range("B5:B" & Sheets("200").[B65000].End(xlUp).Row).Value
   Me.ComboBox_VENDEUR.List = Vendeur

   Succursale = Sheets("200").Range("D5:D" & Sheets("200").[D65000].End(xlUp).Row).Value
   Me.ComboBox_SUCCURSALE.List = Succursale

   Log = Sheets("200").Range("i5:i" & Sheets("200").[i65000].End(xlUp).Row).Value
   Me.ComboBox_LOG.List = Log

   MoisFact = Sheets("200").Range("f5:f" & Sheets("200").[f65000].End(xlUp).Row).Value
   Me.ComboBoxMOIS_FACTURATION.List = MoisFact

   Categorie = Sheets("200").Range("e5:e" & Sheets("200").[e65000].End(xlUp).Row).Value
   Me.ComboBox_CATÉGORIE.List = Categorie

   Paye = Sheets("200").Range("h5:h" & Sheets("200").[h65000].End(xlUp).Row).Value
   Me.ComboBox_PAYE.List = Paye

   Maison = Sheets("200").Range("g5:g" & Sheets("200").[g65000].End(xlUp).Row).Value
   Me.ComboBox_MAISON.List = Maison

   Garant1 = Sheets("200").Range("c5:c" & Sheets("200").[c65000].End(xlUp).Row).Value
   Me.ComboBox_GERANT_1.List = Garant1

   Statut = Sheets("200").Range("L5:L" & Sheets("200").[L65000].End(xlUp).Row).Value
   Me.ComboBox_GERANT_1.List = Statut

   Me.ComboBoxGERANT_2 = "pas de source" 'à partir d'où faut-il extraire les données
   'Stop
End Sub

Private Sub CommandButton2_Click()
   Unload Me
End Sub

Merci CP4
Je vais essayer le code et vous revenir si j'ai d'autre questions.
Je vous remercie infiniment d'avoir regarder mon dossier.
Passé une belle journée.
 

jebibo

XLDnaute Occasionnel
Re-Bonjour
J'ai créé un user form pour la saisie, cependant je dois a partir du No de contrat chercher les données de la fiche onglet 100 et apporter mes correction et enregistrer à nouveau.
j'ai de la difficulté à trouver le code.
Également mon autres interrogations, Est-ce possible que la saisie sois en majuscule en tout temps Et comment mettre la date du contrat en format date.
Merci à l'avance de votre aide, grandement apprécier.
Bonne journée à vous!
 

Pièces jointes

  • MASTER_LOG_DE_VENTE.xlsm
    125.5 KB · Affichages: 25

cp4

XLDnaute Barbatruc
Re-Bonjour
J'ai créé un user form pour la saisie, cependant je dois a partir du No de contrat chercher les données de la fiche onglet 100 et apporter mes correction et enregistrer à nouveau.
Bonsoir,
Tu aurais dû mettre une combobox pour lister tous tes numéros de contrat. C'est plus pratique que de saisir un numéro qui n'existe peut-être pas sur ta feuille. Mais tu peux garder la textbox.
j'ai de la difficulté à trouver le code.
Également mon autres interrogations, Est-ce possible que la saisie sois en majuscule en tout temps Et comment mettre la date du contrat en format date.
Je commence par la date, elle est au format date.
Pour les majuscules, mets ce code pour toutes les textboxs
VB:
Private Sub TextBox_NO_CONTRAT_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Dans l'éditeur de code Voir image
VBE.jpg

Bonne soirée
 

jebibo

XLDnaute Occasionnel
Bonsoir,
Tu aurais dû mettre une combobox pour lister tous tes numéros de contrat. C'est plus pratique que de saisir un numéro qui n'existe peut-être pas sur ta feuille. Mais tu peux garder la textbox.
Je commence par la date, elle est au format date.
Pour les majuscules, mets ce code pour toutes les textboxs
VB:
Private Sub TextBox_NO_CONTRAT_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  KeyAscii = Asc(UCase(Chr(KeyAscii)))
End Sub
Dans l'éditeur de code Voir image
Regarde la pièce jointe 1022282

Bonne soirée
 

Pièces jointes

  • MASTER_LOG_DE_VENTE.xlsm
    62.8 KB · Affichages: 17

jebibo

XLDnaute Occasionnel
Bonsoir cp4
Je te remercie de ton aide, j'ai inséré le code pour les majuscules dans les texbox toute fonctionne parfaitement.
Cependant lorsque je veux saisir le no de contrat et remodifier mes saisies cela ne me ramène pas mes données de l'onglet 100.
Je suis débutant dans le vba surement qu'il y a quelques chose que je ne comprend pas.
Si tu as quelques minutes encore pour m'indiquer mon problème j'apprécierai beaucoup.
je joint mon fichier.
Merci et bonne soirée
 

Pièces jointes

  • MASTER_LOG_DE_VENTE.xlsm
    62.8 KB · Affichages: 17

cp4

XLDnaute Barbatruc
Bonjour,

En effectuant quelques recherches, j'ai trouvé pas mal de codes concernant ton fichier.
J'ai ajouté 2 boutons pour faire simple. à toi de voir si ça te conviens.
En cliquant sur le bouton Rechercher, si le n° n'est pas trouvé les champs sont vidés.
En cliquant, sur le bouton Enregistrement. Si c'est un nouveau n° de contrant les données sont ajoutées
à la fin de la feuilles. Par contre, si le contrat existe les données de celui-ci seront modifiées.

nb:saisir la date sans mettre les slashs ("/"), ils se mettent par code.

Bon dimanche.
 

Pièces jointes

  • Copie de MASTER_LOG_DE_VENTE.xlsm
    131.2 KB · Affichages: 26

jebibo

XLDnaute Occasionnel
Bon Dimanche cp4
Tout fonctionne comme je l'espérai, je vais faire des entrer de données dans mon formulaire pour voir si il n'y a pas des choses que je devrait corriger.
Je vais te revenir,
Je te remercie cp4 de ton aide je te trouve très fort en Vba. Tu fais ma journée!
Au plaisir.
 

jebibo

XLDnaute Occasionnel
Bonjour,
j'ai crée mon formulaire cependant quand je click sur le bouton recherche le format de la dernière ligne (Vendant,Coutant,Location,Échange et échange réel)je voudrais que ma recherche sois au format $

Pour la saisie ça fonctionne mais pas lors de la recherche.

Merci de votre aide à l'avance

Au plasir
 

Pièces jointes

  • MASTER_LOG_DE_VENTEv2.xlsm
    115.5 KB · Affichages: 24

jebibo

XLDnaute Occasionnel
Bonjour cp4
Désolé si je n'es pas été clair, voila mon problème. Lorsque que j'appelle mon userform je saisie un no de contrat si il n'excite pas dans la base de donnée onglet 100 il me demande de la crée donc je dit oui. La saisie de la dernière ranger elle est saisie en monétaire jusque la tout vas.
Lorsque que je rappelle le même no de contrat les données reste en nombre seulement.
Je voudrais qu'ils soient en monétaire.
j'imagine que c'est possible mais je n'arrive pas à inséré mon code de la bonne façon
Est-ce que tu peux m'aider stp.

Lors du rappelle comme celle-ci elle n'est pas en monétaire
upload_2018-12-27_7-59-25.png


Saisie comme celle ci toute est parfait
upload_2018-12-27_8-0-31.png

Merci à l'avance.
 

Discussions similaires

Réponses
8
Affichages
376
Réponses
2
Affichages
312
Réponses
18
Affichages
620

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16