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 :

Copier des cellules dans une autre feuille sous condition


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut Copier des cellules dans une autre feuille sous condition
    Bonjour à tous,
    Je viens de m'inscrire et suis novice dans le VBA !
    Avant tous, je vous remercie d'avance pour l'aide que vous pourrez m'apporter.

    Après avoir passer une trenteine d'heure à chercher ma solution, je me suis inscris sur ce forum car je perd espoir !

    Je vous explique mon cas.
    Je souhaite copier des cellules sur une autres feuilles en fonction d'une condition dans la dernière cellule.

    C'est un listing pour mes adhérents.
    Toutes les infos sont dans le fichier excel.
    Fichier au format XLSM (Mac/ Office 2015)

    Votre aide me sera précieuse...
    Cordialement.
    Merci, merci, merci.....

    ADHERENTS.xlsm

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut
    Personne pour m'aider :-(

    S'il vous plaît. Si quelqu'un peut me donner un coup de main, je vous serait gratifiant....

    Merci d'avance.
    Cordialement.

  3. #3
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    bienvenu parmi nous.

    je t'invite à lire le règlement du forum, tu y apprendras la méthode pour poser tes questions :

    - pas de fichier joint (sauf demande d'un contributeur)
    - expliquer clairement le contexte
    - montrer le code que tu as essayé de faire
    - indiquer ce qui ne va pas, la ligne de code où éventuellement ça plante (avec le message d'erreur que tu as)


    Décris simplement comment sont structurées tes données (nombre de colonnes, lignes, type de données etc...), sur quelle colonne faut vérifier la condition de la dernière cellule, quelle est la condition .... etc

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut
    Merci pour tes infos,

    J'ai trouver cette ligne de code mais je n'arrive pas à l'adapter à mon fichier...

    -------------------------------------------------
    Private Sub Worksheet_Activate()

    Sheets("Commande").Range("A7:H6845").ClearContents

    li = Sheets("Données").Range("B7").End(xlDown).Row
    If Sheets("Données").Range("B7") = "" Then MsgBox "Pas de données saisies!", vbCritical: Exit Sub
    If Sheets("Données").Range("B8") = "" Then li = 7
    ligne = 7

    For i = 7 To li
    If UCase(Sheets("Données").Range("A" & i)) = "X" Then
    Cells(ligne, 1) = Sheets("Données").Cells(i, 2)
    Cells(ligne, 2) = Sheets("Données").Cells(i, 3)
    Cells(ligne, 3) = Sheets("Données").Cells(i, 4)
    Cells(ligne, 5).FormulaR1C1 = "=RC[-1]*RC[-2]"
    ligne = ligne + 1
    End If

    Next
    Range("D7").Select


    End Sub

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur commercial
    Inscrit en
    Février 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur commercial
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2016
    Messages : 4
    Par défaut
    Je vous explique mon cas.

    J'ai une listing de personnes dans ma 1er feuille qui s'appelle "Liste CDMG"
    Colonne A à E remplie avec les coordonnées de chaque personne.
    Colonne I (condition)

    Si dans la colonne I, il y a la condition "X",
    Alors la ligne ou il y a le "X", est copier dans la feuille "Adhérents".
    En effaçant les lignes vides.
    Cette macro doit se faire automatiquement et non seulement à l'ouverture du fichier.

    Merci de votre aide,
    Je reste dispo si besoins...

    Cordialement.

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 161
    Billets dans le blog
    5
    Par défaut
    avec un outil très pratique (le filtre avancé Excel), ceci devrait correspondre à ce que tu souhaites ?


    cette procédure est à copier directement dans le module de la feuille Adhérent
    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
    Private Sub Worksheet_Activate()
     
    ' efface la feuille
    Cells.Delete
     
    With Worksheets("Liste CDMG")
        ' écriture des critères du filtre
        Cells(1, 1).Value = .Cells(1, 9)
        Cells(2, 1).Value = "X"
     
        ' filtre avancé sur la plage de données
        ' avec récupération du résultat vers la feuille de destination
        .Cells(1, 1).CurrentRegion.AdvancedFilter Action:=xlFilterCopy, _
                                                  CriteriaRange:=Cells(1, 1).CurrentRegion, _
                                                  CopyToRange:=Cells(4, 1)
     
        ' nettoyage de la zone de critère
        Cells(1, 1).Resize(3, 1).EntireRow.Delete
    End With
     
    End Sub
    à chaque fois que tu actives la feuille Adhérent :

    - la feuille est complètement vidée
    - la ligne de titre et toutes les lignes ayant un "X" en colonne I (de la feuille "Liste CDMG") s'affichent

Discussions similaires

  1. Réponses: 1
    Dernier message: 31/12/2015, 18h05
  2. [XL-2013] Copier des cellules dans une autre feuille selon critères en VBA
    Par Hocked dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/07/2015, 20h54
  3. Copier des lignes dans une autre feuille sous condition
    Par Maya06 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2014, 21h57
  4. [XL-2010] copier des cellules vers une autre feuille
    Par fredplusvar dans le forum Excel
    Réponses: 1
    Dernier message: 22/03/2014, 13h34
  5. [XL-2003] Copier des lignes dans une autre feuille à la première ligne vide
    Par PasDan dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/09/2010, 14h34

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