XL 2013 Code qui ne fonctionne pas ...

luke3300

XLDnaute Impliqué
Bonjour le forum,

Je reviens vers vous pour ce souci:

Je viens de créer ce code:

Code:
Sub Macro1()
'
'
' Touche de raccourci du clavier: Ctrl+r
'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
vCible = ActiveWorkbook.Name
    ChDir ThisWorkbook.Path
    Workbooks.Open Filename:=ThisWorkbook.Path & "\Modifica.xlsx"
    vSource = ActiveWorkbook.Name
    Range("A2:K2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    ActiveWorkbook.(vCible)
    Select.sheets("Feuil1")
    Dim DLig As Long
    DLig = Range("A1").End(xlDown).Row + 1
    ActiveSheet.Paste
    vCache = ActiveSheet.Name
    Workbooks(vSource).Close

End Sub

afin qu'il puisse, lorsque je suis dans un fichier cible, ouvrir un fichier de données (fichier source) et qu'il puisse copier ses données à partir de la ligne 2 jusqu'à la dernière ayant du contenu et qu'il puisse les coller dans le fichier cible à partir de la première ligne vide (donc à la suite du contenu présent).
Qu'il puisse ensuite fermer le fichier de données (source) et revenir dans le fichier cible.

Seulement je bloque sur cette partie qu'il me met en jaune et active le débogage:

Code:
ActiveWorkbook.(vCible)
    Select.sheets("Feuil1")

J'essaye en vain de trouver la solution mais je n'ai qu'une tête malheureusement et pas très remplie :( j'en perd la boule ;)

Quelqu'un pourrait-il m'aiguiller vers une solution?

Merci à tous et agréable journée
 

luke3300

XLDnaute Impliqué
Hello Paf et le forum,

non je dirais un premier dont l'onglet serait vide au départ et dans lequel viendrait se coller les données des 2 fichiers (à partir de la cellule A2). Ce qui je pense reviendrait à dire qu'il deviendrait le nouveau fichier cible.
Ce serait un fichier principal appelé MFI et les données se colleraient dans l'onglet nommé DL12.


Merci à tous :)
 
Dernière édition:

Paf

XLDnaute Barbatruc
re,

les classeurs dans lesquels on doit 'piocher' sont-ils dans le même répertoire, y a-t-il d'autres classeurs dans ce répertoire, ont ils une feuille "Données" ....?

si ces deux classeurs sont seuls dans le même répertoire, on peut envisager une simple boucle sur ces fichiers et leur appliquer le traitement proposé .

A+
 

luke3300

XLDnaute Impliqué
Bonjour à tous, Paf,

J'ai regardé un peu en essayant de comprendre mais c'est pas facile.
Je suis arrivé à ça:

Code:
Sub IntegrerW()
'
' IntegrerW Macro
'

'
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim vCible As Worksheet, vSource As Workbook, DLigC As Long, LigS As Long
Set vCible = ActiveSheet
Set vSource = Workbooks.Open(ThisWorkbook.Path & "\Demandes.xlsx")
With vSource.Worksheets("Données")
DLigC = .Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne Source
LigS = vCible.Range("A" & Rows.Count).End(xlUp).Row + 1 '1ére ligne utile Cible
.Range("A2:K" & DLigC).Copy vCible.Range("A" & LigS) 'copy de Source à Cible
End With
vSource.Close
Set vSource = Workbooks.Open(ThisWorkbook.Path & "\Demandes_Z.xlsx")
With vSource.Worksheets("Données")
DLigC = .Range("A" & Rows.Count).End(xlUp).Row 'dernière ligne Source
LigS = vCible.Range("A" & Rows.Count).End(xlUp).Row + 1 '1ére ligne utile Cible
.Range("A2:K" & DLigC).Copy vCible.Range("A" & LigS) 'copy de Source à Cible
End With
vSource.Close
MsgBox "Le rapatriement des données 1 & 2 à réussi!", vbInformation, "Info!"
End Sub

Cela fonctionne parfaitement puisque je l'ai testé sur le nouveau fichier source que je vais utiliser.
Est-ce que le code est bon ou peut-il être optimisé?

Merci d'avance et excellente journée
 

Discussions similaires