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 :

Copier/Coller d'un classeur à un autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut Copier/Coller d'un classeur à un autre
    Bonjour,

    J'ai un classeur "activité.xlsm" et un classeur "du.xlsm".
    Dans mon classeur activité j'ai plusieurs feuilles où une feuille = une activité. C'est sous forme de tableaux croisés dynamiques pour chaque feuille.
    J'aimerais faire un copier/coller de chaque tableaux l'un en dessous de l'autre.
    Sauf qu'il y a différents sites qui font plus ou moins d'activités, ce qui fait que je ne peux pas faire de copier/coller avec des cases figées.
    Il me faudrait le code vba qui me permet de voir dès qu'il n'y a plus rien pour le coller juste en dessous de la dernière ligne.

    Si vous savez, n'hésitez pas !
    Merci d'avance

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Tu peut obtenir la dernière ligne non vide avec le code suivant. (ici sur la colonne "A")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DernièreLigne = Range("A" & Rows.Count).End(xlUp).Row
    Grace a cette variable tu devrais pouvoir selectionnr ton tableau.

    De plus en recalculant cette variable sur la feuille ou tu colle les tableaux après chaque copier-coller et en collant ton tableau à la ligne suivante tu auras ce que tu cherches.

  3. #3
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Salut,

    l'objet PivotTable a une propriété TableRange2
    qui renvoi la plage occupée par un TCD.
    Tu peux ainsi déterminer la ligne à partir de laquelle
    tu peux coller le prochain TCD.

    Cordialement,

  4. #4
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut
    Bonjour,

    J'aurais d'une petite aide, je suis débutant en vba.
    je ne sais pas comment utiliser PIVOT.TABLE. et j'ai besoin de faire des collages spéciaux (forme).

  5. #5
    Membre émérite
    Homme Profil pro
    Directeur
    Inscrit en
    Avril 2003
    Messages
    724
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur

    Informations forums :
    Inscription : Avril 2003
    Messages : 724
    Par défaut
    Hello sebfh,

    peux tu nous envoyer ton classeur,
    en enlevant bien sur les données sensibles!
    Là, c'est trop vague pour t'aider!
    Cordialement,

  6. #6
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut
    Nom : tcd.PNG
Affichages : 499
Taille : 41,0 Ko

    voilà un screen d'une feuille de mon classeur. Les autres sont identiques mais avec les filtres qui diffèrent.
    La ligne en surlignée n'est que la retranscription des filtres sur une seule ligne.

    Donc ce que je voudrais en résultat c'est :

    Nom : tcd2.PNG
Affichages : 527
Taille : 37,0 Ko

    J'espère que tu vois un peu mieux ce que je veux faire
    Ou alors si possible lors de la copie, copier les TCD entiers afin de pouvoir les actualiser

  7. #7
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Landes (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 148
    Par défaut
    et aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'Réglages des filtres des activités
        Workbooks.Open "..."
        Windows("activités.xlsm").Activate
        n = Sheets.Count
        For i = 1 To n
         For j = 1 To n
          Sheets(i).PivotTables("Tableau croisé dynamique" & j).PivotFields("Site"). _
    -->     CurrentPage = "toto"
          Sheets(i).PivotTables("Tableau croisé dynamique" & j).PivotFields("Zone"). _
            CurrentPage = "tata"
         Next j
        Next i
        Windows("activités.xlsm").Close
    Lors de la définition des filtres, j'ai une erreur au niveau de la flèche. Mon code fonctionne quand j'ai fait feuille par feuille mais avec une boucle c'est quand même mieux.
    Seulement il fait les filtres de la première feuille mais bloque ensuite.

+ Répondre à la discussion
Cette discussion est résolue.

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