Extraire plage de données Excel via VBA.

Résolu/Fermé
bishop81 Messages postés 2 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 23 juillet 2013 - 22 juil. 2013 à 18:48
bishop81 Messages postés 2 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 23 juillet 2013 - 23 juil. 2013 à 09:45
Bonjour à tous !!

Pour les besoins d'un projet personnel, je suis en train de mettre en place un fichier excel qui extrait des données via des sources extérieures. Ce fichier fonctionne parfaitement.
J'essaie par ailleurs de mettre en place une base de données historiques de ces données recueillies sur un autre fichier excel.

Ce que je voudrais faire consiste en une macro VBA, qui prendrait une plage de données précises sur le fichier d'extraction et la copierait sur le fichier d'historique des données sur une plage de la même taille, vierge, à la suite des données précédemment recueillies ...

Voici ce que j'ai réussi à concevoir mais cet macro ne m'extrait et copie que les 5eres lignes de la 1ere colonne et les dispose en ligne à la suite de mes données précédentes. Alors que je voudrais que la plage de données copiée soit juste collée à la suite (les colonnes étant les mêmes).
Bref, c'est pas encore ça mais je pense que seules des modifications mineures sont à apporter mais je ne sais pas où ...

Pouvez-vous m'aider ??

Merci à vous tous ...

Sub Archivage()
'
' Archivage Macro
'
' Touche de raccourci du clavier: Ctrl+x
'
' Selection plage de donnees a copier du fichier source
    Sheets("hera.rpt").Select
    Range("A2:E15").Select
    Range("E15").Activate
    Selection.Copy
' Envoi donnees copiees dans fichier receptacle
    Workbooks.Open Filename:= _
        "G:\012_DOSSIER UPDATE DONNEES SITE\Export VL ARCHIVE.xls"
     With Sheets("hera.rpt")
' Copie donnees sur espace "blanc" a la suite de la base de donnees excel existante du fichier receptacle
    plva = .Range("A" & Rows.Count).End(xlUp).Row + 1
    .Range("A" & plva & ":E" & plva) = Application.Transpose(Sheets("hera.rpt").Range("A2:E15"))
    End With
     ActiveWorkbook.Save
    ActiveWindow.Close
    Sheets("Data Site - Export VL").Select
End Sub
A voir également:

2 réponses

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
23 juil. 2013 à 07:52
Bonjour,

un exemple:

Sub Archivage()
    Dim tableau As Range
'
' Archivage Macro
'
' Touche de raccourci du clavier: Ctrl+x
'
    'mise en memoire des donnees a copier du fichier source
    Set tableau = Sheets("hera.rpt").Range("A2:E15")
    'Envoi donnees copiees dans fichier receptacle
    Workbooks.Open Filename:= _
        "G:\012_DOSSIER UPDATE DONNEES SITE\Export VL ARCHIVE.xls"
     With Sheets("hera.rpt")
        ' Copie donnees sur espace "blanc" a la suite de la base de donnees excel existante du fichier receptacle
        plva = .Range("A" & Rows.Count).End(xlUp).Row + 1
        tableau.Copy .Range("A" & plva)
    End With
    ActiveWorkbook.Save
    ActiveWindow.Close
    Sheets("Data Site - Export VL").Select
End Sub


A+
2
bishop81 Messages postés 2 Date d'inscription lundi 22 juillet 2013 Statut Membre Dernière intervention 23 juillet 2013 1
23 juil. 2013 à 09:45
Impeccable merci beaucoup !!!
1