XL 2010 Création de listes déroulantes interactive

  • Initiateur de la discussion Initiateur de la discussion jeanmi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jeanmi

XLDnaute Impliqué
J’ai un onglet « liste articles »

Dans lequel, j’ai 3 colonnes, A, B et C avec des références, des désignations, en C des familles. Les plages A2 :C36 sont nommées « table articles », peut-être pas utile ?

J’ai dans l’onglet « Bon de Cde »

En colonne A, de A27 : A57 des références qui s’afficheront en fonction du choix sélectionné au niveau de désignation (colonne C) et qui ne s’affiche que s’il y a une quantité dans la colonne D, ça fonctionne.

J’ai en colonne B des familles de produit, à partir d’une liste déroulante.

Ce que je voudrais faire, si possible :

Actuellement la liste déroulante qui est affichée au niveau de désignation, en colonne C, prend en compte toutes les données qui sont définies dans l’onglet « liste articles »

Es qu’il est possible que la liste déroulante qui est au niveau de désignation, colonne C, n’affiche que les désignations qui correspondent à la famille sélectionnée au niveau de famille, colonne B ?

J’ai fait beaucoup d’essais, sans arrivé à trouver une solution.

On me dit peut-être tableau croisé dynamique, mais là je ne maitrise pas ni dans le cas d’une solution VBA.

Il faut que je puisse, simplement, par la suite ajouter des informations complémentaires à l’onglet liste articles. Peut-être que la construction de mon fichier n'est pas la bonne ?

Si joins mon fichier d’essai.

Merci pour votre aide.

Cordialement
 

Pièces jointes

Solution
Bonjour à tous.
Salut job75, jeanmi va devoir s'accrocher, il a à faire à un dur à cuir. Tus sais dans les îles ont a la peau dure : tannée par le soleil.
Et rappelle toi mes débuts ! Entre mon premier post et la fin, il y en eu un paquet aussi. Vous ne m'avez pas lâché !
Je m'amuse trop !
jeanmi, merci pour ton commentaire.
Je te mets la nouvelle version. J'ai modifié certaines choses :
1°) Un message et le process si le bon de commande a déjà été renseigné,
2°) Le classement des factures par ordre : dernier enregistrement au 1er. Cela n'a pas été simple, mais c'est fait.
Fais moi un retour.
Cordialement.
Bonjour à tous.
jeanmi, pour empêcher toutes modifications autres que la "Qté", tu n'as pas besoin de code. Tu sélectionnes le texBox où tu veux empêcher toutes modifications et tu vas dans la fenêtre de propriété du TexrBox (fenêtre à gauche) tu cherches "Enabled" que tu mets à False. Tu le fais pour tous les TextBox sauf la "Qté". Aucune modification ne sera permise hormis la "Qté".
Pour le reste je te laisse faire, si problème tu reviens vers moi.
Cordialement.
Bonjour @Piment à tous

merci pour les infos, c'est bon pour la modif uniquement quantité. c'est bon pour l'ajout des informations interlocateur et qui récupére, ça fonctionne bien.

cordialement
 
Parfait. Bonne soirée.
Bonjour @Piment à tous

Juste deux petites questions :

A- Je n’arrive pas à comprendre pourquoi, quelque fois, l’image qui est à la fin du bon de commande, le caché société, se retrouve sur le tableau Tbl_Commande ?

Serait-il possible de s’assurer de bien la positionner sur la colonne B après le tableau quel que soit la taille du tableau afin de garantir son positionnement hors du tableau ?

B- lorsque le tableau est vide au démarrage, il y a la ligne 15, qui a des boutons pour menus déroulants , pourquoi ?

Merci d’avance pour la réponse.

Cordialement
 
Bonjour @Piment à tous

Juste deux petites questions :

A- Je n’arrive pas à comprendre pourquoi, quelque fois, l’image qui est à la fin du bon de commande, le caché société, se retrouve sur le tableau Tbl_Commande ?

Serait-il possible de s’assurer de bien la positionner sur la colonne B après le tableau quel que soit la taille du tableau afin de garantir son positionnement hors du tableau ?

B- lorsque le tableau est vide au démarrage, il y a la ligne 15, qui a des boutons pour menus déroulants , pourquoi ?

