Excel classeur fermé

Bonjour,

Je travaille actuellement sur un projet pour mon travail.

Je bloque sur une partie de mon code.

Je voudrais sois décativer le message d'exel quand il ne trouve pas la feuille dans le classeur fermé ou mettre un ( if noting)

Public Fichier As String, ficheJour As String
Function Chemin() As String
Chemin = Sheets("ConfigAMPM").Range("B1")
End Function
Function intJour() As Integer
intJour = Sheets("calage").Range("A1")
End Function
Function strJour() As String
strJour = Format(intJour, "00")
End Function
Function intMois() As Integer
intMois = Sheets("calage").Range("B1")
End Function
Function strMois() As String
strMois = Format(intMois, "00")
End Function
Function annee() As Integer
annee = Sheets("calage").Range("C1")
End Function
Function Equipe() As String
Equipe = Sheets("calage").Range("A3")
End Function
Function mois() As String
mois = Sheets("ConfigAMPM").Range("A1")
End Function

Sub calagek1()
Dim ficheJour As Variant
Fichier = "Komori_" & mois & "_" & annee & ".xlsm"
ficheJour = strJour & "." & strMois & "." & annee & "_" & Equipe

                ThisWorkbook.Names.Add "FicheAmPm", _
                            RefersTo:="='" & Chemin & "[" & Fichier & "]" & ficheJour & "'!$C$4:$H$140"
                    With Sheets("vierge")
                        .[C4:H140] = "=FicheAmPm"
                        .[C4:H140].Copy
                        Sheets("ConfigAMPM").Range("A10:F146").PasteSpecial xlPasteValues
                        .[C4:H140].Clear
                    End With

Mon problème est que si la feuille n'est pas créer le macro bloque à la ligne " .[C4:H140] = "=FicheAmPm""

Le nom des feuille sont de type (01.01.2016_AM) et sont archiver dans le classeur fermé.

Merci

Bonjour,

http://boisgontierjacques.free.fr/pages_site/ado.htm#LectureClasseurFerme

Vers le bas tu as : Liste des feuilles d'un classeur fermé

eric

Private Function OkSheetName(FullPathFile$, SheetName$) As Boolean
Dim Con As Object, Cat As Object, Tbl As Object
Set Con = CreateObject("ADODB.Connection")
Con.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" _
& FullPathFile & ";" & "Extended Properties=""Excel 12.0;HDR=YES;"""
Set Cat = CreateObject("ADOX.Catalog")
Set Cat.ActiveConnection = Con
For Each Tbl In Cat.Tables
If Left$(Tbl.Name, Len(Tbl.Name) - 1) = SheetName Then
OkSheetName = True
Exit For
End If
Next Tbl
Set Cat = Nothing: Con.Close: Set Con = Nothing
End Function

Sub SheetExists()
Const Wbk$ = "C:\Taf\CD_janvier_2016.xlsm"
Const Sht$ = "06.01.2016_PM"
If OkSheetName(Wbk, Sht) Then
MsgBox "La feuille " & Sht & " est présente dans le classeur:" & vbLf & Wbk & " !", 64
Else
MsgBox "Pas de feuille"
End If
End Sub

Les feuilles du classeurs fermé sont protégés et non visible donc il ne les trouve pas alors que elle existe bien

Plus qu'à faire un traitement d'erreur.

Fais une recherche car les possibilités sont nombreuses selon ce que tu dois réaliser ou non sur erreur .

Merci j'ai enfin réussi

Rechercher des sujets similaires à "classeur ferme"