Bonjour a vous,


J'ai présentement des macros qui sont a même les documents de travail. Afin de faciliter la gestion et des mise a jour des modules, j'ai décidé de mettre toute mes macro dans le personal.xlsb qui s'ouvre a chaque fois que excel est déployé.


Je frappe maintenant un embuche. J'ai des documents (modeles) auquel de demande d'ouvrir un onglet d'un autre fichier copier cette onglet dans le modele et fermé celui-cié


Étant donné dans ma sub actuel, j'utilise thisworkbook, le code ne semble pas fonctionné (il tente de pointer vers le personal.xlsb, ce qui est logique). Si j'utilise activeworbook, la meme chose se produit.


ESt-ce qu'il y a un autre objet auquel je devras utilisé où Est-ce qui il y a un autre méthode qui serais moins compliqué d'Avoir mes codes a un seul endroit ???



Je vous mets le code en question


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
27
28
29
30
31
32
33
34
35
36
sub updatedata()
 
 
 
    Application.ScreenUpdating = False
 
'Si data exist comme onglet, on le détruit
 
    If sheetExists("data") Then
 
 
    Application.DisplayAlerts = False
    Sheets("data").Delete
    Application.DisplayAlerts = True
 
    End If
 
'Si le lexique est déjà ouvert le choisir et copier l'onglet data
 
    If IsFileOpen("le nom du fichier") Then
 
       Workbooks("lexique des abréviations.xlsm").Sheets("data").Copy After:=ThisWorkbook.Sheets(3)
       Sheets("Travail").Select
 
    Else
 
'Si le lexique n'Est pas ouvert, l'ouvrir, copier data et le fermer
 
    Workbooks.Open Filename:="lexique des abréviations.xlsm" 'qui est le fichier auquel contient l'onglet data que je veux copier
    Sheets("data").Copy After:=ThisWorkbook.Sheets(3)
    Sheets("Travail").Select
    Windows("lexique des abréviations.xlsm").Close
 
    End If
 
End Sub


merci pour vos suggestions et aides