copier/coller sur 2 classeurs différents

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.
 

pierrejean

XLDnaute Barbatruc
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
 
L

LUSI

Guest
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:
 

Discussions similaires

Statistiques des forums

Discussions
312 493
Messages
2 088 959
Membres
103 990
dernier inscrit
lamiadebz