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 :

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
Là c'est le classeur A qui se ferme au lieu du classeur B...