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 colonne selon valeurs d'une autre colonne


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Points : 13
    Points
    13
    Par défaut VBA Copier colonne selon valeurs d'une autre colonne
    Bonjour à tous,

    Je suis en train de mettre en place un code VBA me permettant de copier/coller des colonnes d'un tableau vers d'autres feuilles.

    Jusque-là, tout va bien et ma macro fonctionne à merveille.

    Cependant, je souhaiterais ajouter une condition, je voudrais copier/coller mes valeurs présentes dans mes colonnes uniquement si la colonne D du tableau contient la valeur "M".

    Si la colonne en question ne contient pas M, alors on ne copie pas les éléments présents dans les cellules des autres colonnes. Pour information, dans cette colonne D, je n'aurai pas de M "éparpillés", ces derniers se suivront les uns à la suite des autres jusqu'à ce qu'il n'y en ait plus et qu'il y ait une autre lettre.

    Je vous joins une partie du code que j'ai mis en place et sur lequel j'aimerai rajouter cette condition:

    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
    Sub Macro2()
    Dim DerLigne As Long
    Sheets("refok").Range("H7:H1100").Copy
    Sheets("MAJ").Activate
    DerLigne = Range("C65536").End(xlUp).Row + 1
    Range("C" & DerLigne).Select
    Selection.PasteSpecial Paste:=xlPasteValues
    DerLigne = Range("O65536").End(xlUp).Row + 1
    Range("O" & DerLigne).Select
    Selection.PasteSpecial Paste:=xlPasteValues
    DerLigne = Range("W65536").End(xlUp).Row + 1
    Range("W" & DerLigne).Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Sheets("refok").Range("T7:T1100").Copy
    Sheets("MAJ").Activate
    DerLigne = Range("E65536").End(xlUp).Row + 1
    Range("E" & DerLigne).Select
    Selection.PasteSpecial Paste:=xlPasteValues
    (...)
    End Sub
    La condition que j'aimerais ajouter avant le début de ce code ressemblerait à cela:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Sheets("refok").Range("D7:D1100") = "M" Then
    J'ai bien entendu essayé cela mais ca ne fonctionne pas.

    Pouvez-vous m'aider?

    En vous remerciant par avance.

    Bonne journée.

  2. #2
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    bonjour,
    l'excellente méthode AutoFilter est pratique dans ton cas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets("refok").Range("D6:D1100").Autofilter 1, "M"
    pour ne pas continuer le reste du code, il te faut t'assurer que le filtre a obtenu des résultats, détermine si derLig est hors limite en l'affectant ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DerLigne = Range("d6").End(xlDown).Row
    If DerLigne > 1100 Then 'aucun résultat de filtre
    ....
    à toi de jouer pour les combinaisons.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2013
    Messages : 16
    Points : 13
    Points
    13
    Par défaut
    Bonsoir NVCfrm,

    Je viens de lire ta réponse et je l'ai mise en place sur mon tableau.

    Cela fonctionne à merveille! J'ai apporté quelques modifications mais sinon c'est parfait.

    Je te remercie pour ton aide.

    Bonne soirée et bon weekend!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Calcul Somme Colonne Listview Selon Valeur d'une autre colonne.
    Par alfadz dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 22/09/2014, 20h18
  2. copier lignes selon valeur d'une colonne
    Par steeeve34 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 13/09/2012, 17h38
  3. Réponses: 7
    Dernier message: 27/04/2012, 17h06
  4. Réponses: 9
    Dernier message: 12/04/2012, 17h03
  5. Alias colonne dépendant de la valeur d'une autre colonne
    Par daijoubu dans le forum Langage SQL
    Réponses: 6
    Dernier message: 31/08/2005, 09h17

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