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 :

Créer une macro de copie automatique des données d'un classeur à l'autre


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2021
    Messages : 1
    Par défaut Créer une macro de copie automatique des données d'un classeur à l'autre
    Bonjour,

    Je vous remercie d'avance pour l'aide que vous pourriez m'apporter. Voici mon problème :

    J'ai un classeur excel entre les mains, une fiche de suivie plus exactement, que vont être amenés à remplir plusieurs collaborateurs.

    Je souhaiterai créer une macro sous forme de bouton à la fin de la fiche permettant d'envoyer certaines données (textes) de cellules particulières vers un autre classeur.

    En gros, les cellules qui m'intéressent sont précisément :

    - La cellule F11 que je souhaite voir sur la A1 de l'autre classeur,
    - La cellule F13 que je souhaite voir sur la B1 de l'autre classeur,
    - La cellule B52 que je souhaite voir sur la C1 de l'autre classeur,
    - La cellule B56 que je souhaite voir sur la D1 de l'autre classeur,
    - La cellule B86 que je souhaite voir sur la E1 de l'autre classeur,
    - La cellule B92 que je souhaite voir sur la F1 de l'autre classeur,
    - Et la cellule E137 que je souhaite voir sur la G1 de l'autre classeur.

    Jusqu'ici, ça ne pose pas tellement de soucis (mis à part que je ne maitrise pas le langage pour créer une macro...). Néanmoins, j'aimerai qu'à chaque fois qu'un collaborateur rempli la fiche et clique sur ce bouton "Terminé" sur lequel serait apposé la macro, les cellules ci-dessus soient copiées sur l'autre classeur sans remplacées celles copiées précédemment. De façon à ce que les données de l'employé 1 atterrissent sur la ligne 1, celles de l'employé 2 sur la ligne 2 etc...

    Est-ce possible ?

    Vous remerciant à nouveau et vous souhaitant une excellente fin de journée.

    Cordialement,

    C.RV

  2. #2
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Clem, Bonjour le Forum,

    Bienvenue sur ce forum.

    Pour ma part.
    Le fichier destinataire serait constitué d'une table de données (tableau structuré).
    L'alimentation de celle-ci s'effectuerait par ajout d'une ligne pour chaque intervention.
    La correspondance cellules du classeur initial - colonnes de la table pourrait s'effectuer selon 2 processus possibles
    1 - Nom définis de cellules du classeur initial = Nom (titre) des colonnes (champ) du tableau structuré.
    (Au passage, souvent les noms de contrôles d'un formulaire sont indexés sur le nom de la colonne (champ) de la table de données, exemple "Txt_Nom" pour la colonne "Nom" appelée par ListColumns)
    2 - Table intermédiaire de mappage comportant le nom des cellules ci-dessus avec correspondance du nom de la colonne (champ) de la table de données.
    (Processus utilisé sauf erreur par Pierre et Philippe)

    Dans les 2 cas,
    1 - les cellules reportées seraient nommées
    2 - la gestion d'une boucle génèrerait cette alimentation.

    Restant à ta disposition.

  3. #3
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Je reviens.

    Si les noms de champs (entêtes de colonnes) du tableau structuré se "Monseconclsseur" sont ceux des cellules nommées du classeur d'origine ("Monpremierclasseur"),
    alors on peut passer le nom de chaque colonne à l'objet Range.

    Testé
    A adapter

    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
    Option Explicit
     
    Public Sub maj_récap()
     
    Dim letablo As ListObject
    Set letablo = Workbooks("Monsecondclasseur").Worksheets("LesDonnées").ListObjects("T_Données")
     
    Dim larow As ListRow
    Set larow = letablo.ListRows.Add
     
    Dim i As Integer
     
    For i = 1 To letablo.ListColumns.Count
            With letablo.ListColumns(i)
                    .DataBodyRange.Cells(larow.Index, 1).Value = ThisWorkbook.Worksheets(1).Range(.Name).Value
            End With
    Next i
     
    Set larow = Nothing
    Set letablo = Nothing
     
    End Sub
    Ainsi les données peuvent évoluer sans problème (nouvelle cellule avec nouveau nom ==> nouvelle colonne du tableau structuré avec le même nom)

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2019, 08h54
  2. [XL-2013] Macro vba copie ,decaler des données sur une colonne
    Par lorao12 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/06/2018, 16h31
  3. [XL-2007] Copie automatique des données de TextBox avec calcul
    Par Jcorbeaux dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2012, 23h52
  4. [XL-2007] Copie automatique des données de TextBox
    Par Jcorbeaux dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 17/01/2012, 00h31
  5. [XL-2003] copier des données d'un classeur à un autre à l'aide d'une macro
    Par tottiasr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/05/2011, 14h19

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