Fenetre positionnement

Bonjour, je cherche une solution pour alimenter le nom du client et le/les mois à cocher sur les onglets:

- Recap FACT , cellule W4 et W5
- Recap Satisfaction, cellule N1 et N2
- Recap Reco, cellule v1 et v2

pour cela je souhaite qu'en onglet Choix, je puisse :

- choisir le client (en sachant que certains clients sont présents sur certains onglets mais pas tous) donc il faut une liste exhaustive.
- sélectionner les mois à analyser

une fois ce choix effectué, cela alimente instantanément les cellules en rouge de chaque onglets, à savoir:
- Recap FACT , cellule W4 et W5
- Recap Satisfaction, cellule N1 et N2
- Recap Reco, cellule v1 et v2

ci joint le fichier épuré et renommé afin de mieux comprendre mon interrogation.

espérant qu'une personne puisse m'aider, merci bcp

Bonjour,

Avant d'aller plus loin, pourriez-vous regarder si cela vous convient dans l'approche pour le choix des clients

On crée la liste des clients en C7 de la feuille Choix et ce, via code en cliquant sur le bouton
Pour mettre à jour les tableaux croisé, choisir dans la liste en C7

Après je peux vous faire pour les mois

Pouvez-vous me dire ce que vous voulez dans les cas suivants

- Si le client n'est pas connu dans une des feuille, que doit contenir le Tableau croisé ?
- Si C7 de la feuille choix est vide, que doivent contenir les tableaux croisés des différentes feuilles ?

Cordialement


Edit :
Voici le code à changer pour que vous puissiez utiliser le mois en cellule C9 de votre feuille Choix.
Procédez comme suit :
- clic droite sur le nom de l'onglet de votre feuille Choix
- choisir l'option "visualiser le code"
- remplacer tout par le code ci-dessous

Option Explicit
Option Compare Text

Private Sub Worksheet_Change(ByVal Target As Range)
Dim nomcli As String, nummois As String

If Target.Count > 1 Then Exit Sub

If Not Intersect(Target, Range("C7", "C9")) Is Nothing Then
    nomcli = Range("C7")
    nummois = Range("C9")

    Dim pt As String, pfc As String, pfm As String
    Dim f As Worksheet
    Dim i As Byte

    Application.ScreenUpdating = False

    For i = 1 To 3
        Select Case i
            Case Is = 1: Set f = Sheets("Recap FACT"): pt = "TCD_Fact": pfc = "Clients": pfm = "Mois"
            Case Is = 2: Set f = Sheets("Recap Satisfaction"): pt = "TCD_Satisf": pfc = "Client": pfm = "Mois"
            Case Is = 3: Set f = Sheets("Recap Reco"): pt = "TCD_Reco": pfc = "Client": pfm = "Mois Def"
        End Select

        With f.PivotTables(pt)
            .RefreshTable 'remise a jour des TCD
            'On Error Resume Next
            With .PivotFields(pfc)
                If nomcli = vbNullString Then
                    .ClearAllFilters
                    .CurrentPage = "(All)" 'ou TOUS
                Else: .CurrentPage = nomcli '"(All)" 'ou TOUS
                End If
            End With

            With .PivotFields(pfm)
                If nummois = vbNullString Then
                    .ClearAllFilters
                    .CurrentPage = "(All)" 'ou TOUS
                Else: .CurrentPage = nummois
                End If
            End With
        End With
    Next i
End If
End Sub

Une fois mis à jour, choisir une valeur en C7 et mettre le numéro du mois en C9. Vous n'êtes pas obligé de compléter les deux cellules évidemment.

Crdlt

Merci c'est exactement cela l'idée.

si le client n'existe pas dans une des feuilles, alors affecter Vide dans le tableau croisé dynamique.

et idem si aucun client n'est sélectionné dans C7.

donc même logique ensuite pour les mois.

merci :)

Nicolas

et compte tenu du volume de clients que j'ai sur mon fichier d'origine, si une saisie des 3-4 premières lettres peut être proposée, cela générerait un gain de temps important dans la recherche du client.

merci bcp

si le client n'existe pas dans une des feuilles, alors affecter Vide dans le tableau croisé dynamique.
et idem si aucun client n'est sélectionné dans C7.

Si vous avez essayé le code, les cas où le client n'existe pas ou que vous ne mettez pas de mois, le TCD ne met rien en champ de page. Donc c'est la valeur TOUS qui est remise par défaut

et compte tenu du volume de clients que j'ai sur mon fichier d'origine, si une saisie des 3-4 premières lettres peut être proposée,

On peut faire mais alors il faut créer la liste des clients dans une colonne spécifique de votre feuille Choix ou d'une autre feuille. Ensuite la liste de validation serait créée sur base de cette liste. Dites-moi où créer cette liste

il n'est pas possible d'avoir une fenêtre qui s'ouvre lorsque l'on clique sur Choix du clients et en saisissant les premières lettres, le choix s'affine?

sinon vous pouvez ajouter une feuille supplémentaire et reprendre l'intégralité des clients, c'est une possibilité, la première possibilité me semblait plus simple, mais à votre guise :)

merci bcp

re

il n'est pas possible d'avoir une fenêtre qui s'ouvre lorsque l'on clique sur Choix du clients et en saisissant les premières lettres, le choix s'affine?

Si mais alors il faut creer une userform et cela sera plus compliqué puis il faut refaire le tout

