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 certaines cellules dans autre feuille sous condition


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Assistante
    Inscrit en
    Novembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Novembre 2017
    Messages : 12
    Par défaut Copier certaines cellules dans autre feuille sous condition
    Bonjour à tous,

    Voilà j'essaie de créer une macro me permettant de copier certaines cellules (colonnes D, M,N,O,S et V) de ma Feuil1 ("enregistrements 2018") et de les coller en A2 ( si possible dans l'ordre) dans ma feuil3 "(retours chauffeurs") en A2.
    En sachant que je veux récupérer les données seulement si dans ma colonne T les cellules ont pour valeur "O".

    En pianotant un peu sur les forums, j'ai voulu m'inspirer d'un code et le modifier pour répondre à mes attentes. En vain, même avec l'enregistreur de macro je ne suis pas + avancée.

    Quelqu'un pour un petit coup de pouce ?

    Voici mon code pour l'instant.

    Merci beaucoup

    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
    24
    25
    26
    Sub Macro1()
    '
    ' Macro1 Macro
     
    Dim EN As Worksheet
    Dim RC As Worksheet
    Dim cell As Range
    Dim Mytarget As Range
    Dim Mydata As Range
    Dim lastrow As Long
     
    Set EN = Worksheets("Enregistrement 2018")
    Set RC = Worksheets("retours chauffeurs")
     
    Set Mytarget = RC.Range("A2")
     
    For Each cell In EN.Range("T1:T" & lastrow) ' débogage a ce niveau : Erreur execution 1004 - la méthode 'Range' de l'objet '_worksheet' a echoué
    If cell.Value = "O" Then
    If Mydata Is Nothing Then
     
        Set Mydata = EN.Range("D2,M2,N2,O2,S2,V2")
        Mydata.Copy Mytarget
        End If
        End If
        Next
    End Sub

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour,

    pour extraire certaines colonnes il suffit d'utiliser la fonction INDEX de feuille de calculs (voir l'aide d'Excel),
    un exemple dans cette discussion.

    Sinon voir aussi du côté d'un filtre avancé (meilleure solution à cause de la condition sur la colonne T) …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Membre averti
    Femme Profil pro
    Assistante
    Inscrit en
    Novembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Novembre 2017
    Messages : 12
    Par défaut
    Bonjour Marc-L

    Donc je pourrais utiliser ce code afin d'extraire certaines colonnes ?
    Mon tableau est très grand (A:AC) et bien au moins 2000 lignes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Range("A4:F" & Application.Max(Cells(Rows.Count, 1).End(xlUp).Row, 4))
            VA = Application.Index(.Value, Evaluate("ROW(1:" & .Rows.Count & ")"), [{1,2,6}])
        End With

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Oui en l'adaptant, d'où l'utilité de consulter l'aide d'EXCEL pour la fonction INDEX et l'aide VBA interne pour le reste.

    Mais comme pourtant déjà évoqué dans mon précédent message :
    vu la condition sur la colonne T la meilleure solution reste un filtre avancé.
    Déjà s'y entraîner manuellement en suivant le tutoriel jusqu'à obtenir le bon résultat,
    ensuite il sera aisé de l'automatiser en VBA, sans compter l'Enregistreur de macros
    et les nombreux exemples de filtres avancés dans les discussions de ce forum …

  5. #5
    Membre averti
    Femme Profil pro
    Assistante
    Inscrit en
    Novembre 2017
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Assistante

    Informations forums :
    Inscription : Novembre 2017
    Messages : 12
    Par défaut Je vais essayer
    D'accord,

    Je vais essayer ça.
    Sinon je reviendrais demander de l'aide =)

Discussions similaires

  1. [XL-2010] Afficher une plage de cellule dans une autre feuille sous condition
    Par esimo dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/08/2016, 17h54
  2. [XL-MAC 2011] Copier des cellules dans une autre feuille sous condition
    Par nenel peixoto dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 01/02/2016, 20h11
  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, 20h57
  4. Réponses: 6
    Dernier message: 29/01/2012, 22h45
  5. Copier/coller dans plusieurs feuilles sous condition
    Par lilou86 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 16/11/2009, 12h18

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