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 :

Macro pour modifier source de données d'un TCD [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut Macro pour modifier source de données d'un TCD
    Bonjour à tous!

    Je viens vers vous car j'ai un petit soucis avec mes TCD. Ce sont des TCD déjà crées et ils me suffit de les actualiser. Cependant, le problème est que la source de données (qui se trouve dans ma première feuille) varie en nombre de ligne mais pas en nombre de colonne. Je voudrais donc changer la source de donnée ou du moins faire en sorte que mes TCD prennent automatiquement les nouvelle ligne en compte. Je voudrais donc automatisé cela en créant une macro mais le problème est que je ne sais pas quelle formule il faut utiliser. J'ai essayé de faire un enregistrement manuel mais rien n'est apparu dans le code excel. J'espère que je suis assez clair dans mon explication, dans le cas contraire n'hésitez pas à m'en faire part!

    Merci d'avance à vous !

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,


    Tu pourrais tout simplement changer manuellementla source des données en choississant les colonnes entieres

    remplacerpar

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut
    Oui mais je voudrais savoir s'il existe un code VBA permettant de le faire. J'ai fais quelque recherche et je crois que c'est avec Datasource.

    Merci quand même pour ta réponse!

  4. #4
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    le code pour changer le datasource

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
            "Feuil1!R1C1:R5C2"
    Code donné par l'enregistreur de macro. Bizard que ca ne t'ais rien donnée

  5. #5
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut
    Merci pour ta réponse!

    Alors j'ai essayé de remanier ton code de cette façon pour qu'il prenne la dernière cellule non vide cependant j'ai une erreur lors de l'exécution et je pense que la syntaxe n'est pas bonne non plus. Le voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For i = 1 to ActiveSheet.UsedRange.Rows.Count
    WorkSheet(2).PivotTableWizard SourceType:=xlDatabase, SourceData:= _
            "Export!A & i : AF & i"
    Next i

  6. #6
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Il faut mettre l'adresse au format R1C1

  7. #7
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut
    Ah d'accord et R1C1 correspond à la première ligne de la première colonne c'est ça ?

  8. #8
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Je ne suis pas un expert de ce mode d'adressage, mais ca correspond a l'adresse par rapport a la cellule active

  9. #9
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut
    En effet, après quelque recherche R correspond au numéro de la ligne et C au numéro de la colonne. Ta formule fonctionne bien et je te remercie cependant il me reste un dernier problème. Je voudrais sélectionner la première cellule (R1C1) et la dernière cellule non vide de ma dernière colonne pour qu'il s'adapte a mon export selon s'il est plus grand ou plus petit que le précédent. Mais je ne sais pas trop comment m'y prendre, j'ai essayé de faire comme ci-dessous mais ça ne fonctionne pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Plage = "Export" & "!" & Range("A1").Resize(Cells.SpecialCells(xlCellTypeLastCell).Row, Cells.SpecialCells(xlCellTypeLastCell).Column).Address(ReferenceStyle:=xlR1C1, _
                RowAbsolute:=True, ColumnAbsolute:=True)
     
     ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:=Plage
    Il me met une erreur d'exécution 1004 sur la dernière ligne.
    Merci!

  10. #10
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    derli = Range("AF65536").End(xlUp).row  'je suis en excel 2003
    derco=range("IV1").end(xtoleft).column  'je suis en excel 2003
     
    ActiveSheet.PivotTableWizard SourceType:=xlDatabase, SourceData:= _
            "Export!R1C1:R" & derli & "C" & derco

  11. #11
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut
    Merci pour ta réponse.

    Cependant je ne comprends pas ta variable derco ...

    Elle permet d'indiquer sur quelle colonne se trouve ma dernière cellule ???

  12. #12
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Excel 2003, la dernière colonne est IV
    la dernière cellule (N° de colonne) non vide de la ligne 1 est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range("IV1").end(xltoleft).column
    Regarde dans la FAQ, tu trouves des explications étendues (désolé, je n'ai pas le lien)

  13. #13
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 54
    Par défaut
    C'est bon j'ai trouvé la solution dans la FAQ.

    Merci beaucoup pour votre aide!

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

Discussions similaires

  1. [XL-2003] VBA : Macro pour modifier source externe de plusieurs TCD
    Par McQwark dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 07/11/2013, 12h15
  2. [HTML] Macro pour modifier plusieur fichier html
    Par naouah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 16/01/2009, 09h40
  3. Réponses: 6
    Dernier message: 16/11/2008, 13h15
  4. Réponses: 3
    Dernier message: 08/07/2008, 17h08
  5. [ODBC] Modifier source de données ODBC avec le VBA
    Par mathias dans le forum VBA Access
    Réponses: 6
    Dernier message: 07/05/2008, 16h15

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