Bonjour,
Dans un projet, je coince sur un point de détail qui me paraissait assez simple a priori.
(Précision : je suis sur Excel 2003 et sous Windows 10)
Dans une macro lancée par un formulaire, je dois ouvrir un fichier Excel à traiter, mais ce fichier doit avoir une feuille particulière. Je n'arrive pas à vérifier l'existence de cette feuille pour valider le fichier choisi.
Voici mon code :
Il n'y a pas d'erreur de compilation mais la fonction FeuilleExiste n'est même pas exécutée (j'ai mis des points d'arrêt) ! Puis le programme continue après le if FeuilleExiste comme si la fonction était ignorée, sans message d'erreur. J'ai beau lire et relire mon code, je ne trouve pas l'erreur (c'est peut-être tout bête mais je sèche !).... Merci pour votre aide.
@+
Pierre
Dans un projet, je coince sur un point de détail qui me paraissait assez simple a priori.
(Précision : je suis sur Excel 2003 et sous Windows 10)
Dans une macro lancée par un formulaire, je dois ouvrir un fichier Excel à traiter, mais ce fichier doit avoir une feuille particulière. Je n'arrive pas à vérifier l'existence de cette feuille pour valider le fichier choisi.
Voici mon code :
VB:
Dim Fichier As Variant
Public Sub OuvrirFichier()
' Ouvre un fichier et vérifie l'existence d'une feuille "Résultat"
Fichier = Application.GetOpenFilename("(*.xls), *.xls")
If Fichier = "Faux" Then
Exit Sub
End If
On Error Resume Next
If Fichier <> "" Then
Workbooks.Open (Fichier)
If FeuilleExiste("Résultat", (Fichier)) Then
Sheets("Résultat").Select
Range("A2").Activate
Else
rep = MsgBox("Le fichier choisi n'a pas de feuille 'Résultat' ; recommencer", vbOKOnly)
Fichier = ""
Exit Sub
End If
End If
End Sub
Function FeuilleExiste(NomFeuille As String, Classeur As Workbook) As Boolean
' Vérifie l'existence d'une feuille "NomFeuille" dans le classeur "Classeur"
Dim Feuille As Worksheet
For Each Feuille In Classeur.Worksheets
If Feuille.Name = NomFeuille Then
FeuilleExiste = True
Exit For
End If
Next Feuille
FeuilleExiste = False '(facultatif)
End Function
Il n'y a pas d'erreur de compilation mais la fonction FeuilleExiste n'est même pas exécutée (j'ai mis des points d'arrêt) ! Puis le programme continue après le if FeuilleExiste comme si la fonction était ignorée, sans message d'erreur. J'ai beau lire et relire mon code, je ne trouve pas l'erreur (c'est peut-être tout bête mais je sèche !).... Merci pour votre aide.
@+
Pierre