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 :

listbox vers listboxpuis vers textbox [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut listbox vers listboxpuis vers textbox
    bonjour a vous

    je suis bloquer a un niveau qui est insurmontable pour mes connaissances, je voudrais que lorsque je sélectionne une désignation en listbox1 je puisse avoir le détails des sous list en 3 colonnes dans le list box2 mais je n'y arrive pas;lorsque ce code sera débloqué je voudrais pouvoir par un simple clic sur la sous liste la faire arrivé eb textbox1,2 et 3 dans leurs ordres respectifs

    si cela pose problème n'hesiter pas à m'en parler

    bon courage et bonne journée

    grisan29

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour et bienvenu au forum
    Par exception, j'ai ouvert ta PJ, puisque tu es nouveau au forum
    cf. http://www.developpez.net/forums/d84...s-discussions/

    Une première étape est d'instancier les feuilles

    J'ai adapté ton code, désormais les bonnes informations s'affichent

    il reste à présenter les données dans tes feuilles carrelage et Prestation comme pour plomberie et électricité, c'est à dire, catégorie 1 en colonne B, catégorie2 en Colonne E...etc

    ci-joint code
    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
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    Option Explicit
    Dim MyCategorie As String
     
    Private Sub UserForm_Initialize()
        Me.OptionButton1.Value = True
    End Sub
     
    Private Sub OptionButton1_Click()
    Dim LastInputRow As Long
     
    MyCategorie = "plomberie"
    LastInputRow = Sheets(MyCategorie).Cells(1, 1).End(xlDown).Row
    ListBox1.RowSource = "plomberie!A1: A" & LastInputRow
    Me.ListBox1.ListIndex = 0
    ' Mise à jour libellé liste déroulante
    With UserForm1
        .Label1.Caption = "Liste de la " & MyCategorie & " "
    End With
     
    End Sub
     
    Private Sub OptionButton2_Click()
    Dim LastInputRow As Long
     
    MyCategorie = "electricite"
    LastInputRow = Sheets(MyCategorie).Cells(1, 2).End(xlDown).Row
    ListBox1.RowSource = "electricite!A1: A" & LastInputRow
    Me.ListBox1.ListIndex = 0
    ' Mise à jour libellé liste déroulante
    With UserForm1
        .Label1.Caption = "Liste de l' " & MyCategorie & " "
    End With
     
    End Sub
     
    Private Sub OptionButton3_Click()
    Dim LastInputRow As Long
     
    MyCategorie = "carrelage"
    LastInputRow = Sheets(MyCategorie).Cells(1, 2).End(xlDown).Row
    ListBox1.RowSource = "carrelage!A1: a" & LastInputRow
     
    Me.ListBox1.ListIndex = 0
    ' Mise à jour libellé liste déroulante
    With UserForm1
        .Label1.Caption = "Liste du " & MyCategorie & " "
    End With
     
    End Sub
     
    Private Sub OptionButton4_Click()
    Dim LastInputRow As Long
     
    MyCategorie = "prestation"
    LastInputRow = Sheets(MyCategorie).Cells(1, 2).End(xlDown).Row
    ListBox1.RowSource = "prestations!A1: a" & LastInputRow
    Me.ListBox1.ListIndex = 0
    ' Mise à jour libellé liste déroulante
    With UserForm1
        .Label1.Caption = "Liste de la " & MyCategorie & " "
    End With
    End Sub
     
    Private Sub UpdateListBox(wsName As String, Parametres As MSForms.ListBox, IndexValue As Integer)
    Dim LastInputRow As Integer, ColumnIndex As Integer, InputRange As Range
    ' Les données commencent à la ligne 3
    Const FirstInputRow As Integer = 2
    ' Détermine depuis quelle colonne on prend la liste des items
    ColumnIndex = 5 + 3 * (IndexValue - 1)
    ' Détermine la dernière ligne de la colonne sélectionnée et la plage correspondante
    With Sheets(wsName)
        LastInputRow = .Cells(FirstInputRow, ColumnIndex).End(xlDown).Row
        Set InputRange = .Range(.Cells(FirstInputRow, ColumnIndex), .Cells(LastInputRow, ColumnIndex + 2))
        With Parametres
            .MultiSelect = False
            .ColumnCount = 3
            .ColumnWidths = "140;60;40"
            .ColumnHeads = True ' Affiche les en-têtes de colonne
            .RowSource = wsName & "!" & InputRange.Address ' Spécifie la source de données
            .ListIndex = 0 ' Sélectionne le premier item
        End With
    End With
    Set InputRange = Nothing
    End Sub
     
    Private Sub ListBox1_Change()
    ' Mise à jour des items dans la ListBox2
    UpdateListBox MyCategorie, Me.ListBox2, Me.ListBox1.ListIndex
    End Sub
     
    Private Sub ListBox2_Change()
    With Me.ListBox2
        Me.TextBox1.Value = .List(.ListIndex)       'Designation
        Me.TextBox2.Value = .List(.ListIndex, 1)    'PU
        Me.TextBox3.Value = .List(.ListIndex, 2)    'Unité
    End With
    End Sub
     
    Private Sub CommandButton1_Click()
    Me.Hide
    Unload Me
    End Sub
     
    Private Sub CommandButton2_Click()
    Dim Myselection As String
    Me.Hide
    Myselection = Me.ListBox1.List(ListBox1.ListIndex)
    Unload Me
    End Sub
    PS:
    Remplace les propriétés de la Listbox2
    ColumnCount: 1
    ColumnsWidths: vide
    Width: 262

  3. #3
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut listbox vers listbox puis vers textbox
    bonjour a tous et surtout a mercatog qui m'a oter une grosse épine ,

    C’est tout a fait ce que je voulais sauf que je n’avais pas tout expliqué
    je rejoint mon fichier modifier
    J’y ai rajouté une feuil pour la réception des données et 2 check box
    Checkbox1= tva 5.5
    Checkbox2 =tva 1 9.6
    Je voudrais que lors du clic sur le bouton valider le contenu des text box et checkbox aillent en feuil1
    Textbox1 en B2 End(xlDown).Row ?
    Textbox 2 en D2 End(xlDown).Row
    Textbox3 en E2 End(xlDown).Row
    Textbox 4 en C2 End(xlDown).Row
    End(xlDown).Row pour pouvoir ajouter des articles l’un apres l’autre
    Checkbox1 ou 2 en G2 End(xlDown).Row
    Si c’est checkbox1 qui est choisi alors on écrit 1 en G2
    Si c’est checkbox2 qui est choisi alors on écrit 2 en G2
    Le textbox 4 est réservé a la quantité qui peu etre variable donc écrite manuellement
    L’idéal serait de commencer par une ligne dans la feuille et la formule ajouterai une ligne automatiquement jusqu'à l’entete de bas de page et faire un saut pour aller sur une la page 2 mais en ayant sauté l’entete de haut de page
    En fait je suis en cours de remaniement de mon fichier de facturation

    Merci beaucoup encore

    Grisan29

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pour le début
    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
    Private Sub CommandButton2_Click()
    Dim NewLig As Long
     
    With Sheets("feuil1")
       NewLig = .Cells(Rows.Count, 2).End(xlUp).Row + 1
       .Range("B" & NewLig).Value = TextBox1.Value ' designation
       .Range("D" & NewLig).Value = TextBox2.Value ' prix
       .Range("E" & NewLig).Value = TextBox3.Value ' unite
       .Range("C" & NewLig).Value = TextBox4.Value ' qte
       .Range("F" & NewLig).Value = .Range("C" & NewLig).Value * .Range("D" & NewLig).Value
       .Range("G" & NewLig).Value = IIf(Me.OptionButton5, 1, 2)
       .Range("H" & NewLig).Value = IIf(Me.OptionButton5, 0.055 * .Range("F" & NewLig).Value, "")
       .Range("I" & NewLig).Value = IIf(Me.OptionButton6, 0.196 * .Range("F" & NewLig).Value, "")
       '.....
    End With
     
    TextBox1.Value = ""
    TextBox2.Value = ""
    TextBox3.Value = ""
    TextBox4.Value = ""
    End Sub
    pour la tva, tu remplace tes checkbox par des buttonoption.

  5. #5
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut code tva
    bonjour Mercatog un grand merci pour tout ce que tu m'as donner comme code fonctionnel du premier coup, il n'y a que les checkbox (remplacer par des optionbuttons) qui donne en g2 le taux de tva hors dans mon post précédent j'avais mis ceci
    si c’est checkbox1 qui est choisi alors on écrit 1 en G2
    Si c’est checkbox2 qui est choisi alors on écrit 2 en G2
    en fait textbox 1;2;3;4 démarre en ligne 19 (C;I;J;K) les premières ligne sont réservé a l'entete de page
    les options boutons démarre en M19
    le tout toujours en (End(xlUp).Row + 1)

    Merci pour tout

    bonne fin de journée a tous

    grisan29

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu peux avoir pour un seul produit à la fois une tva de 5.5 et de 19.6??
    car avec les chekbox tu peux choisir les 2 à la fois.
    Une simple question

  7. #7
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour Mercatog

    j'ai remplacer les checkbox par des optionbutton comme tu me l' a demander
    je m'excuse j'ai mal regarder le resultat de ta formule car j'ai été perturbé c'est parfait il faut juste changer de départ d'inscription sur laz feuille
    je te joint la feuil brut sur lequel je travaille pour que tu comprenne mieux mon besoin mais qui est loin d'etre fixe ,toute modif est accepter, le fichier complet est trop lourd pour etre envoyer comme ca

    impossible d'envoyer le fichier car (Somme de toutes les pièces jointes de grisan29: 219,0 Ko) hors le fichier que je veux joindre ne fait que 28Ko
    je réessaierai ce soir



    bonne journée et encore merci

    grisan29

  8. #8
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut listbox vers listbox puis vers textbox
    bonjour Mercatog et tout les aurtre

    apres plusieurs essai enfin voici mon fichier tel que j'y travaille, merci de me tenir au courant s'il y des modif importante a y apporter

    Merci d'avance pour tout votre professionnalismeet générosité a aidé les autres, quand mon fichier sera prêt je ne demanderai qu'a aider les autres également

    bonne soirée

    grisan29

  9. #9
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    c'est fonctionnel jusqu'à maintenant, non?
    tu peux ajouter cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Me.OptionButton5.Value = True
    dans Initialize de l'userform

  10. #10
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonsoir Mercatog

    Merci pour tout, en effet c'est fonctionnel jusque présent il n'y qu'un souci mais je reconnais ne pas avoir donné la précision a apporter a la formule que tu a si bien fait au niveau de la destination des données des textbox
    il est vrai que la première ligne vide est la 11 mais il y quelque chose a modifier dans le code car il faudrai commencer a la ligne 19
    txtbox1 commence a b19
    txtbox2 à i19
    txtbox3 à j 19
    txtbox 4 à k19
    le choix des optionbutton en M19
    tva 5.5 en O19
    tva 19.6 en P19
    et cela toujours dans les mêmes colonnes mais il les faut comme avant en End(xlDown)
    je te donne ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    With Sheets("facturation")
       NewLig = .Cells(Rows.Count, 2).End(xlUp).Row + 1
       .Range("B" & NewLig).Value = TextBox1.Value ' designation
       .Range("D" & NewLig).Value = TextBox2.Value ' prix
       .Range("E" & NewLig).Value = TextBox3.Value ' unite
       .Range("C" & NewLig).Value = TextBox4.Value ' qte
       .Range("F" & NewLig).Value = .Range("C" & NewLig).Value * .Range("D" & NewLig).Value
       .Range("G" & NewLig).Value = IIf(Me.OptionButton5, 1, 2)
       .Range("H" & NewLig).Value = IIf(Me.OptionButton5, 0.055 * .Range("F" & NewLig).Value, "")
       .Range("I" & NewLig).Value = IIf(Me.OptionButton6, 0.196 * .Range("F" & NewLig).Value, "")
       '.....
    End With
    autrement est 'il possible de pouvoir créer une facture a partir d'un devis sur le fichier que je t'ai envoyer

    merci pour tout et n'hésite pas a me demander d'autres précicions

    grisan 29

  11. #11
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu veux commencer à la ligne 19, tu n'as qu'à écrire les titres en ligne 18.
    Désolé, je ne ferai pas le travail à ta place.
    S'il y a une ou des questions précises, les membres du forum sont là pour aider, proposer, corriger, suggérer...
    Ceci étant, je me permet de rappeler que sans un effort personnel de compréhension, je ne vois pas d'utilité de faire faire son propre travail par autrui.

  12. #12
    Membre éclairé Avatar de grisan29
    Homme Profil pro
    ouvrier poseur
    Inscrit en
    Octobre 2006
    Messages
    866
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ouvrier poseur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2006
    Messages : 866
    Par défaut
    bonjour Mercatog

    iln'y a pas de souci ,tu m'a bien aidé jusque maintenant et je comprends ta décision
    je nesais pas s'il y d'autres interresser par mon fichier car jusque présent il n'y a que toi qui m'est répondu

    bonne soirée

    grisan29

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/02/2013, 08h39
  2. textbox changeant vers un autre textbox
    Par grisan29 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 17/08/2010, 15h32
  3. listbox sous PDA vers listbox vers windowsForm
    Par fanatics dans le forum VB.NET
    Réponses: 6
    Dernier message: 09/06/2010, 17h12
  4. Réponses: 3
    Dernier message: 14/06/2008, 16h10
  5. Export vers Access vers EXCEL en VBA
    Par cornet04 dans le forum VBA Access
    Réponses: 2
    Dernier message: 04/06/2007, 15h36

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