XL 2019 Userform multipage

fronck

XLDnaute Junior
Bonjour à tous,
C'est au sujet de ce formulaire multipage qui permet d'entrer d'y beaucoup de données.
1654055503677.png

JM27 en est l'auteur pour des recettes et planification repas, mais pas joignable en privé.
1654060664968.png

j'aimerais savoir ce que signifie (ListCount - 1, 0) = Cell et (ListCount - 1, 1) = Cell.Row dans l'initialize :
VB:
        For Each Cell In .Range("G2:G" & .Range("G10000").End(xlUp).Row) 'Ingrédients
            Me.ComboIngrédient.AddItem
            ' ListCount détermine le nombre de lignes
            Me.ComboIngrédient.List(ComboIngrédient.ListCount - 1, 0) = Cell    ' ? (ListCount - 1, 0) = Cell
            Me.ComboIngrédient.List(ComboIngrédient.ListCount - 1, 1) = Cell.Row    ' ? (ListCount - 1, 1) = Cell.Row
        Next
Merci pour vos réponses.
 

Pièces jointes

  • recettes et planning repas.xlsm
    218.3 KB · Affichages: 13
Dernière édition:
Solution
Bsoir Chti,
Pour modifier un bon de commande, je prends le nom du fournisseur pour trouver la commande.
Et c'est en recherchant les lignes de la commande que s'incrémente la listbox.
J'ai remarqué que je l'avais fait sur la ligne de titre au lieu de la ligne de la commande avec le nbre d'enregistrements correspondants.
Donc maintenant çà fonctionne. 🙂
A plus

fanfan38

XLDnaute Barbatruc
Bonjour
C'est pour remplir le combobox ingrédient qui a 2 colonnes
Me.ComboIngrédient.AddItem 'ajoute une ligne au combobox
colonne 0= égale la valeur de G 'la 1ere colonne est égale à 0
colonne 1=la ligne correspondante

A+ François
 

fronck

XLDnaute Junior
Bonjour,
Et elles sont ou les 2 colonnes ?
1654058884331.png

Ici :
1654059803249.png


Alors :
- Me.ComboIngrédient.List(ComboIngrédient.ListCount - 1, 0) = Cell
rajoute un ingrédient ? ok
- Me.ComboIngrédient.List(ComboIngrédient.ListCount - 1, 1) = Cell.Row
rajoute une unité ? ou çà ?
Merci
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour le Fil
VB:
Me.ComboIngrédient.List(ComboIngrédient.ListCount - 1, 1) = Cell.Row 'rajoute une unité
Cell.Row comme le dit François c'est la ligne source.
Pour avoir l'unité il faut aller chercher la valeur dans la colonne a côté de la cellule "Cell" soit Cell.Offset(0,1).
Si j'ai bien compris lol
Bonne journée
Jean marie
 

fronck

XLDnaute Junior
Re,
Effectivement quand tu sélectionnes l'ingrédient, çà t'ajoute l'ingrédient et l'unité.

1654063681000.png


Mais cell.row à la 2eme ligne parce que l'unité est sur la même ligne que l'ingrédient je pense.
Merci
 
Dernière édition:

ChTi160

XLDnaute Barbatruc
Bonjour
pour expliquer
VB:
With Me.ComboIngrédient 'avec le Combobox'
               .ColumnCount = 3 'il aura 3 colonnes
               .ColumnWidths = "140;0;0" 'elles auront pour largeur 140 pour la première et 0 pour les deux autres
               'donc une seule Colonne sera visible'
            For Each Cell In Ws_Source.Range("G2:G" & Ws_Source.Range("G10000").End(xlUp).Row) 'Ingrédients
                .AddItem Cell 'On ajoute une Nouvelle Ligne on y met dans sa première Colonne la valeur de "Cell"
                ' ListCount détermine le nombre de lignes
                .List(.ListCount - 1, 1) = Cell.Offset(0, 1)   ' ListCount - 1 pour avoir l'index dans le Combobox qui démarre à 0
                'donc si on ajoute une Ligne (AddItem) on aura 1 pour la première donc -1 pour avoir l'index de la première Ligne du Combobox etc
                .List(.ListCount - 1, 2) = Cell.Row    ' Idem on récupére le Numero de la Ligne dans la BDD
            Next
        End With
De cette façon , on pourrait presque remplacer le "ComboUnitée" par Un TextBox ou un Label ! à voir
Bonne fin de Journée
Jean marie
Ps :
j'espère que JM ne va pas m'en vouloir d'avoir modifié son code pour expliquer ?
 

Pièces jointes

  • fronck-1.gif
    fronck-1.gif
    297.6 KB · Affichages: 15
Dernière édition:

fronck

XLDnaute Junior
Bonjour à tous,
Et merci pour vos réponses.
J'ai un autre souci concernant la suppression d'un ingredient :

1654177831635.png


Je n'arrive pas à trouver l'endroit du code correspondant. Normalement çà devrait s'appeler 'private sub label35_doubleclick' non ?
Merci de votre aide
 

Pièces jointes

  • recettes et planning repas.xlsm
    229.4 KB · Affichages: 2

ChTi160

XLDnaute Barbatruc
Bonjour fronck
Ce Label n'est là que pour afficher le texte qu'il contient (une info quoi !)
si j'ai bien compris ton problème !
pour ce qui est de la suppression d'une Ligne , cela doit passer par la sélection d'une ligne de ta ListBox , puis l'appui sur un Bouton pour la supprimer !
Dans le cas que tu montres , si tu Double Click sur une Ligne des éléments de la Recette, la Ligne sera supprimée.
Jean marie
 
Dernière édition:

fronck

XLDnaute Junior
hello,
Tout fonctionne à peu prés sauf en modification d'une commande (et pas recette) pour mon cas.
j'ai un probléme avec Me.ListBoxCde.ListCount qui me compte pas correctement les lignes dans la listbox. (10 quand il n'y a q'une ligne) Il a l'air de me compter le nombre de lignes maxi que je prévois pour mes commandes, selon la BD commandes. résultat la ligne ajoutée se met en 10éme ligne.
Pour le code çà se passe dans la macro de l'UF Modifcde et private sub ajouter.
Pour ouvrir l'UF, il faut double-cliquer en page BD commandes. Vous pouvez sélectionner le fournisseur choisit aprés avoir taper a, il n'y en a qu'un qui a toutes les données demandées.
Vous pouvez voir que l'ascenseur fait qu'il compte 10 lignes.
Merci
 

Pièces jointes

  • 1.png
    1.png
    24.7 KB · Affichages: 24
  • resumeForum.xlsm
    51.4 KB · Affichages: 9
Dernière édition:

Statistiques des forums

Discussions
312 855
Messages
2 092 852
Membres
105 544
dernier inscrit
Eden90