Microsoft 365 Récuperer donner

Keiko

XLDnaute Occasionnel
Bonjour à tous,

Voici un code qui me permet d'ouvrir un excel choisi, et d'envoyer des informations des cellules du fichier ou la macro (donneur d'ordre) se trouve vers le fichier ouvert.
Je voudrais faire maintenant l'inverse.
Je voudrais que ce code ouvre un fichier, et colle les informations du fichier ouvert vers l'excel ou se trouve la macro (donneur d'ordre).
Pouvez-vous m'aider?
Voici le code de base :

Sub TRANSFERER()
Dim Sortie As Workbook
Dim FeuilleOrigine As Worksheet, FeuilleDestination As Worksheet

'Référence la feuille origine des données à copier
Set FeuilleOrigine = ThisWorkbook.Sheets("l")

NomFichierSortie = Application.GetOpenFilename("Fichier Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm")
' On verifie que l'on a selectionné un nom de classeur
If NomFichierSortie <> False Then
' On ouvre le classeur
Set Sortie = Workbooks.Open(NomFichierSortie)

'Référence la feuille de destination des cellules copiées
Set FeuilleDestination = Sortie.Sheets("l")
' On copie les cellules de la feuille désirée vers la feuille de sortie
With FeuilleOrigine
.Range("D14:D21").Copy Destination:=FeuilleDestination.Range("D14:D21")
.Range("G14:H21").Copy Destination:=FeuilleDestination.Range("G14:H21")
.Range("D25:D26").Copy Destination:=FeuilleDestination.Range("D25:D26")
.Range("D28:D29").Copy Destination:=FeuilleDestination.Range("D28:D29")
.Range("D31:D38").Copy Destination:=FeuilleDestination.Range("D31:D38")
.Range("G25:H36").Copy Destination:=FeuilleDestination.Range("G25:H36")
.Range("D42:D46").Copy Destination:=FeuilleDestination.Range("D42:D46")
.Range("F42:F46").Copy Destination:=FeuilleDestination.Range("F42:F46")
.Range("G42:H42").Copy Destination:=FeuilleDestination.Range("G42:H42")
.Range("G43:H46").Copy Destination:=FeuilleDestination.Range("G43:H46")
.Range("B51:C52").Copy Destination:=FeuilleDestination.Range("B51:C52")
.Range("F51:F52").Copy Destination:=FeuilleDestination.Range("F51:F52")
.Range("B55:C56").Copy Destination:=FeuilleDestination.Range("B55:C56")
.Range("E55:E56").Copy Destination:=FeuilleDestination.Range("E55:E56")
.Range("B59:C60").Copy Destination:=FeuilleDestination.Range("B59:C60")
.Range("F59:F60").Copy Destination:=FeuilleDestination.Range("F59:F60")
.Range("B63:D64").Copy Destination:=FeuilleDestination.Range("B63:D64")
.Range("H63:H64").Copy Destination:=FeuilleDestination.Range("H63:H64")
.Range("D77:D83").Copy Destination:=FeuilleDestination.Range("D77:D83")
.Range("F77:F83").Copy Destination:=FeuilleDestination.Range("F77:F83")
.Range("H77:H83").Copy Destination:=FeuilleDestination.Range("H77:H83")
.Range("D96:H99").Copy Destination:=FeuilleDestination.Range("D96:H99")
.Range("D103").Copy Destination:=FeuilleDestination.Range("D103")
.Range("D106:D108").Copy Destination:=FeuilleDestination.Range("D106:D108")
.Range("D111:D113").Copy Destination:=FeuilleDestination.Range("D111:D113")
.Range("D118").Copy Destination:=FeuilleDestination.Range("D118")
.Range("D120").Copy Destination:=FeuilleDestination.Range("D120")
.Range("D123").Copy Destination:=FeuilleDestination.Range("D123")
.Range("F103").Copy Destination:=FeuilleDestination.Range("F103")
.Range("F106:F108").Copy Destination:=FeuilleDestination.Range("F106:F108")
.Range("F111:F113").Copy Destination:=FeuilleDestination.Range("F111:F113")
.Range("F120").Copy Destination:=FeuilleDestination.Range("F120")
.Range("F123").Copy Destination:=FeuilleDestination.Range("F123")
.Range("H103").Copy Destination:=FeuilleDestination.Range("H103")
.Range("H106:H108").Copy Destination:=FeuilleDestination.Range("H106:H108")
.Range("H111:H113").Copy Destination:=FeuilleDestination.Range("H111:H113")
.Range("H120").Copy Destination:=FeuilleDestination.Range("H120")
.Range("H123").Copy Destination:=FeuilleDestination.Range("H123")
.Range("D146").Copy Destination:=FeuilleDestination.Range("D146")
.Range("D149:D151").Copy Destination:=FeuilleDestination.Range("D149:D151")
.Range("D154:D156").Copy Destination:=FeuilleDestination.Range("D154:D156")
.Range("D163").Copy Destination:=FeuilleDestination.Range("D163")
.Range("D167").Copy Destination:=FeuilleDestination.Range("D167")
.Range("F146").Copy Destination:=FeuilleDestination.Range("F146")
.Range("F149:F151").Copy Destination:=FeuilleDestination.Range("F149:F151")
.Range("F154:F156").Copy Destination:=FeuilleDestination.Range("F154:F156")
.Range("F163").Copy Destination:=FeuilleDestination.Range("F163")
.Range("F167").Copy Destination:=FeuilleDestination.Range("F167")
.Range("H146").Copy Destination:=FeuilleDestination.Range("H146")
.Range("H149:H151").Copy Destination:=FeuilleDestination.Range("H149:H151")
.Range("H154:H156").Copy Destination:=FeuilleDestination.Range("H154:H156")
.Range("H163").Copy Destination:=FeuilleDestination.Range("H163")
.Range("H167").Copy Destination:=FeuilleDestination.Range("H167")
.Range("D189:F189").Copy Destination:=FeuilleDestination.Range("D189:F189")
.Range("E194:F196").Copy Destination:=FeuilleDestination.Range("E194:F196")
.Range("D208:D209").Copy Destination:=FeuilleDestination.Range("D208:D209")
.Range("C213:D236").Copy Destination:=FeuilleDestination.Range("C213:D236")
.Range("C238:D239").Copy Destination:=FeuilleDestination.Range("C238:D239")
.Range("F213:H224").Copy Destination:=FeuilleDestination.Range("F213:H224")
.Range("F226:H233").Copy Destination:=FeuilleDestination.Range("F226:H233")
.Range("D259:D260").Copy Destination:=FeuilleDestination.Range("D259:D260")
.Range("D262:D264").Copy Destination:=FeuilleDestination.Range("D262:D264")
.Range("D267").Copy Destination:=FeuilleDestination.Range("D267")
.Range("F259:H264").Copy Destination:=FeuilleDestination.Range("F259:H264")
.Range("F266:H270").Copy Destination:=FeuilleDestination.Range("F266:H270")
.Range("F273:H277").Copy Destination:=FeuilleDestination.Range("F273:H277")
.Range("D283:H287").Copy Destination:=FeuilleDestination.Range("D283:H287")
.Range("D290:H290").Copy Destination:=FeuilleDestination.Range("D290:H290")
.Range("D295:H295").Copy Destination:=FeuilleDestination.Range("D295:H295")
.Range("D301:H301").Copy Destination:=FeuilleDestination.Range("D301:H301")
.Range("D305:H305").Copy Destination:=FeuilleDestination.Range("D305:H305")
.Range("D311:H315").Copy Destination:=FeuilleDestination.Range("D311:H315")
.Range("D318:H318").Copy Destination:=FeuilleDestination.Range("D318:H318")
.Range("D323:H323").Copy Destination:=FeuilleDestination.Range("D323:H323")
.Range("D329:H329").Copy Destination:=FeuilleDestination.Range("D329:H329")
.Range("D333:H333").Copy Destination:=FeuilleDestination.Range("D333:H333")
.Range("D339:H339").Copy Destination:=FeuilleDestination.Range("D339:H339")
.Range("D344:H344").Copy Destination:=FeuilleDestination.Range("D344:H344")
End With
Sheets("l").Select
End If
End Sub

Bien à vous,
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Keiko, bonjour le forum,

Si je me suis pas gouré, ça donnerait ça :

VB:
Sub TRANSFERER()
Dim CD As Workbook 'déclare la variable CD (Classeur Destination)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim F As String 'déclare la variable F (Fichier)

Set CD = ThisWorkbook 'définit le classeur destination CD (celui qui contient la macro)
Set OD = CD.Worksheets(1) 'définit l'onglet destination OD (ici le premier de CD)
F = Application.GetOpenFilename("Fichier Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm") 'définit le fichier F
If F <> "" Then 'condition : si F n'est pas vide
    Set CS = Workbooks.Open(F) 'définit le classeur source CS en l'ouvrant
    Set OS = CS.Worksheets(1) 'définit l'onglet source OS (ici le premier de CS)
End If 'fin de la condition
OS.Range("D14:D21").Copy OD.Range("D14:D21") 'pour copier tous (les formats, les formules et les valeurs)
OD.Range("D14:D21").Value = OS.Range("D14:D21") 'pour ne récupérer que les valeurs
'etc.
End Sub
 

Discussions similaires

Réponses
8
Affichages
534