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

Macros et VBA Excel Discussion :

Créer un TCD à destinations variables


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut Créer un TCD à destinations variables
    Bonjour,

    je suis un autodidacte du VBA, mais la je galère !
    J'essaie de créer un TCD dans un classeur ou le nom de la feuille est variable et les données sont dans un autre fichier.
    Je suis parti d'une macro enregistrée qui fonctionne, mais voila, pas mon script.

    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
    Sub CreerTCD()
    Dim Moisencours As String
    Dim Lr As Integer
    Moisencours = UCase(Mid(Format(Date, "Mmmm"), 1, 1)) & Mid(Format(Date, "Mmmm"), 2) & " " & Format(Date, "YYYY")
     
    Call Nouvelle_Feuille
    Workbooks.Open Filename:="\\U\Sollicitations\Données.xlsx"
    Worksheets(Moisencours).Activate
    Lr = Lastrow("A")
    Workbooks("Stats.xlsm").Activate
    MsgBox "[Données.xlsx]" & Moisencours & "!R1C1:R" & Lr & "C9"
        ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            "[Données.xlsx]" & Moisencours & "!R1C1:R" & Lr & "C9", Version:=xlPivotTableVersion12). _
            CreatePivotTable TableDestination:=Moisencours & "!R1C1", TableName:= _
            "TCD1", DefaultVersion:=xlPivotTableVersion12
    '   ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    '       "[Données.xlsx]Janvier 2013!R1C1:R13C9", Version:=xlPivotTableVersion12). _
    '       CreatePivotTable TableDestination:="Feuil1!R1C1", TableName:= _
    '       "Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion12
    La partie en commentaire est celle enregistrée automatiquement

    Lastrow est une fonction que j'ai crée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Lastrow(Col As String) As Integer
    Lastrow = Range(Col & Rows.Count).End(xlUp).Row
    End Function
    Alors svp, aidez moi à comprendre mon erreur parce que la, je suis perdu.

    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Quel est le message d'erreur ? Essaie de changer le nom du TCD, il ne peut pas y en avoir 2 avec le même nom sur la même feuille.

  3. #3
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut
    Alors le message d'erreur, c'est:
    Erreur d'execution 5: Argument ou appel de procédure incorrect.
    meme avec le nom du TCD changé

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Est-ce que tu ne devrais pas mettre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableDestination:="Feuil1!R1C1"
    au lieu de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TableDestination:=Moisencours & "!R1C1"

  5. #5
    Membre habitué
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Janvier 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Assistant aux utilisateurs

    Informations forums :
    Inscription : Janvier 2013
    Messages : 10
    Par défaut
    C'est exactement ce qui est dans mon code ...
    La partie en commentaire me servant d'exemple.

    Edit: j'avais mal lu, c'est bien de l'inverse dont j'ai besoin.
    En effet, il y a une feuille par mois, et cela va donc changer chaque mois, d'ou la nécessité de mettre une variable à la place du nom de la feuille.

    J'ai fait le test quand même et ca marche !!!
    Mais c'est pas ce que j'ai besoin ...
    une autre solution ?

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Oui, mais ou j'ai raté quelque chose, ou la feuille MoisEnCours se trouve sur le classeur distant, or dans le paramètre "TableDestination", tu précises le nom de la feuille, mais pas celui du classeur, or le classeur actif est "Stats.xlsm", pas "Données.xlsx".

Discussions similaires

  1. [XL-2003] Créer en vba un 2eme TCD à la suite du premier (Lignes du TCD étant variable)
    Par Chagui dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/05/2011, 18h09
  2. Créer un nom de variable qui s'incrémente dans une boucle
    Par Pietro_L dans le forum Général VBA
    Réponses: 3
    Dernier message: 09/05/2007, 15h10
  3. Réponses: 2
    Dernier message: 02/04/2007, 09h56
  4. Créer des noms de variables dynamiquement avec JSP
    Par Zakapatul dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 26/02/2007, 14h24
  5. Réponses: 4
    Dernier message: 13/05/2004, 13h15

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