Bonjour,
J'ai un problème avec une macro pour ouvrir automatiquement les fichiers qu'un utilisateur choisit dans une liste.
Dans un premier temps la macro fonctionnait bien losrque l'utilisateur choisissait un ou plusieurs fichiers. Mais ce programme générait une erreur si l'utilisateur cliquait sur le bouton Annuler ou sur la croix de fermeture de la boîte de dialogue. J'ai donc rajouté des instructions pour résoudre ce problème. Malheureusement cela ne fonctionne pas et génére une erreur de type 13 lorsque je sélectionne un ou plusieurs fichiers. Je pense que le problème vient de la valeur de la variable OuvrirFichiers mais je n'arrive pas à trouver de solution !
L'un d'entre vous a t'il une solution à m'apporter ? D'avance merci.
J'ai un problème avec une macro pour ouvrir automatiquement les fichiers qu'un utilisateur choisit dans une liste.
Dans un premier temps la macro fonctionnait bien losrque l'utilisateur choisissait un ou plusieurs fichiers. Mais ce programme générait une erreur si l'utilisateur cliquait sur le bouton Annuler ou sur la croix de fermeture de la boîte de dialogue. J'ai donc rajouté des instructions pour résoudre ce problème. Malheureusement cela ne fonctionne pas et génére une erreur de type 13 lorsque je sélectionne un ou plusieurs fichiers. Je pense que le problème vient de la valeur de la variable OuvrirFichiers mais je n'arrive pas à trouver de solution !
L'un d'entre vous a t'il une solution à m'apporter ? D'avance merci.
Code:
Sub OuvertureDeFichiers()
Dim OuvrirFichiers As Variant
MsgBox ("valeur de OuvriFichiers =" & OuvrirFichiers)
'affichage de la boîte de dialogue Ouvrir
OuvrirFichiers = Application.GetOpenFilename("Tous les fichiers Microsoft Excel, *.xls", , , , True)
If OuvrirFichiers = False Then
MsgBox "Aucun fichier n'a été sélectionné. Fin de la procédure", _
vbOKOnly + vbCritical, "Fin de la procédure"
Exit Sub
End If
'si l'utilisateur a sélectionné plusieurs fichiers
If UBound(OuvrirFichiers) > 1 Then
Dim rep As Long
Dim liste As String
Dim compteur As Byte
For compteur = 1 To UBound(OuvrirFichiers)
liste = liste & vbCr & OuvrirFichiers(compteur)
Next compteur
'affichage de la liste des fichiers et proposition d'ouverture
rep = MsgBox("L'utilisateur a sélectionné plusieurs fichiers. En voici la liste." & _
liste & vbCr & "Voulez-vous les ouvrir ?", vbYesNo + vbQuestion, "Ouvrir les fichiers ?")
'ouverture des fichiers en cas de réponse positive
If rep = vbYes Then
For compteur = 1 To UBound(OuvrirFichiers)
Workbooks.Open Filename:=OuvrirFichiers(compteur)
Next compteur
End If
'si un seul fichier a été sélectionné, il est ouvert
Else
Workbooks.Open Filename:=OuvrirFichiers(1)
End If
End Sub