copier/coller sur 2 classeurs différents

  • Initiateur de la discussion Initiateur de la discussion LUSI
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

L

LUSI

Guest
Re-post d'un message de mardi. Désolé si cela ne se fait pas. Edelweisseric a déjà essayer de me tendre la main sur ce pbs. Merci à lui. mais mon problème reste entier

Bonsoir,

j'essaye de réaliser sous excel (vba) une macro qui me permettrait d'ouvrir un fichier xls à travers une boîte de dialogue, et d'en copier certaines cellules sur sheet d'un fichier xls différent et déjà en cours (ou déjà ouvert)

ma macro donne cela pour le moment :

Sub Macro1()
'
' Macro1 Macro
' Macro recorded 18/04/2006

Application.Dialogs(xlDialogOpen).Show
Range('L14').Select
Selection.Copy
Windows('Classeur.xls').Activate
ActiveSheet.Paste
Windows('projet718.xls').Activate
Range('L22').Select
Application.CutCopyMode = False
Selection.Copy
Windows('Classeur.xls').Activate
Range('B9').Select
ActiveSheet.Paste
Windows('projet718.xls').Activate
Range('L25').Select
Application.CutCopyMode = False
Selection.Copy
Windows('Classeur.xls').Activate
Range('B11').Select
ActiveSheet.Paste
Windows('projet718.xls').Activate
ActiveWindow.Close

End Sub

Mon problème, est que le nom des différents fichier reste enregistré en dur dans la macro (classeur.xls & projet718.xls), alors que je pourrais après l'apparition de boîte de dialogue initiale être amené à selectionner un fichier différent de projet718.xls par exemple.

De la même façon, si le nom de classeur.xls est changé la macro plante.

J'aimerais pouvoir contourner ce problême, donc si vous avez des solutions, celles-ci seraient vraiment les bienvenues. Merci d'avance.

nb : je suis archi-novice en vba.
 
bonjour LUSI

voici un debut que tu pourras eventuellement adapter

Code:
Option Explicit
Sub Macro1()
Dim x As Integer
Dim ici As String
Dim ouvert As String
x = Workbooks.Count
ici = ActiveWorkbook.Name
Application.Dialogs(xlDialogOpen).Show
ouvert = Workbooks(x + 1).Name
Workbooks(ici).Activate
ActiveSheet.Select
Range('L14').Select
Selection.Copy
Workbooks(ouvert).Activate
ActiveSheet.Select
Range('L14').Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

si probleme n'hesite pas arevenir
 
PierreJean,

Merci beaucoup. Ca marche Cela fait deux nuits que je veille jusqu'à 2/3 hrs du matin pour trouver une solution (et pourtant cela doit te paraître tellement simple). J'essayes de mettre en place un tableau de bord pour le boulot et sans connaissance en vba, les macros deviennent très limités fonctionnellement ou opérationnellement parlant. Pour le prochain plan de formation, je vais opter pour quelques séances d'apprentissage sur Vba.

Concernant le code ci-dessous, j'ai juste fait la petite modification suivante (en gras)inversion des variables 'ici' & 'ouvert':

Option Explicit
Sub Macro1()
Dim x As Integer
Dim ici As String
Dim ouvert As String
x = Workbooks.Count
ici = ActiveWorkbook.Name
Application.Dialogs(xlDialogOpen).Show
ouvert = Workbooks(x + 1).Name
Workbooks(ouvert).Activate
ActiveSheet.Select
Range('L14').Select
Selection.Copy
Workbooks(ici).Activate
ActiveSheet.Select
Range('L14').Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Du coup j'ai ce que je veux. Les infos du fichier que l'on ouvre, vont se copier dans une plage déterminée du document déjà en cours.

Merci encore ;-) :woohoo:
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
11
Affichages
850
B
  • Résolu(e)
2
Réponses
16
Affichages
2 K
benbella1991
B
F
Réponses
2
Affichages
2 K
F
Retour