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 lignes et coller dans un autre fichier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mai 2016
    Messages : 18
    Par défaut Copier certaines lignes et coller dans un autre fichier
    Bonjour,

    Je souhaite copier les lignes d'un classeur pour les coller dans un autre classeur.

    Les lignes à copier sont les lignes qui contiennent le mot KO en colonne 49 ou 50.

    J'ai essayer la macro suivante, mais cela ne fonctionne pas, car il sélectionne que la 1ère ligne avec KO, et je n'arrive pas à indiquer dans la macro comment coller dans le classeur "Erreurs".

    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 Copier_doublons()
    Dim MyRange As Range
    Dim L As Long
    Set MyRange = ActiveSheet.Range("A1").CurrentRegion
    For L = MyRange.Rows.Count To 1 Step -1
     
     MyRange(L, 49).Select ' Un Select  temporaire pour savoir quelle cellule cause l'erreur
     
      If MyRange(L, 49).Value = "KO" Then
     
       MyRange(L, 49).EntireRow.Copy
     
     If MyRange(L, 50).Value = "KO" Then
     
       MyRange(L, 50).EntireRow.Copy
     
      End If
      End If
      Next
     End Sub
    Merci d'avance de votre aide,

    Aurélien

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Aurélien, bonjour le forum,

    Peut-être comme ça :

    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
    27
    Sub Copier_doublons()
    Dim TV As Variant 'déclare la varaible TV (Tableau des Valeurs)
    Dim NL As Integer 'déclare la varaible NL (Nombre de Lignes)
    Dim NC As Byte 'déclare la varaible NC (Nombre de Colonnes)
    Dim I As Integer 'déclare la varaible I (Incrément)
    Dim J As Byte 'déclare la varaible J (incrément)
    Dim K As Integer 'déclare la varaible K (incrément)
    Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)
     
    TV = ActiveSheet.Range("A1").CurrentRegion 'définit le tableau de valeurs TV
    NL = UBound(TV, 1) 'définit le nombre de lignes NL du tableau des valeurs TV
    NC = UBound(TV, 2) 'définit le nombre de colonnes NC du tableau des valeurs TV
    K = 1 'initialise la variable K
    For I = 1 To NL 'boucle 1 : sur toutes les lignes I du tableau des valeurs TV
        If TV(I, 49) = "KO" Or TV(I, 50) = "KO" Then 'condition : si la donnée ligne I colonne 49 ou la donnée ligne I colonne 50 de TV est égale à "KO"
            ReDim Preserve TL(1 To NC, 1 To K) 'redimensionne de la tableau des lignes TL (autant de lignes que TV a de colonnes, K colonnes)
            For J = 1 To NC 'boucle : sur toutes les colonnes J du tableau de valeurs TV
                TL(J, K) = TV(I, J) 'récupère dans la ligne J de TL, la valeur de la colonne J de TV (=transposition)
            Next J 'prochaine colonne de la boucle 2
            K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
        End If 'fin de la condition
    Next I 'prochaine ligne de la boucle 1
    If K > 1 Then 'condition : si K est supérieure à un (au moins une occurrence trouvée)
        'renvoie dans la cellule A1 de l'onglet "Feuil1" du classeur "L_Autre_Classeur.xlsx" le tableau TL transposé (à adapter à ton cas)
        Workbooks("L_Autre_classeur.xlsx").Sheets("Feuil1").Range("A1").Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
    End If
    End Sub

  3. #3
    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,

    à la portée d'un débutant avec un filtre avancé nécessitant moins de dix lignes de code …



    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  4. #4
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Mai 2016
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Mai 2016
    Messages : 18
    Par défaut
    Bonjour,

    Merci encore une fois pour ces infos, j'ai pu m'en sortir grâce à vous !

    A la prochaine ;-)

    Aurélien

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

Discussions similaires

  1. Couper lignes de mauvaises longueurs et les coller dans un autre fichier
    Par GrosFlamby dans le forum Shell et commandes GNU
    Réponses: 11
    Dernier message: 18/06/2016, 19h52
  2. Réponses: 3
    Dernier message: 10/12/2013, 06h05
  3. [XL-2007] copier certains caractères d´une case dans un autre fichier
    Par djjilou dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/06/2012, 16h32
  4. Comment copier une ligne de JTable dans un autre JTable
    Par coolanso dans le forum Composants
    Réponses: 2
    Dernier message: 03/11/2011, 08h36
  5. [DOM] importer un noeud d'un fichier xml et le coller dans un autre fichier
    Par iznogoud36 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 21/06/2006, 12h55

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