IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Userform avec textbox et combobox [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 128
    Points : 83
    Points
    83
    Par défaut Userform avec textbox et combobox
    Bonjour à tous,
    Je voudrais utiliser un userform pour saisir des informations destinées à un base de donnée d'enlèvement de commande.
    J'ai créé le userform et la procédure mais ça bloque au niveau du userform les données ne sont pas "exportées" dans la base de donnée. Je mets ci dessous les codes que j'ai écrit:
    Pour la procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Public Fl As Worksheet, Flcd As Worksheet, Flech As Worksheet
    Public nlig As Integer, lNx As Integer, col As Integer
    Public rancom As Range, randes As Integer
    Public satisf As Boolean
     
     
    Sub copieclient()
     
    Set Flcd = ThisWorkbook.Worksheets("CC2012")
    Set Fl = ThisWorkbook.Worksheets("facturation prévisionnelle")
    Set Flech = ThisWorkbook.Worksheets("Echéancier")
     
     
         Set rancom = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
     
    If Not rancom Is Nothing Then
    lNx = rancom.Row
     
       Fl.Activate
     
    Range("A1").Select
    If Range("A2").Value <> "" Then ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
          randes = ActiveCell.Row
          ActiveCell.Offset(0, 1).Value = Flcd.Cells(lNx, 8) 'Nom du client
          ActiveCell.Offset(0, 2).Value = rancom.Value       'Numéro de commande
          ActiveCell.Offset(0, 3).Value = Flcd.Cells(lNx, 9) ' Nom du chantier
          ActiveCell.Offset(0, 5).Value = "=TODAY()"         ' Nom du chantier
          Flcd.Cells(lNx, 1).Copy Fl.Cells(randes, 1)        ' Numéro de Devis
     
          U_Fact.Show
          If satisf = True Then
     Fl.Cells(randes, 7).Value = U_Fact.TextBox1.Value         'Numéro de Bon
     Fl.Cells(randes, 9).Value = U_Fact.CInt(TextBox2.Value)   'Numéro de palette
     Fl.Cells(randes, 10).Value = U_Fact.CInt(TextBox3.Value)  'Nombre de pierre
     Fl.Cells(randes, 8).Value = U_Fact.CByte(TextBox3.Value)  'Montant Hors taxe
     Fl.Cells(randes, 11).Value = U_Fact.CByte(TextBox5.Value) 'Versement
     Fl.Cells(randes, 12).Value = U_Fact.ComboBox1.Value        'Chèque ou espèce
     Fl.Cells(randes, 13).Value = U_Fact.ComboBox2.Value        'statut complete /partielle
     Fl.Cells(randes, 14).Value = U_Fact.ComboBox3.Value        'Vu par tel/mail/pers.
     End If
      If satisf = False Then
      U_Fact.Hide
      Flcd.Activate
     End If
     End If
    End Sub
    Pour le Userform appelé U_fact (il est composé de 5 text box et 3combobox et deux commandbutton Ok et annuler) :
    pour les boutons j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub B_Annul_Click()
    satisf = False
    Unload Me
    End Sub
     
    Private Sub B_OK_Click()
    If Not TextBox1 Is Nothing Then
    satisf = True
     
    End If
    Unload Me
    End Sub
    Pour les text box je n'ai rien écri et pour les combobox j'ai écrit ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem ComboBox1.Text
    End Sub
     
    Private Sub ComboBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If ComboBox2.ListIndex = -1 Then ComboBox2.AddItem ComboBox2.Text
    End Sub
     
    Private Sub ComboBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem ComboBox3.Text
    End Sub
    Bon j'imagine que c'est facile à résoudre mais vu que je ne suis pas un expert je m'en remets à vous.
    PS : J'ai essayé les tutos mais c'est pas évident d'adapter...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 128
    Points : 83
    Points
    83
    Par défaut j'ai pas dit les mots magiques
    Rebonjour forum,
    une âme charitable pourrait-elle m'expliquer comment je fais pour que les Textbox et les combobox de mon userform U_Fact soient envoyés dans la feuille Fl je n'y arrive pas je tourne autour du pot...N'y a-t-il pas un tuto qui ressemble à mon cas avec un useform, des texbox, combobox et commandbutton OK et Annuler pour valider l'envoi dans la base de donnée??

    Merci d'avance

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 128
    Points : 83
    Points
    83
    Par défaut je mets la réponse
    Bonjour forum je mets une solution à ce problème (que j'ai fini par trouver grâce aux tutos et à force de tourner autour du pot) pour ceux qui en auraient besoin :
    donc le code procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    Public Fl As Worksheet, Flcd As Worksheet, Flech As Worksheet
    Public nlig As Integer, lNx As Integer, col As Integer
    Public rancom As Range, randes As Integer
    Public satisf As Boolean, ligdebut As Integer, ligfin As Integer, lxnech As Integer
    Public cib1 As String, cib2 As String
    Public rcib1 As Range, rcib2 As Range
    Public valtb1 As String, valtb2 As String, valtb3 As String, valtb4 As String
    Public valtb5 As String, cbo1 As String, cbo2 As String, cbo3 As String
    Public celdevis As Integer, montplage As Range, celmont As Range, xlig As Integer
    Public ndevis As String, nclient As String, npalet As Integer, ndate As Date
    Public xndev As Integer, montantp As Byte
     
    Sub copieclient()
     
    Set Flcd = ThisWorkbook.Worksheets("CC2012")
    Set Fl = ThisWorkbook.Worksheets("facturation prévisionnelle")
    Set Flech = ThisWorkbook.Worksheets("Echéancier")
     
     
         Set rancom = Application.InputBox("Sélectionnez une plage !", "Sélection de cellules", Type:=8)
     
    If Not rancom Is Nothing Then
    lNx = rancom.Row
     
       Fl.Activate
     
    Range("A1").Select
    If Range("A2").Value <> "" Then ActiveCell.End(xlDown).Select
    ActiveCell.Offset(1, 0).Select
          randes = ActiveCell.Row
          ActiveCell.Offset(0, 1).Value = Flcd.Cells(lNx, 8) 'Nom du client
          ActiveCell.Offset(0, 2).Value = rancom.Value       'Numéro de commande
          ActiveCell.Offset(0, 3).Value = Flcd.Cells(lNx, 9) 'Nom du chantier
          ActiveCell.Offset(0, 4).Value = Flcd.Cells(lNx, 5) 'statut(en cours/soldé)
          ActiveCell.Offset(0, 5).Value = "=TODAY()"         'Date
          Flcd.Cells(lNx, 1).Copy Fl.Cells(randes, 1)        'Numéro de Devis
     
          U_Fact.Show
          If satisf = True Then
     Fl.Cells(randes, 7).Value = valtb1                     'Numéro de Bon
     Fl.Cells(randes, 9).Value = valtb2                        'Numéro de palette
     Fl.Cells(randes, 10).Value = valtb3                       'Nombre de pierre
     Fl.Cells(randes, 8).Value = valtb4                        'Montant Hors taxe
     Fl.Cells(randes, 11).Value = valtb5                       'Versement
     Fl.Cells(randes, 12).Value = cbo1                         'Chèque ou espèce
     Fl.Cells(randes, 13).Value = cbo2                         'statut complete /partielle
     Fl.Cells(randes, 14).Value = cbo3                         'Vu par tel/mail/pers.
     End If
      If satisf = False Then
      U_Fact.Hide
      Flcd.Activate
     End If
     End If
     Set Flcd = Nothing
        Set Fl = Nothing
        Set Flech = Nothing
    End Sub
    le code du userform :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Private Sub B_Annul_Click()
    satisf = False
    Unload Me
    End Sub
     
    Private Sub B_OK_Click()
    If Not TextBox1 Is Nothing Then
    valtb1 = TextBox1.Text
    valtb2 = TextBox2.Text
    valtb3 = TextBox3.Text
    valtb4 = TextBox4.Text
    valtb5 = TextBox8.Text
    cbo1 = ComboBox1.Text
    cbo2 = ComboBox2.Text
    cbo3 = ComboBox3.Text
    satisf = True
    End If
    Unload Me
    End Sub
     
     
     
    Private Sub UserForm_Activate()
    ComboBox1.AddItem "Chèque"
    ComboBox1.AddItem "Carte B"
    ComboBox1.AddItem "Espèce"
    If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem ComboBox1.Text
    ComboBox2.AddItem "Partielle"
    ComboBox2.AddItem "Complète"
    If ComboBox2.ListIndex = -1 Then ComboBox2.AddItem ComboBox2.Text
    ComboBox3.AddItem "Vu"
    ComboBox3.AddItem "Tel"
    ComboBox3.AddItem "Mail"
    If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem ComboBox3.Text
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Problème enregistrement avec un UserForm avec TextBox sur une même cellule
    Par juguy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/06/2015, 11h19
  2. [XL-2007] utilisation optionbutton dans userform avec textbox
    Par r0man0 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 14/05/2013, 13h35
  3. probleme avec textbox et combobox
    Par tissot73 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 21/06/2012, 13h29
  4. [Débutant] Requete sqlce avec textbox et combobox
    Par nicodu9 dans le forum VB.NET
    Réponses: 1
    Dernier message: 24/05/2012, 20h27
  5. [VBA-E] UserForm avec textbox "Dynamique"
    Par Alex_Kidd dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/05/2006, 00h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo