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 :

Coper/coller lignes aléatoires entre 2 fichiers EXCEL


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut Coper/coller lignes aléatoires entre 2 fichiers EXCEL
    Bonjour,

    J'ai 2 classeurs EXCEl distincts : 1 pour les données sources (DS), et 1 pour la consolidation des données importantes (DI).

    Je souhaite copier certaines lignes de ma feuille"DS" vers le feuille "DI" sous condition que la colonne F (de la feuille DS) ait pour valeur "C01".
    Je sais le faire lorsqu'il n' a qu'une seule ligne qui répond à la condition (avec la fonction Do Until), mais ce n'est pas le cas donc je suis coincé.

    Merci de votre aide

    PS : je ne sais pas si mes explications sont suffisantes, mais je vous en donnerai plus si nécessaire.

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    Fait sans verif, à tester en tenant compte des observations :
    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
    Sub copier_C01()
    Dim wb1 As Workbook, wb2 As Workbook, Ws1 As Worksheet, Ws2 As Worksheet
    Dim dl1 As Long, dl2 As Long
    Dim cel As Range, plage As Range
    Set wb1 = Workbooks("classeur1.xls") 'classeur avec "DS"
    Set wb2 = Workbooks("classeur2.xls") 'classeur avec "DI"
    Set Ws1 = wb1.Sheets("DS")
    Set Ws2 = wb2.Sheets("DI")
    dl1 = Ws1.Range("F" & Ws1.Rows.Count).End(xlUp).Row
    dl2 = Ws2.Range("A" & Ws2.Rows.Count).End(xlUp).Row + 1 'si les données à recevoir de "DI" sont en A
    Set plage = Ws1.Range("F2:F" & dl1) 'si on commence la recherche en ligne 2
    For Each cel In plage
        If cel.Value = "C01" Then 'correspondance exacte
        'si on copie les données de A dans A
            Ws2.Range("A" & dl2) = cel.Offset(0, -5).Value
            dl2 = Ws2.Range("A" & Ws2.Rows.Count).End(xlUp).Row + 1
        End If
    Next cel
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre averti
    Inscrit en
    Février 2011
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 13
    Par défaut
    Merci pour ta réponse.

    Finallement, j'ai utilisé le filtre automatique pour affiner ma sélection Selection.AutoFilter Field:=1, Criteria1:=Av_canicule.vNumeroContrat
    puis copy vers l'autre fichier et ca fonctionne parfaitement.

    Je te remercie pour ton aide.

    Cependant, je rencontre un nouveau problème.

    Mon fichier DI (données issus du fichier source DS) doit me permettre de publiposter un document WORD (contrat).

    Le code du publipostage est le suivant.

    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
      Dim MyPath As String
        Dim CheminComplet As Variant
            MyPath = ActiveDocument.Path
        CheminComplet = MyPath & "\DonnéesPublipostage.xls"
     
        ActiveDocument.MailMerge.MainDocumentType = wdFormLetters
        ActiveDocument.MailMerge.OpenDataSource Name:= _
            CheminComplet _
            , ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _
            AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _
            WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _
            Format:=wdOpenFormatAuto, Connection:="Feuille de calcul entière", _
            SQLStatement:="", SQLStatement1:=""
        With ActiveDocument.MailMerge
            .Destination = wdSendToNewDocument
            .MailAsAttachment = False
            .MailAddressFieldName = ""
            .MailSubject = ""
            .SuppressBlankLines = True
            With .DataSource
                .FirstRecord = wdDefaultFirstRecord
                .LastRecord = wdDefaultLastRecord
            End With
            .Execute Pause:=True
        End With
    Le problème est que lorsque je lance la macro, le publipostage s'effectue avec l'ensemble des lignes d'origines (c'est à dire toutes les lignes présentent dans DS). Ainsi, je retrouve mes contrats publipostés avec les données de DI + x contrats dont les champs de fusion ne sont pas renseignés (x correspondant à la différence de ligne de données entre DS et DI).

    Je ne sais pas si cela est clair.

    Je vous remercie pour votre aide.

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

Discussions similaires

  1. Copier / Coller entre 2 fichiers excel
    Par roberto75 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/03/2011, 12h25
  2. Copier coller entre deux fichiers excel par macro
    Par miss-o-21 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 26/11/2009, 14h45
  3. Macro RECHERCHEV entre 2 fichiers excel distincts
    Par paflolo dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 15/11/2006, 03h46
  4. Copie entre 2 fichiers excel
    Par Freerideuse dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 29/06/2006, 16h12
  5. [VBA-E]Comment mettre une ligne entière d'un fichier excel en gras ?
    Par pauletta22 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 24/05/2006, 08h23

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