Exportation de plages de données

Bonjour à tous,

Je fais rarement de demandes d'aide sur forums, mais là je sèche complètement..

Je m'explique, je veux transférer d'un fichier excel à un autre plusieurs plages de données, et ceci le plus simplement possible afin de pouvoir utiliser cette méthode régulièrement à l'avenir.

J'ai récupéré sur un forum (excusez-moi mais je ne le souviens plus du nom..) un fichier qui permet de remplir cette fonction le plus simplement possible (fichier ci-joint). Tout fonctionne très bien, mais le soucis c'est que j'ai plusieurs colonnes à plus de 3000 lignes chacune, et donc la programmation prend énormément de temps car je n'arrive pas à faire en sorte que, par exemple, les cellules L3 à L3142 se transfèrent sur les cellules U2 à U3141. Je n'arrive qu'à traiter les cellules au cas par cas.. Vous verrez dans le fichier ci-joint, j'ai commencé mais vite abandonné.

Donc si quelqu'un aurait une solution à mon problème, je suis preneur !

Merci d'avance

[EDIT] Le fichier était un peu plus ancien, voici le nouveau mis à jour. Mes excuses.

Bonjour,

Sauf erreur de ma part, il n'y a pas de données dans ton fichier ( uniquement le script).

Met de données non confidentielles, et je regarderai.

Bonjour,

Une adaptation pour la copie d'une plage à plusieurs cellules :

Sub CopierDonnees()
Dim WbS, WbC
Dim WsS As Worksheet, WsC As Worksheet
    WbS = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")
    ' On verifie que l'on a selectionné un nom de classeur
    If WbS <> False Then
        'On ouvre le classeur Source
        Set WbS = Workbooks.Open(WbS) 'Classeur Source
        Set WsS = WbS.Worksheets("Sheet1") 'Feuille Source
        WbC = Application.GetOpenFilename("Fichier Excel (*.xls), *.xsl")
        If WbC <> False Then
            ' On ouvre le classeur Cible
            Set WbC = Workbooks.Open(WbC) 'Classeur Cible
            Set WsC = WbC.Worksheets("OrgaBD") 'Feuille Cible
            'On copie les cellules de la feuille source vers la feuille cible
            WsC.Range(WsC.Range("U2"), WsC.Range("U3141")) = WsS.Range(WsS.Range("L3"), WsS.Range("L3142")).Value
            'On ferme le classeur
            WbC.Close
            Set WsC = Nothing
        End If
        'On ferme le second
        WbS.Close
        Set WsS = Nothing
    End If
End Sub

A+

frangy,

Merci d'avoir pris le temps de me venir en aide, cela fonctionne parfaitement !

Bonne journée

Rechercher des sujets similaires à "exportation plages donnees"