Bonjour le Forum ,

Je suis en train de copier des valeurs d'un classeur à un autre. Ma macro de base fonctionne lorsque j'ai une feuille qui existe d'ors et déjà dans mon classeur de destination. Ici la feuille de destination est identifié dans la variable Nom
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
Sub CopieEntreClasseur()
 
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim Chemin As String
Dim Chemintest As String
Dim Source As Workbook
Dim i As Byte
 
Chemin = ThisWorkbook.Path
Chemintest = Chemin & "\donnee.xlsm"
Set Source = Application.Workbooks.Open(Chemintest)
With Workbooks("donnee.xlsm")
 
    For i = 1 To .Sheets.Count
            If .Sheets(i).Name Like "*2016" Then
                With .Sheets(i)
                    Nom = .Name
                    Source1.Sheets(Nom).Range(.Cells(LigOpe, ColOpe), .Cells(EndRow, ColOpe)).Copy ThisWorkbook.Sheets(Nom).Cells(1, 1)
                End With
            End If
    Next i
.Close
End With
 
End Sub
J'aimerai pouvoir tester la présence de cette feuille Nom dans mon classeur de destination. Si elle est présente : la feuille est vidée de ses valeur. Si elle est abscente, je la crée. J'applique cette macro :
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
Sub CreeOuReinitialiseFeuille(ByVal MaFeuille As String)
 
Dim g As ChartObject
 
    For Each feuille In Worksheets
        If feuille.Name = MaFeuille Then
            For Each g In Worksheets(MaFeuille).ChartObjects
                g.Delete
            Next
            Worksheets(MaFeuille).Cells.ClearContents
            Exit Sub
        End If
    Next feuille
    Sheets.Add.Name = MaFeuille
 
End Sub
Je n'arrive pas à intégrer cette macro CreeOuReinitialiseFeuille dans ma procédure CopieEntreClasseur et faire le test dans la boucle For pour ne l'appliquer que lorsqu'il y a une aucurence de nom qui est trouvée. J'ai essayé comme ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
With Workbooks(resutlat.xlsm)
    .CreeOuReinitialiseFeuille (Nom)
End With
Et d'autres manières qui ne sont pas cohérentes car la syntaxe n'est pas bonne. C'est comme dans mon exemple précédent : comment Excel peut savoir que c'est dans ce classeur qu'il faut travailler (le point n'est pas approprié ici).

Avez-vous une idée vers une piste vers laquelle se tourner?
Merci de votre aide

BlackMountain