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 :

Copie tableau croisé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut Copie tableau croisé
    Bonjour,

    J'ai écris un petit code et qui ne marche pas pour une raison inconnue

    Le code ci dessous, va parcourir 4 feuilles, copie les pivot tables dans chacune d'entre elles et les colles un après un dans une nouvelle feuille. Voici d'abord le code :
    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
    Dim i As Integer
    Dim j As Integer
     
    j = 7
     
    Sheets.Add
    Application.DisplayAlerts = False
     
        For i = 1 To 4
     
            With Worksheets("Sheet" & j).PivotTables("PivotTable" & i).TableRange2.Copy
            End With
     
            With ThisWorkbook.Worksheets("Sheet11")
            .Activate
            .Range("E" & ActiveSheet.UsedRange.Rows.Count + 4).PasteSpecial Paste:=xlValues
            .UsedRange.Columns.AutoFit
            End With
     
            Sheets("Sheet" & j).Delete
     
            j = j + 1
     
        Next i
     
    Application.DisplayAlerts = True
    Le code donc procéde à la copie et colle les tableaux un après un, seul petit bémol : il colle le deuxième tableau à partir de la dernière ligne du tableau précédent qu'importe le nombre que j'utilise ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .Range("E" & ActiveSheet.UsedRange.Rows.Count + 4).PasteSpecial
    Des suggestions, des idées ?

    Merciiiiiii

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    bonjour,

    il ne faut pas utiliser ActiveSheet ... si tu parle du nombre de ligne dans la feuille destinataire, celle-ci est définit par le with

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     .Range("E" & .UsedRange.Rows.Count + 4).PasteSpecial Paste:=xlValues

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut
    Merci pour la réponse

    Même résultat, il commence par la ligne 4 mais continue à coller les autres tableaux sur la dernière ligne du celui précédent

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Et combien il font de ligne tes tableaux ?

    vois aussi si ton numéro de ligne évolue comme tu le souhaite ..:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Debug.print "Tableau :" &  i & " Collé ligne : " &  .UsedRange.Rows.Count
    stop ' voir résultat fenêtre exécution CTRL+G

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 16
    Par défaut
    Pour les tableaux, c'est variable (le pourquoi de vouloir coller dans la dernière ligne). Maintenant avec le debug print, il m'affiche pour Activesheet.usedrange : 43 qui est le nombre des lignes depuis le premier tableau crée et c'est normal, on parle ici de Usedrange.

    Ce qui fait dire que le code va coller dans la dernière ligne active et ignore le + 4 que je lui donne, peut etre cette propriété ne doit pas etre inclus dans une boucle ?

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 176
    Billets dans le blog
    53
    Par défaut
    Bonjour,

    Tout dépends où tu as effectué cette addition de 4
    Ce code ci-dessous écrit correctement à la ligne souhaitée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     With Feuil3
      .Cells(.UsedRange.Rows.Count + 4, 2) = "Hello"
     End With
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. [CR11] Tableau croisé (TC)
    Par silversatch62 dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 10/08/2005, 13h28
  2. [CR] comment faire un tableau croisé
    Par yoyothebest dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 29/08/2004, 18h32
  3. Réponses: 2
    Dernier message: 26/07/2004, 18h08
  4. Réponses: 3
    Dernier message: 26/07/2004, 12h03
  5. [CR9] Colorier les cellules d'un tableau croisé
    Par Koko22 dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 14/11/2003, 16h57

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