Essayez le fichier joint dans lequel j'ai ajouté une feuille Liste_clients.

La liste des clients est complétée par le code et un nom "clients" est créé dans le gestionnaire de noms.
La liste de validation en C7 est définie par une formule reprenant le nom "clients" et n'est pas créée par le code.
A l'utilisation en mettant une lettre ou plusieurs en C7 et vous aurez la liste commençant par ces lettres. Il vous reste à choisir dans les noms affichées puis à appuyer sur ENTREE pour que les TCD soient actualisés

Crdlt

Merci mais je peux avoir la moitié des clients présents sur un onglets et pas sur l'autre, et cette base de client peut varier, comment tout cela peut se mettre à jour sans que je sois obligé de réalimenter manuellement mon onglet liste_clients?

merci bcp

cordialement,

comment tout cela peut se mettre à jour sans que je sois obligé de réalimenter manuellement mon onglet liste_clients

Il n'y a rien à faire manuellement dans la feuille Liste_Clients (vous pouvez même la masquer), une fois des données clients ajoutée das une des 3 feuilles Recap, il vous suffit de cliquer sur le bouton pour remettre tout à jour comme je vous ai expliqué dans un post précédent

Si ok pensez à cloturer le fil

Bonjour,

en effet, cela fonctionne très bien, par contre, si je dois sélectionner plusieurs clients qui font partis du même groupe afin d'avoir un addition dans mes TCD, je ne suis pas en capacité de le faire sur la liste déroulante.

vous avez un astuce svp?

si je dois sélectionner plusieurs clients qui font partis du même groupe afin d'avoir un addition dans mes TCD, je ne suis pas en capacité de le faire sur la liste déroulante.

Hum... vous n'aviez pas précisé çà...

La liste de validation ne permet pas de le faire et donc si vous voulez absolument çà, il faut tout refaire et oublier la liste de validation.

Suggestions :
1. s'inspirer de la liste des clients générées et cocher les clients que vous voulez voir dans les TCD
ou
2. si vous avez un TCD qui contient toujours tous les clients et mois en champ de page on peut partir de ce TCD pour modifier les deux autres. Mais là au vu de vos TCD je doute qu'un TCD aurait tous les mois disponibles

malheureusement non, j'ai vraiment besoin de pouvoir choisir mon ou mes clients depuis un seul et même onglet ...

Re,

j'ai vraiment besoin de pouvoir choisir mon ou mes clients depuis un seul et même onglet ...

Hum... donc il faut tout recommencer

Avant d'aller plus loin, votre feuille Choix se présenterait comme ceci.
Le choix se ferait par case à cocher
Une fois vos choix fait on clique sur le bouton Confirmer choix

Merci de me dire si vous adhérez à cette façon de faire

image

en effet c'est une bonne idée, pour infos, ma liste client peut dépasser les 1200 lignes.

Bonjour

Afin que je vous donne le fichier terminé êtes-vous d'accord de placer le tableau que je vous ai montré dans votre feuille CHOIX ?

Cela a son importance pour le code qui servira pour les cases à cocher et boutons de commande

bonjour,
oui c'est ok sur la feuille CHOIX.

merci bcp

Re

Votre fichier en retour.

1. Sur feuille Choix Client :
- en colonne A la liste des clients venant des 3 feuilles Recap
- en colonne B, vous cochez ou décochez les clients choisis ou non.

Le bouton "Générer clients" remets la liste des clients à jour en colonne B et ajoute les cases à cocher en colonne B

2. Sur feuille Choix Mois :
- en colonne D, les mois en chiffres
- en colonne E, vous cochez ou décochez les mois choisis ou non. vous devez toujours voir la case à cocher dans cette colonne.
NB : Ce tableau ne doit pas être modifié mais si par erreur vous avez supprimé une case à cocher en colonne E, sélectionnez au moins 2 cellules remettez simplement la lettre £

Si ok et terminé pensez à cloturer le fil

Crdlt

Merci pour votre aide, en effet cela fonctionne très bien.

cependant vous n'avez pas un astuce pour me permettre de taper les 3-4 premières lettres dans clients afin de me proposer en sélection les différents noms des filiales d'un groupe, et d'en afficher les résultats sur mes autres onglets après les avoir reportés.

ex: je souhaite afficher les 4 filiales de Leclerc, à savoir: groupe Leclerc, Leclerc 1, leclerc log, pratic leclerc..

comment faire lorsque ces noms seront noyés dans ma liste de 1500 clients?

cordialement,

comment faire lorsque ces noms seront noyés dans ma liste de 1500 clients?

Pourquoi ne mettez-vous pas la fonction filtre sur A1 ? (menu Données -> icône Filtre)
Après il vous suffit de taper "Leclerc" ou 3 ou 4 lettres pour n'avoir que les clients dont le nom contient les lettres

voyez avec la vidéo ci-dessous

filtre

Par contre si vous utilisez les filtres les boutons sont parfois modifiés en dimension ou même masqués
Pour l'éviter --> clic droite sur les deux boutons puis choisir "Taille et propriétés"
Dans la fenêtre à droite, cliquez sur "Propriétés" et cochez la case "ne pas déplacer ou dimensionner.....

Merci, en effet, mais en sélectionnant un maximum de choix, cela me fait disparaitre le bouton génération liste clients...

merci bcp

Rechercher des sujets similaires à "fenetre positionnement"