Merci d’avance pour la réponse.

Cordialement
Bonjour à tous,
jeanmi, je ne vois pas de quel image tu parles, à ma connaissance, il n'y avait pas d'image dans le fichier que je t'ai fourni.
Concernant la ligne 15, c'est normal : c'est la ligne totale d'un tableau structuré. Surtout ne rien toucher à ce niveau : c'est ce qui te permet d'avoir le total HT.
Cordialement.
 
Bonjour à tous,
jeanmi, je ne vois pas de quel image tu parles, à ma connaissance, il n'y avait pas d'image dans le fichier que je t'ai fourni.
Concernant la ligne 15, c'est normal : c'est la ligne totale d'un tableau structuré. Surtout ne rien toucher à ce niveau : c'est ce qui te permet d'avoir le total HT.
Cordialement.
L'image c'est normale que tu ne l'as pas, c'est le tampon de la société. Mais c'est le principe que je cherche comment faire. Donc que ce tampon soit toujours positionné après le tableau ce qui est bon pratiquement à chaque fois, sauf de temps en temps où il se retrouve au milieu du tableau, je n'arrive pas à comprendre pourquoi ?
 
Bonsoir jeanmi, Piment,
Donc que ce tampon soit toujours positionné après le tableau ce qui est bon pratiquement à chaque fois, sauf de temps en temps
Un petit coup de main... Mettez dans le code de la feuille "Commande" :
VB:
Option Explicit

Private Sub Worksheet_Activate()
Dim cel As Range, o As Object
With ListObjects(1).Range: Set cel = .Cells(.Rows.Count, 2): End With
For Each o In DrawingObjects
    If InStr(LCase(o.Text), "tampon") Then
        o.Top = cel(2).Top
        o.Left = cel.Left + (cel.Width - o.Width) / 2
        Exit For
    End If
Next
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Worksheet_Activate 'lance la macro
End Sub
J'ai mis o.Top = cel(2).Top par sécurité mais si vous préférez utilisez o.Top = cel.Top

On pourrait aussi repérer l'image pae son nom.

A+
 

Pièces jointes


Bonjour @job75 à tous,

Merci pour le code, qui m'a bien aidé à essayé de comprendre.

j'ai adapté comme il suit, comme mon "tampon" est une image et non une forme, après beaucoup d'essais et de recherche.

VB:
Private Sub Worksheet_Activate()
    Dim cel As Range, o As Object

With ListObjects(1).Range: Set cel = .Cells(.Rows.Count, 2): End With

    Set shp = ActiveSheet.Shapes("TAMPON")

    If Not shp Is Nothing Then
        shp.top = cel(2).top
        shp.Left = cel.Left + (cel.Width - shp.Width) / 2
    End If
End Sub

Cordialement
 
Bonjour @job75 à tous,

Merci pour le code, qui m'a bien aidé à essayé de comprendre.

j'ai adapté comme il suit, comme mon "tampon" est une image et non une forme, après beaucoup d'essais et de recherche.

VB:
Private Sub Worksheet_Activate()
    Dim cel As Range, o As Object

With ListObjects(1).Range: Set cel = .Cells(.Rows.Count, 2): End With

    Set shp = ActiveSheet.Shapes("TAMPON")

    If Not shp Is Nothing Then
        shp.top = cel(2).top
        shp.Left = cel.Left + (cel.Width - shp.Width) / 2
    End If
End Sub

Cordialement
Bonjour à tous,
Jeanmi, job75 merci d'avoir résolu son problème.
Bonne journée à tous.
Cordialement.
 
Bonjour jeanmi, Piment,

S'il n'y a pas de Shape nommée "TAMPON" il y aura un bug pour vous avertir, il ne faut pas en avoir peur c'est fait pour ça :
VB:
Private Sub Worksheet_Activate()
Dim cel As Range
With ListObjects(1).Range: Set cel = .Cells(.Rows.Count, 2): End With
With Shapes("TAMPON")
    .Top = cel(2).Top
    .Left = cel.Left + (cel.Width - .Width) / 2
End With
End Sub
A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

A
Réponses
10
Affichages
974
A
O
Réponses
1
Affichages
1 K
Retour