Extraire des données de plusieurs fichiers sur un seul

Bonjour,

Je cherche à compiler des données situées dans différents fichiers excel (ils ont tous la même configuration) dans un seul fichier. J'ai trouvé sur le forum un code VBA que j'ai su en partie adapter à ma situation (voir ci-dessous). Mais j'ai deux problèmes dont un majeur:

Le plus problématique: ce code apparemment colle des formules (mes fichiers initiaux ne sont pas des valeurs mes des calculs),

du coup ca ne fonctionne (références fausses, ...). je souhaiterais coller des valeurs. Est-ce possible de modifier le code utilisé ci-dessous pour y parvenir?

Moins important car je peux me débrouiller ensuite sans VBA mais faciliterait l'opération : commencer à copier à partir des lignes 13 jusqu'à la dernière

Autres points: je suis sous excel 2010 , j'ai rangé tous mes fichiers dans un même répertoire et ils ont tous la même configuration, je n'ai besoin que des données de l'onglet "Bilan hebdo". Ha et les fichiers initiaux sont je pense extraits d'une base de données mais je n'y ait pas accès, ils sont tous enregistrés en xlsm (macro).

Quelqu'un pourrait-il m'aider??

Le code:

Sub importdonnees()
Dim principal As ThisWorkbook
Dim repertoire As String, fichier As String
    Application.ScreenUpdating = False
    Set principal = ThisWorkbook
    repertoire = "P:\AgLyon\73-SAVOIE"
    ChDir repertoire
    fichier = Dir("*.xlsm")
    Do While fichier <> ""
        If fichier <> principal.Name Then
            Workbooks.Open fichier
            On Error GoTo suivant
            With Sheets("Bilan hebdo")
                On Error GoTo 0
                On Error Resume Next
                .[A:A].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
                .[A:A].Insert Shift:=xlToRight
                .Range("A1:A" & .[b65536].End(xlUp).Row) = Left(fichier, Len(fichier) - 4)
                .UsedRange.EntireRow.Copy Destination:=principal.Sheets(1).[a65536].End(xlUp).Offset(1)
            End With
            ActiveWorkbook.Close False
        End If
suivant:
        If Err.Number = 9 Then MsgBox "Pas de feuille ""Bilan hebdo"" dans le fichier " & fichier, vbExclamation: ActiveWorkbook.Close False
        fichier = Dir
    Loop
End Sub

Merci

Mary

bonjour,

replace ton instruction copy par ces 2 instructions

.UsedRange.EntireRow.Copy
principal.Sheets(1).[a65536].End(xlUp).Offset(1).PasteSpecial xlPasteValues

Merci beaucoup, le problème majeur est réglé sauf pour ma première colonne qui correspond à des dates...

Je peux le gérer après, mais juste pour ma culture si vous savez pourquoi cela m’intéresse

Autre petit ajustement: à chaque fois que ca copie une fenêtre s'ouvre me précisant qu'il y a des éléments dans le presse papier et il faut que je clique sur non (je ne vais pas les conserver) pour continuer. Je suppose qu'il y a une ligne de code à écrire pour empêcher cette fenêtre de s'ouvrir non?

Reste à trouver comment ne copier qu'à parti de la ligne 13....

mary

Rechercher des sujets similaires à "extraire donnees fichiers seul"