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 :

Excel : consolidation de données sur une seule feuille


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Excel : consolidation de données sur une seule feuille
    Bonjour,

    Je me suis mis à explorer les capacités de vba pour étendre mes connaissances d'excel. Je me suis lancé dans la lecture du livre VBA pour excel 2003 mais j'aimerais vraiment trouver une macro pouvant m'aider assez rapidos.

    Voici j'explique le problème, mon classeur se compose de 4 feuilles :
    - 3 se composant de données différentes mais de structures identiques
    - 1 nommée "conso" servant à réceptionner les données des 3 premières.

    La 1ère ligne de la feuille conso est déjà nommée par les titres servant pour ma pivot table. La colonne M sert à indiquer la société pour laquelle je copie les données. Donc en tout je n'aurais que 3 noms correspondant aux 3 feuilles. Dans le code c'est ainsi que j'impute manuellement le nom "société ABC". Après je sélectionne les colonnes M jusque à Z pour étendre les formules contenues dedans. A chaque fois que je copie les données venant des 3 feuilles, je delete la 1ère ligne correspondant aux intitulés des colonnes des 3 feuilles.

    Le code crée est fait par l'enregistreur macro. Je fait tout simplement un CTRL+* dans une des 3 feuilles, je la paste special-value dans la feuille conso, je delete la 2ème ligne de la feuille (correspondant aux titres des 3 feuilles). Après j'indique le nom de la société dans la colonne M et j'étends la sélection de M à Z sur les autres cellules.


    Le gros problème c'est :
    - le programme m'étends toujours mes formules jusque la ligne 81 quelque soit le nombre de données copiés. Si j'en ai 20 ou 300, ca ne change rien. J'aimerais qu'il me copie mes formules sur les données transferées.
    - est-il possible de ne pas copier la ligne 1 des 3 feuilles, elle est de toute manière deleté par après ?

    Voilà ici j'ai mis le code crée seulement quand je colle la première partie. Pour les autres, je les copie très loin les unes des autres. Je fais toutes les opérations décrites ci-dessus et puis je fais un sort. Bon je suppose qu'il y a un moyen d'indiquer par vba que la macro me copie la 2ème série de données à la 1ère ligne disponible dans la feuille de conso mais bon c'est pas encore urgent de trouver cette partie.

    PS je débute dans la 1ère feuille à transférer vers la feuille de conso

    Merci,
    séb


    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
    Sub ESSAI()
     
        Selection.CurrentRegion.Select
        Selection.Copy
        Sheets("Conso").Select
        Range("A2").Select
        Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
            False, Transpose:=False
        Rows("2:2").Select
        Application.CutCopyMode = False
        Selection.Delete Shift:=xlUp
        Range("M2").Select
        ActiveCell.FormulaR1C1 = "Company ABC"
        Range("M2:Z2").Select
        Selection.AutoFill Destination:=Range("M2:Z81")
        Range("M2:Z81").Select
    End Sub
    Edit
    N'oublie pas de mettre les balises code et /code. Tu sélectionnes ton code et tu fais un clic sur code...
    T'as rien à faire, je les ai ajoutées...

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Comme tu mets
    Selection.CurrentRegion.Select
    pour sélectionner la plage voulue, tu peux utiliser la ligne et la colonne de ta plage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        DernièreLigne = Selection.CurrentRegion.End(xlDown).Row
        DernièreColonne = Selection.CurrentRegion.End(xlToRight).Column
    Pour la plage à copier, tu peux alors faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range(cells(2,1),Cells(DernièreLigne,DernièreColonne)).select
    A+

    Edit
    J'ai ajouté la parenthèse que j'avais oubliée... Tu corriges aussi sinon ça marchera pas...

Discussions similaires

  1. [XL-2013] Actualisation données externe sur une seule feuille
    Par Douis33 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 20/05/2015, 16h18
  2. trier et copier des données sur une autre feuille excel
    Par mirage37 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/07/2012, 17h08
  3. Excel-copier des lignes sur une autre feuille
    Par petecul dans le forum Excel
    Réponses: 7
    Dernier message: 13/09/2007, 02h56
  4. Imprimer une page web sur une seule feuille ?
    Par guidav dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 21/04/2006, 11h26
  5. [VBA-E] calculs automatique sur une seule feuille
    Par repié dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/03/2006, 11h53

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