Bonjour,
J'aimerais réaliser plusieurs opérations entre différents classeurs.
Je vous explique :
Problème 1
Dans un classeur A, j'exécute une macro qui ouvre un classeur B.
Sur ce classeur B, la même macro va créer un nouvel onglet "Projet1" où seront retraités pleins de chiffres. Une fois cet onglet "Projet1" créé, la macro continue : elle déplace cet onglet, plus exactement elle le coupe puis le colle en valeur sur le classeur A.
Après avoir coupé/collé, je voudrais que le classeur B se ferme.
Le problème, c'est que le nom du classeur B est une variable. En effet, ma macro commence par une invite qui laisse le choix à l'utilisateur du fichier qu'il veut traiter. Donc son nom change.
Or, après avoir coupé/collé, c'est mon classeur A qui est sélectionné. Comment sélectionné après coup le classeur B sachant qu'il n'a pas un nom bien déterminé ?
Problème 2
Comme je vous l'expliquais, ma macro crée un onglet "Projet 1" sur le fichier B qu'elle déplace sur le fichier A.
Or, il se peut que cet onglet existe déjà dans le fichier A.
Comment faire en sorte que lorsque ce cas de figure se rencontre, l'onglet "Projet1" du fichier B écrase l'onglet "Projet1" du fichier A ?
Voici mon code :
Là c'est le classeur A qui se ferme au lieu du classeur B...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 'Insérer nouveau projet Dim Fichier As Variant Fichier = Application.GetOpenFilename If Fichier = False Then Exit Sub Workbooks.Open Fichier Sheets("1-Suivi projet").Select Sheets.Add Application.Run "Synth.xls!Analyse" ActiveSheet.Name = Range("B3") ActiveSheet.Select Cells.Select Range("F34").Activate Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False ActiveSheet.Move Before:=Workbooks("Synth.xls").Sheets(5) Fichier.Activate ActiveSheet.Activate ActiveWindow.WindowState = xlNormal ActiveWindow.Close SaveChanges:=False
Partager