ESSAIS -MENUS : Feuille Accueil produits [Résolu]

Signaler
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021
-
Messages postés
9968
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 mai 2021
-
Bonjour :
Dans le code de la feuille Accueil produits, procédure Worksheet_Change :
cboModifierproduit.additem Elé.offset(0,-3)
0 = chiffre représentant une colonne ? En réalité, c'est une ligne.
-3 = chiffre représentant une ligne ? En réalité, c'est une colonne.Pourquoi précédé du signe moins ? Reculer de trois lignes ou avancer de trois lignes sur la droite ou la gauche ? Par rapport à quelle ligne de départ ? En réalité, il reste sur la même ligne et recule de trois colonnes vers la gauche

cboModifierProduits.list(activesheet.cboModifierProduit.listCount -1, 1)=Ele.row

-1 Pourquoi précédé du signe moins ? Reculer ou avancer d'une colonne sur la droite ou la gauche ? Par rapport à quelle colonne ?
1 il s'agit d'une ligne ? Mais de laquelle ?

Pour ce qui est de la suppression, ce sera les mêmes considérations ?

Que représente exactement Elé qui est déclaré comme de type range ? Pour moi, tout est basé sur la feuille Produits, TableProduits. D'avance merci pour votre aide. À mon avis, tout se joue sur les colonnes Nom catégorie et Code produit.

https://www.cjoint.com/c/KDxqsFursxo

3 réponses

Messages postés
9968
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 mai 2021
1 141
Bonjour,
En principe ‘Ele’ est une variable qui reçoit la valeur de la colonne des catégories de votre table Produits utilisée dans la boucle (For Each Ele ………. Next Ele)

Au fait c'est quoi le problème?
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021

Bonjour Le Pingou,

Le problème est de savoir à quoi correspondent les chiffres, pourquoi certains sont précédés du signe moins.
J'ai déjà trouvé que le premier chiffre correspond à une ligne, le second à une colonne. Chiffre colonne précédé d'un moins : reculer de trois colonnes vers la gauche (-3) à partir de la colonne Nom catégorie (nom comprise dans le décompte). Chiffre ligne précédé d'un moins : monter d'une ligne vers le haut (-1). Si pour la colonne j'ai compris le signe moins, pour la ligne, je n'ai pas compris car on aboutit sur la ligne du nom des colonnes. Tout se passe à partir de la feuille Produits, TableProduits, colonne Nom catégorie. Partie ajouter le numéro de ligne (-1, 1) : pour cette instruction, je n'ai pas compris. J'ai trouvé tout cela, à confirmer ou à infirmer, grâce à la propriété de range offset.
Messages postés
14
Date d'inscription
samedi 23 mai 2020
Statut
Membre
Dernière intervention
24 avril 2021
3 >
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021

Bonjour,

For Each Ele In Application.Range("TableProduits[Nom catégorie]")

Ele va parcourir le tableau "TableProduits" ligne par ligne, dans la colonne "Nom catégorie"
Ele va donc prendre les valeurs "DMR" puis "DS" etc....

cboModifierProduit.AddItem Ele.Offset(0, -3)

"cboModifierProduit" est le nom de la première liste déroulante sous "Choix Produit"
"AddItem" : cela va ajouter les éléments à la liste

AddItem.Ele : cela précise que l'élément à ajouter correspond à l'élément contenu dans Ele. Seulement dans la liste on ne veut pas ajouter "DMR" "DS" etc... On veut ajouter les éléments de la colonne "Intitulé" du tableau. Cette colonne se situe 3 colonnes à gauche de la colonne actuelle "Nom catégorie" (d'où le -3) et nous de devons rester sur la même ligne (d'où le 0). Finalement on obtient Offset(0, -3) qui signifie décaler de trois colonnes vers la gauche depuis la colonne "Nom catégorie" mais rester sur la même ligne.
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021
>
Messages postés
14
Date d'inscription
samedi 23 mai 2020
Statut
Membre
Dernière intervention
24 avril 2021

Merci jkrplz

et l'instruction ajouter le numéro de ligne qui suit le next ele, que signifie-t-elle ? J'avoue que je ne l'ai pas comprise.
Messages postés
14
Date d'inscription
samedi 23 mai 2020
Statut
Membre
Dernière intervention
24 avril 2021
3 >
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021

Pour cboModifierProduit.List(ActiveSheet.cboModifierProduit.ListCount - 1, 1) = Ele.Row
Voir ma deuxième réponse ci-dessous.

Jkrplz
Messages postés
14
Date d'inscription
samedi 23 mai 2020
Statut
Membre
Dernière intervention
24 avril 2021
3
cboModifierProduit.List(ActiveSheet.cboModifierProduit.ListCount - 1, 1) = Ele.Row

Ici on ajoute Ele.Row qui est le numéro de la ligne dans la feuille contenant le tableau de l'élément en train d'être ajouté à la liste déroulante.

La liste déroulante contient 2 colonnes, la colonne 0 dans laquelle se situent les éléments "DMR01-1" etc... et la colonne 1 dans laquelle doivent se situer les numéros de ligne de ces éléments. Le 1 dans cboModifierProduit.List(ActiveSheet.cboModifierProduit.ListCount - 1, 1) signifie deuxième colonne de la liste.

.ListCount compte le nombre d'éléments dans la liste. Lorsque le premier élément est ajouté, .ListCount renvoie donc 1. Sauf que dans la liste, le premier élément est 0, le deuxième est 1 etc... Donc pour ajouter le premier numéro de ligne (Elo.Row) au bon endroit, on doit l'ajouter dans la première ligne et deuxième colonne de la liste, ListCount vaut 1 mais ListCount -1 vaudra 0 c'est ce qui nous intéresse pour la ligne de la liste. Et c'est dans la deuxième colonne de cette liste ce qui donne .List(.ListCount - 1, 1)

Je sais pas si je suis clair :D
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021

Oui cela va. Le code de cette feuille devient plus clair. Dans mon prochain forum, je me fixerai sur ThisWork.
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021

J'ai modifié les commentaires pour les combo boxes Modifier et supprimer du code de la feuille Accueil produits. Je pense avoir respecté tant tes indications que celles de Le Pingou. Après confirmation de vous deux ou de l'un d'entre vous, je créerai un nouveau forum concernant ThisWorkbook.
https://www.cjoint.com/c/KDysjbQdWqo
Messages postés
9968
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 mai 2021
1 141 >
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021

Bonjour,
Eh bien pour moi je ne sais pas ou sont les commentaires dont vous parlez ...!!!

Salutations.
Le Pingou
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021
>
Messages postés
9968
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 mai 2021

Dans le code de la feuille Accueil produits, procédure Worksheet_Change, après Si la cellule C5 est vide et également après Si la cellule C7 est vide.
Messages postés
9968
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 mai 2021
1 141 >
Messages postés
801
Date d'inscription
samedi 19 juillet 2014
Statut
Membre
Dernière intervention
2 mai 2021

Bonjour,
Oui à première vue cela semble correcte, cependant je suppose que le programme n’est pas de votre cru et que vous voulez simplement comprendre les diverses instructions.
Je ne vais pas poursuivre. Désolé.
Salutations.
Le Pingou
Messages postés
9968
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 mai 2021
1 141
Bonjour jkrplz,
Merci pour votre intervention (j'ai les mêmes informations).