J'aimerai mettre une condition : si la feuille du nom : ____ existe dans le classeur alors ....
Est ce possible?
Merci d'avance pour votre aide
J'aimerai mettre une condition : si la feuille du nom : ____ existe dans le classeur alors ....
Est ce possible?
Merci d'avance pour votre aide
en utilisant la gestion d'erreur...par exemple...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Function FeuilleExiste(wk As Workbook, stFeuille) As Boolean On Error Resume Next FeuilleExiste = Not (wk.Sheets(stFeuille) Is Nothing) End Function Sub MonTestDelaFonctionExiste() If FeuilleExiste(ThisWorkbook, "feuil1") Then MsgBox "la feuille existe" Else MsgBox "N'existe pas " End If End Sub
Si j'ai bien compris avec Thisworkbook, je travail sur le classeur d'ou la macro est lancée. Moi j'aimerai savoir si une feuille existe sur un classeur ouvert mais non celui d'ou je lance la macro. Il faut remplacer thisworkbook par autre chose?
Code : Sélectionner tout - Visualiser dans une fenêtre à part If FeuilleExiste(ThisWorkbook, "feuil1") Then
ben comment l'ouvre tu ton classeur , montre nous le 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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 While reference(i) <> "" m = 1 nom_fichier = ActiveWorkbook.Name ChDir k While (Dir(k & "\FERT pliage automatisée " & reference(i) & indice(m) & ".xls")) = "" m = m + 1 Wend If FeuilleExiste(ThisWorkbook, "FTP " & reference(i)) Then Else Workbooks.Open Filename:=k & "\FERT pliage automatisée " & reference(i) & indice(m) & ".xls" Windows("FERT pliage automatisée " & reference(i) & indice(m) & ".xls").Activate ' la je voudrai rajouter : si la feuille"panoplie" existe dans le fichier alors... j = Sheets("Poste de pliage").Range("C1") - 1 'N° de la feuille à afficher If j = 1 Then nom = "F.T.P. " & j & " POSTE DE PLIAGE" Else: nom = "F.T.P. " & j & " POSTES DE PLIAGE" End If Sheets(nom).Select Sheets(nom).Copy Before:=Workbooks( _ nom_fichier).Sheets(8) Windows("FERT pliage automatisée " & reference(i) & indice(m) & ".xls").Activate ActiveWindow.Close Sheets(nom).Select Sheets(nom).Name = "FTP " & reference(i) Sheets("Feuilles données").Select End If i = i + 1 Wend
ben pour lors de l'ouverture du classeur place le résultat dans une variable de type workbook...
tu peu ensuite utiliser ta variable wk ...qui pointe vers ton classeur... en évitant même tout tes activate ... par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim wk as workbook .... set wk Workbooks.Open (Filename:=k & "\FERT pliage automatisée " & reference(i) & indice(m) & ".xls")
Code : Sélectionner tout - Visualiser dans une fenêtre à part ..j = wk.Sheets("Poste de pliage").Range("C1") - 1 'N° de la feuille à afficher...
Partager