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

Excel Discussion :

TCD couper les liens avec la base pour en faire un simple tableau


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut TCD couper les liens avec la base pour en faire un simple tableau
    Bonjour à tous,

    Voilà je travaille sur EXCEL 2013 , j'ai un fichier qui comporte un TCD par onglet (8 onglets donc 8 TCD). Ce que je souhaite obtenir c'est le même fichier avec les données mais plus de lien TCD avec une simple manip.

    La raison : je dois fournir à chaque utilisateur les données qui le concerne (filtre préalable dans les TCD)sans qu'il ne puisse accéder aux données des autres.

    Vœu pieux : trouver une méthode qui me permette de garder le format de mes différents tableaux mais couper le lien avec la source , pour le moment je n'ai rien trouvé de mieux qu'un simple copier coller valeurs . Le souci c'est que je perds le format et les fonctions de somme des TCD et j'ai surtout plus de 130 utilisateurs.....

    Merci pour votre aide

  2. #2
    Membre actif
    Femme Profil pro
    Technicienne
    Inscrit en
    Avril 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicienne

    Informations forums :
    Inscription : Avril 2018
    Messages : 153
    Points : 264
    Points
    264
    Par défaut
    Bonjour

    Dans le genre bricolage... Si les tableaux ont tous exactement la même structure (nombre de lignes, de colonnes...), tu peux mettre en forme une zone dans laquelle tu viendras coller tes valeurs.

    Sinon, au lieu de copier le tcd, tu copies les valeurs du tableau source, filtrées pour n'avoir que celles qui concernent l'utilisateur. Copier ces valeurs dans un nouveau tableau, et créer le tcd utilisateur à partir du tableau.

    Édit : euh pour la pratique regarde plutôt la proposition de 78chris ci-dessous !
    Chez moi : XL-MAC 2011, pas de VBA.
    C'est en bûchant qu'on devient bûcheron.
    C'est en mouchant qu'on devient moucheron.

  3. #3
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour à tous

    Depuis un TCD filtré, en double cliquant sur le total général tu générez un tableau des données sources correspondantes.

    Reste à changer la source du TCD pour ce tableau puis exporter les deux onglets dans un classeur pour l'utilisateur..

    Automatisable par VBA.
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci merci merci beaucoup pour cette solution qui fonctionne parfaitement.

    Par contre je ne suis vraiment pas doué question VBA, et utiliser cette solution sans mécanisation vu le nombre d'onglets et de fichiers c'est juste colossale....donc je suis preneur de toutes aides pouvant m'aider à transcrire cette manip en VBA.

  5. #5
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 420
    Points : 16 264
    Points
    16 264
    Par défaut
    Bonjour

    Si le champ filtré est en zone page du TCD, et tous les TCD concernés code à adapter (suppose 1 seul TCD par page)
    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
    Sub export()
    Dim Chemin As String, Champ As String, Nom As String
    Dim TBas As Long, TDroite As Integer
    Dim WS As Worksheet, WS2 As Worksheet
    
        Chemin = "t:\Temp\" ' A adapter
        Champ = "Produit" 'A adapter
        
        For Each WS In ThisWorkbook.Worksheets
        If Not WS.PivotTables.Count = 0 Then
            WS.Activate
            With WS.PivotTables(1)
                Nom = .PivotFields(Champ).CurrentPage
                TBas = .TableRange1.Row + .TableRange1.Rows.Count - 1
                TDroite = .TableRange1.Column + .TableRange1.Columns.Count - 1
                WS.Cells(TBas, TDroite).Select
                Selection.ShowDetail = True
                Set WS2 = ActiveSheet
                WS2.Name = Nom
            End With
            ActiveWorkbook.Worksheets(Array(WS.Name, Nom)).Copy
            With ActiveWorkbook
                .Worksheets(WS.Name).PivotTables(1).SourceData = .Worksheets(Nom).ListObjects(1)
                .SaveAs Chemin & Nom
                .Close
            End With
            Application.DisplayAlerts = False
            WS2.Delete
            Application.DisplayAlerts = True
        End If
        Next WS
    End Sub
    Chris
    PowerQuery existe depuis plus de 13 ans, est totalement intégré à Excel 2016 &+. Utilisez-le !

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.
    Confucius

    ----------------------------------------------------------------------------------------------
    En cas de résolution, n'hésitez pas cliquer sur c'est toujours apprécié...

Discussions similaires

  1. Récuperer les liens avec VB2005
    Par devnino dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/06/2007, 14h04
  2. Problème de Lien avec la base de données
    Par EricDou dans le forum Langage
    Réponses: 4
    Dernier message: 15/05/2007, 14h19
  3. Tester les liens d'une base fractionnée
    Par Gabout dans le forum Access
    Réponses: 2
    Dernier message: 08/03/2007, 22h52
  4. Lien avec une base de donnée en javascript
    Par nissarti dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 13/03/2006, 18h05
  5. [DAO] Comment gérer les liens avec la bdd dans mes classes?
    Par Wormus dans le forum Autres
    Réponses: 6
    Dernier message: 22/02/2006, 16h14

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