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 :

VBA - Copier une ligne d'une feuille à une autre selon une condition


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Décembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Décembre 2022
    Messages : 4
    Points : 3
    Points
    3
    Par défaut VBA - Copier une ligne d'une feuille à une autre selon une condition
    Bonjour,

    Je suis débutante dans le code VBA. Cependant, dans le cadre de mon travail, je dois créer un fichier Excel qui prend en considération cette fonction. Tel que mentionné dans le titre, avec un code VBA, je voudrais copier une ligne d'une feuille à une autre, et ce avec une condition.

    Dans ma pièce jointe intitulée Exemple, j'ai 4 feuilles. La feuille Donnees serait remplit au fur et à mesure. Puis, j'ai les feuilles M,R et G qui doivent récupérer les données, si elles sont concernées. L'objectif étant que la feuille Donnees répartissent les projets, dans la bonne feuille, en fonction de la colonne 'Mesure'


    Ainsi,

    Si nous avons un projet dont la colonne mesure est 'M', la ligne entière serait copier dans la feuille M.

    Si nous avons un projet dont la colonne mesure est 'R', la ligne entière serait copier dans la feuille R.

    Si nous avons un projet dont la colonne mesure est 'G', la ligne entière serait copier dans la feuille G.


    Ainsi, selon l'exemple en pièce jointe, nous aurions 2 lignes, dans la feuille M, 2 lignes dans la feuille R et 1 ligne dans la feuille G.



    Merci !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 339
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 339
    Points : 1 955
    Points
    1 955
    Par défaut
    Salut,

    As-tu obligation de passer par VBA ?
    Ce que tu décrit est fesable via Power query.

  3. #3
    Candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Décembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Décembre 2022
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Retour
    Bonjour deedolith,

    L'utilisation de VBA serait préférable, puisque l'équipe en question est familière avec celui-ci. Par contre, si c'est possible avec Power query, je suppose que je pourrais leur expliquer le tout. Comment devrais-je faire ?

    Merci,
    Audrey

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 339
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 339
    Points : 1 955
    Points
    1 955
    Par défaut
    Je n'ai pas les compétences suffisantes pour te faire un cours sur Power Query.
    Le mieux est de te trouver un bon tutoriel, ou une formation.
    Par exemple: https://www.developpez.net/forums/bl...ique-surcroit/

  5. #5
    Candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Décembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Décembre 2022
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Merci grandement. Je vais regarder le lien envoyé précédemment.

    Bonne journée à vous !

  6. #6
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 935
    Points : 5 157
    Points
    5 157
    Par défaut
    Bonjour
    pour VBA testez :
    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 test()
    Application.ScreenUpdating = False
    Dim sh As Worksheet
    Dim filtre
    Dim lig As Long
    lig = Sheets("Donnees").Cells(Rows.Count, 2).Row
    For Each sh In Sheets
    If sh.Name <> "Donnees" Then
    filtre = sh.Name
    MsgBox filtre
    Sheets("Donnees").Range("B4:E" & lig).AutoFilter Field:=3, Criteria1:=filtre
    Sheets("Donnees").Range("B4:E" & lig).SpecialCells(xlCellTypeVisible).Copy Destination:=sh.Range("B4")
    End If
    If Sheets("Donnees").FilterMode Then Sheets("Donnees").ShowAllData
    Next sh
    Application.ScreenUpdating = True
    End Sub

  7. #7
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 935
    Points : 5 157
    Points
    5 157
    Par défaut
    Pour PowerQuery
    il suffit de mettre tes données sous forme de tableau structuré
    démerrer powerQuery
    filtrer tes données selon la mesure
    et chaque fois tu ajoute une ligne dans ta base de données, il suffit de cliquer sur actualiser et tu aura ce que tu veux sans code ni VBA
    solution fortement recommandée voir ton exemple :
    Images attachées Images attachées  

  8. #8
    Candidat au Club
    Femme Profil pro
    Analyse système
    Inscrit en
    Décembre 2022
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 28
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Décembre 2022
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Merci !
    Bonjour !

    Finalement, nous allons utiliser Power query, puisque le tout semble moins complexe avec cette solution.

    Ainsi, merci à deedolith, pour le lien explicatif et merci à BENNASR pour le code VBA et la petite vidéo sommaire associée à Power query.

    Je vous souhaite une merveilleuse journée ,
    Audrey

Discussions similaires

  1. VBA - Copier une feuille
    Par Inazhagi dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/06/2021, 18h00
  2. [XL-2013] copier coller ligne de plusieur feuilles dans une feuille récap
    Par Marie207 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/02/2020, 11h05
  3. [XL-2010] VBA - Copier une feuille Excel à partir d'un fichier XSLM partagé
    Par joboljobol dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/05/2015, 08h01
  4. [Toutes versions] Vba: Copier des lignes sur une autre feuille
    Par yassxavi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/02/2015, 11h48
  5. VBA : copier une image d'une feuille excel à une autre
    Par Equus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2005, 14h01

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