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 :

Charger des combobox à l'initialisation du formulaire puis les pousser dans un tableur [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2019
    Messages : 46
    Par défaut Charger des combobox à l'initialisation du formulaire puis les pousser dans un tableur
    Bonjour à tous,
    lors de ma dernière visite j'avais reçu de l'aide pour mettre au point un formulaire d'arrêt de commercialisation comportant 9 listbox identiques devant être reportées toutes les 3 colonnes à partir de la colonne H. https://www.developpez.net/forums/d1...lonne-precise/
    Je dois aujourd'hui essayer de l'adapter pour en faire un formulaire de Non conformité (Voir image). J'en suis actuellement à la première page j'ai donc 6 combobox différentes pour un total de 9 listbox (les 4 risques différents sont côtés avec les mêmes 4 indices : acceptable, modéré, élevé, inacceptable).
    J'essaye de faire comme dans le formulaire précédent et de charger mes combobox avec les listes contenues dans ma deuxième feuille intitulée "Listes" lors de l'initialisation du formulaire. A mon grand damne je n'ai visiblement rien compris à ce qui a été fait avec moi précédemment et je n'arrive pas à faire l'adaptation seul.


    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
    Option Compare Text
    Dim nomtableau
     
    'Initialisation du formulaire
    Private Sub UserForm1_Initialize()
      nomtableau = "produit"
      Me.enreg = Range(nomtableau).Rows.Count + 1
      Me.ID = Application.Max(Range(nomtableau).Columns(1)) + 1
      Tbl = Range(nomtableau).Value
      Tri Tbl, LBound(Tbl), UBound(Tbl), 1
      Me.Recherche.List = Tbl
      For s = 1 To 4
        Me("Criticité" & s).List = [Tableau3].Value
      Next s
    End Sub
    J'ai tenté comme ça mais ça ne fonctionne pas, pareil avec Array(), je n'ai pas tenté avec Rowsource car je voudrais vraiment comprendre ce truc d'appel de donnée d'une liste du tableur pour remplir une listbox à l'initialisation.
    Enfin bref au secours quoi !
    Je vous ai mis en PJ mon travail actuel, celui de la dernière fois et une capture d'écran du formulaire sous format Word pour donner une idée globale de "la chose" si jamais vous avez des idées pour simplifier la forme (checkbox au lieu de listbox etc...)
    Je vous remercie par avance de l'aide que vous voudrez bien m'apporter !
    Cordialement,
    Erwan.
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2019
    Messages : 46
    Par défaut
    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
    Option Compare Text
    Dim nomtableau
     
     
    'Initialisation du formulaire
    Private Sub UserForm_Initialize()
    nomtableau = "produit"
      Me.enreg = Range(nomtableau).Rows.Count + 1
      Me.Id = Application.Max(Range(nomtableau).Columns(1)) + 1
      Tbl = Range(nomtableau).Value
      Tri Tbl, LBound(Tbl), UBound(Tbl), 1
      Me.Recherche.List = Tbl
         With Me
         .Criticité.List = [Tableau3].Value
          End With
     
      ' déprotection de la feuille "Produits" à éditer
      Sheets("Produits").Unprotect Password:="iknowvba"
    End Sub
    Private Sub Recherche_Change()
      Me.enreg = Application.Match(Val(Me.Recherche), Range(nomtableau).Columns(1), 0)
      Me.Id = Me.Recherche
      For i = 2 To 3
        Me("TextBox" & i) = Range(nomtableau).Item(enreg, i)
      Next i
     
      Me.Textbox4 = Range(nomtableau).Item(enreg, 5)
      Me.Textbox5 = Range(nomtableau).Item(enreg, 6)
      Me.Textbox6 = Range(nomtableau).Item(enreg, 7)
      Me.Textbox7 = Range(nomtableau).Item(enreg, 8)
      Me.TextBox8 = Range(nomtableau).Item(enreg, 9)
      Me.TextBox9 = Range(nomtableau).Item(enreg, 10)
      Me.TextBox10 = Range(nomtableau).Item(enreg, 11)
      Me.TextBox11 = Range(nomtableau).Item(enreg, 4)
    End Sub
    Private Sub B_valid_Click()
      enreg = Me.enreg
      Range(nomtableau).Item(enreg, 1) = Val(Me.Id)
      For i = 2 To 3
        Range(nomtableau).Item(enreg, i) = Me("TextBox" & i)
      Next i
      Range(nomtableau).Item(enreg, 4) = Me.TextBox11
      Range(nomtableau).Item(enreg, 5) = Me.Textbox4
      Range(nomtableau).Item(enreg, 6) = Me.Textbox5
      Range(nomtableau).Item(enreg, 7) = Me.Textbox6
      Range(nomtableau).Item(enreg, 8) = Me.Textbox7
      Range(nomtableau).Item(enreg, 9) = Me.TextBox8
      Range(nomtableau).Item(enreg, 10) = Me.TextBox9
      Range(nomtableau).Item(enreg, 11) = Me.TextBox10
     
      Range(nomtableau).Item(enreg, 12) = Me("criticité" & s)
     
       raz
       UserForm_Initialize
    End Sub
    Private Sub B_sup_Click()
      If MsgBox("Etes vous sûr de supprimer " & Me.enreg & "?", vbYesNo) = vbYes Then
         Range(nomtableau).Rows(Me.enreg).Delete
         Me.Recherche.List = Range(nomtableau).Value
      End If
    End Sub
    Private Sub B_ajout_Click()
      raz
      Me.Id = Application.Max(Range(nomtableau).Columns(1)) + 1
      Me.enreg = Range(nomtableau).Rows.Count + 1
    End Sub
    'remise à zéro du formulaire
    Sub raz()
      For i = 2 To 8
         Me("TextBox" & i) = ""
      Next i
     
    End Sub
    Private Sub B_suivant_Click()
     If Me.Recherche.ListIndex < Me.Recherche.ListCount - 1 Then
       Me.Recherche.ListIndex = Me.Recherche.ListIndex + 1
      End If
    End Sub
    Private Sub b_précédent_Click()
      If Me.Recherche.ListIndex > 0 Then
        Me.Recherche.ListIndex = Me.Recherche.ListIndex - 1
      End If
    End Sub
    Private Sub bouton_quitter_Click()
    Unload Me
    ' Reprotection de la feuille "Produits" à éditer
    Sheets("Produits").Protect Password:="iknowvba"
    End Sub
    Sub Tri(a, gauc, droi, colTri) ' Quick sort
      ref = a((gauc + droi) \ 2, colTri)
      g = gauc: d = droi
      Do
        Do While a(g, colTri) < ref: g = g + 1: Loop
        Do While ref < a(d, colTri): d = d - 1: Loop
        If g <= d Then
           For c = LBound(a, 2) To UBound(a, 2)
              temp = a(g, c): a(g, c) = a(d, c): a(d, c) = temp
           Next
           g = g + 1: d = d - 1
         End If
       Loop While g <= d
       If g < droi Then Call Tri(a, g, droi, colTri)
       If gauc < d Then Call Tri(a, gauc, d, colTri)
    End Sub

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2019
    Messages : 46
    Par défaut
    J'ai résolu mon problème tout seul en me sortant un peu les doigts et en me replongeant avec attention dans mon précédent code et dans mes différents posts auxquels les gentils contributeurs avaient activement participé.
    Voila les liens pour mon cheminement si jamais ça peut servir à quelqu'un passant par là (bien que j'en doute vu l'imprécision de mon intitulé)

    https://www.developpez.net/forums/d1...arant-virgule/
    https://www.developpez.net/forums/d1.../#post10955150

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/07/2011, 17h22
  2. [ZF 1.9] Formulaire avec ListBox
    Par blaise4714 dans le forum Zend_Form
    Réponses: 1
    Dernier message: 30/10/2009, 14h47
  3. Formulaire avec actions différentes
    Par senacle dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 22/02/2008, 10h42
  4. [MySQL] Stocker un formulaire avec listbox dynamiques
    Par gregou81 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 02/11/2007, 10h29
  5. Ouverture d'un formulaire avec des requêtes différentes
    Par Jérémy VAUTIER dans le forum Access
    Réponses: 3
    Dernier message: 02/03/2006, 07h31

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