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