Copier plusieurs données à la dernière cellule vide

Bonjour,

J’ai mon fichier PREPA FRAIS BANCAIRES. J’importe par une macro 3 fichiers de bases de données nommés COMD, ARCT et ICRE dans la feuille BASE.

Ces 3 bases de données doivent être copiées les unes à la suite des autres, mais je n’arrive pas à copier le dernier fichier ICRE.

Je ne comprends pas pourquoi j’ai ce message d’erreur : « Erreur de compilation : Déclaration existante dans la portée en cours ».

Merci de votre aide.

Bonjour,

Tu as déclaré deux fois la variable lgn

Dim lgn As Long

A+

Bonjour,

Merci, c'est OK maintenant.

Peut-être je dois ouvrir un nouveau post pour ma seconde requête.

Je souhaiterai inclure dans mon fichier PREPA FRAIS BANCAIRES dans ma macro actuelle, le total de chaque fichier importé.

En cellule K1 : Total COMD (Total Montant Ctrv.)

En cellule K2 : Total ARCT (Total Montant Ctrv.)

En cellule K3 : Total ICRE (Total Montant Ctrv.)

Comment puis-je faire ?

En remerciant encore de votre aide.

Peut-être je dois ouvrir un nouveau post pour ma seconde requête.

Oui, c'est fortement conseillé (mais la réponse était déjà dans la question )

Vu que je suis là, je vais quand même répondre ...

A+

Merci à toi Frangy ! c'est génial !

Bonjour le fil,

Comme j'avais préparé également quelque chose (idem Frangy) je mets quand même le code

Je passe par des variables pour simplement plus de compréhension du code

Sub Importation_Fichiers()
  Dim Inc As Integer, sPath As String, TabFic() As String
  Dim DLig As Long, Total As Double
  Dim WbkS As Workbook, ShtS As Worksheet
  ' Chemin d'accès des fichiers
  sPath = "C:\TRESO\"
  ' Définir le Tableau des fichiers à ouvrir
  TabFic = Split("COMD,CAUT,ICRE,ARCT,IDEB", ",")
  ' Pour chaque fichier du tableau
  For Inc = 0 To UBound(TabFic)
    ' En cas d'erreur
    On Error GoTo Suite
    ' Définit l'objet classeur du fichier à Ouvrir le fichier
    Set WbkS = Workbooks.Open(Filename:=sPath & TabFic(Inc) & ".xlsx")
    ' Activer le classeur avec la macro
    ThisWorkbook.Activate
    ' Définir la feuille Source
    Set ShtS = WbkS.Sheets(1)
    ' Calculer la dernière ligne de la feuille
    DLig = ShtS.Range("A" & Rows.Count).End(xlUp).Row
    ' Faire le total de la colonne [Montant Trn]
    Total = Application.WorksheetFunction.Sum(ShtS.Range("I2:I" & DLig))
    ' Copie du fichier dans prépa frais
    ShtS.Range("A2:N" & DLig).Copy _
      Destination:=ThisWorkbook.Sheets("BASE").Range("A" & Rows.Count).End(xlUp)(2) '.Offset(1, 0)
    ' Inscrire le total et le nom du classeur
    ThisWorkbook.Sheets("BASE").Range("L" & 1 + Inc).Value = Total
    ThisWorkbook.Sheets("BASE").Range("M" & 1 + Inc).Value = WbkS.Name
    ' Fermer le classeur ouvert
    WbkS.Close SaveChanges:=False
Suite:
  Next Inc
  ' A la fin de la procédure
  ' Effacer les variables objet
  Set ShtS = Nothing: Set WbkS = Nothing
  ' Désactiver le mode copier/coller
  Application.CutCopyMode = False
  ' Petit pessage
  MsgBox "Traitement effectué"
  Range("L1").Select
End Sub

voili

Rechercher des sujets similaires à "copier donnees derniere vide"