Gestion d'erreurs successives

Bonjour,

Je souhaite parcourir un dossier contenant des fichiers excel aux formats différents (.XLSB, .xls, .xlsx) et les ouvrir.

J'ai adopté la méthode suivante :

On Error GoTo vieux_format
Application.DisplayAlerts = False
Workbooks.Open (source_extraction & ".XLSB")
Exit Sub

vieux_format:
On Error GoTo encore_plus_vieux_format
    Workbooks.Open (source_extraction & ".xlsx")
    Exit Sub

encore_plus_vieux_format:
    Workbooks.Open (source_extraction & ".xls")
    Exit Sub
Application.DisplayAlerts = True

Le premier passage se passe bien (dans le cas d'un fichier .xlsx, il s'ouvre bien )

Mais lorsque j'essaye d'ouvrir un fichier .xls, je reste bloqué dans vieux_format et je reçois un message d'erreur sur le fait que le fichier en .xlsx n'existe pas.

Pourriez-vous m'aider ?

Par avance merci et excellente journée à tous !

Bonjour,

Je souhaite parcourir un dossier contenant des fichiers excel aux formats différents (.XLSB, .xls, .xlsx) et les ouvrir.

J'ai adopté la méthode suivante :

On Error GoTo vieux_format
Application.DisplayAlerts = False
Workbooks.Open (source_extraction & ".XLSB")
Exit Sub

vieux_format:
On Error GoTo encore_plus_vieux_format
    Workbooks.Open (source_extraction & ".xlsx")
    Exit Sub

encore_plus_vieux_format:
    Workbooks.Open (source_extraction & ".xls")
    Exit Sub
Application.DisplayAlerts = True

Le premier passage se passe bien (dans le cas d'un fichier .xlsx, il s'ouvre bien )

Mais lorsque j'essaye d'ouvrir un fichier .xls, je reste bloqué dans vieux_format et je reçois un message d'erreur sur le fait que le fichier en .xlsx n'existe pas.

Pourriez-vous m'aider ?

Par avance merci et excellente journée à tous !

Bonjour, as-tu vérifié qu'il y a bien un fichier au format xlsx dans la source d'extraction ?

Bonjour,

justement, l'intérêt de ma démarche est que s'il n'y a pas de fichier xlsx, il cherche un fichier xls.

Il y a toujours un des trois.

Bon j'ai trouvé une solution, la voici

If Dir(source_extraction & ".XLSB") <> "" Then
    Set Source = Application.Workbooks.Open(source_extraction & ".XLSB")
ElseIf Dir(source_extraction & ".XLSX") <> "" Then
    Set Source = Application.Workbooks.Open(source_extraction & ".XLSX")
ElseIf Dir(source_extraction & ".XLS") <> "" Then
    Set Source = Application.Workbooks.Open(source_extraction & ".XLS")
End If
Rechercher des sujets similaires à "gestion erreurs successives"