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 :

Indiquer l'origine des données après copier-coller


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Indiquer l'origine des données après copier-coller
    Bonjour à tous!

    Je suis un étudiant en Contrôle de Gestion et nous avons un projet d'Excel VBA à réaliser...
    Je ne connais pas trop VBA... C'est la première fois que je travaille avec et donc beaucoup galéré, mais je le trouve très utile et intéressant...

    Donc voici ma question...
    Je dois créer une base de données à partir de différentes feuilles dans un même classeur...
    Après avoir beaucoup essayé et recherché j'ai bien réussi à copier et coller les données des différentes feuilles sur une seule de la façon dont j'avais besoin...
    Mais maintenant j'ai besoin d'indiquer sur la base de données l'origine de ces données

    Par exemple, la ligne 1 provient de la feuille "janvier", la ligne 2 de "février" et ainsi de suite...

    Est-il possible avec VBA de mettre le nom de la feuille d'origine des cellules copiées sur une colonne de la feuille de destination??

    Merci d''avance pour votre aide!!!!

    Gustavo.

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    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 : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Sans précision il est impossible de t'apporter une réponse pertinente.
    En effet, la copie se fait-elle déjà par une procédure VBA ou bien est-elle le résultat d'un Copier/Coller manuel ?
    Si c'est une procédure VBA qui effectue la copie, il serait intéressant d'avoir le code utilisé.
    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

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2014
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Code VBA
    Bonjour Philippe!

    Merci beaucoup de ta réponse!!

    Le copier-coller a été fait avec un macro
    Voici le code utilisé

    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
    Sub Mise_a_jour_synthese_salarie()
        Dim i As Integer
        Z = Sheets("Synthese Salarie").Range("B40000").End(xlUp).Row + 1
        compteurmois = Sheets("Autres").Range("A15").End(xlUp).Row
     
        For x = 2 To compteurmois
     
            Mois = Sheets("Autres").Range("A" & x).Text
     
            i = Sheets(Mois).Range("A37").End(xlUp).Row
     
            Sheets(Mois).Range("A13:C" & i).Copy
            Sheets("Synthese Salarie").Range("B" & Z).Select
            Sheets("Synthese Salarie").Range("B" & Z).PasteSpecial xlPasteValues
     
            Sheets(Mois).Range("AJ13:AL" & i).Copy
            Sheets("Synthese Salarie").Range("E" & Z).Select
            Sheets("Synthese Salarie").Range("E" & Z).PasteSpecial xlPasteValues
     
            Z = Sheets("Synthese Salarie").Range("B40000").End(xlUp).Row + 1
        Next x
     
    End Sub
    J'ai des feuilles nommées janvier, février, mars.... d'où les données sont prises pour les coller sur la feuille "Synthèse salarié"
    C'est que je voudrais faire c'est de faire apparaitre la feuille d'origine de chaque donnée sur un colonne de la feuille "Synthèse salarié"

    Merci beaucoup pour ton aide!

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 766
    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 : 12 766
    Points : 28 625
    Points
    28 625
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Etant donné qu'il ne semble pas avoir de critères pour copier les lignes, il n'y a aucune raison de les copier ligne par ligne. De plus la méthode Select et l'objet Selection sont à proscrire en VBA.
    De plus pour rendre pérenne ton application, il est préférable de travailler avec des variables objets.
    Exemple d'une copie de la plage de données se trouvant sur la feuille [db] vers la cellule A1 de la feuille nommée [Exportation]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Exportation()
     Dim rngSource As Range, rngTarget As Range
     With ThisWorkbook
      Set rngSource = .Worksheets("db").Range("A1").CurrentRegion
      Set rngTarget = .Worksheets("Export").Range("A1")
     End With
     rngSource.Copy rngTarget
     Set rngSource = Nothing: Set rngTarget = Nothing
    End Sub
    Pour connaître le nom de la feuille d'origine (feuille source)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox rngSource.Worksheet.Name
    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

Discussions similaires

  1. Récupération des données après restauration du système avec Ghost
    Par digital prophecy dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 12/06/2007, 14h05
  2. Réponses: 9
    Dernier message: 03/11/2006, 10h30
  3. Réponses: 4
    Dernier message: 21/04/2006, 17h59
  4. Récuperer des données aprés formatage
    Par WELCOMSMAIL dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 21/04/2006, 10h56
  5. [VBA-E] afficher des données apres saisie dans cellule
    Par user0505 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/04/2006, 14h04

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