rbonnal
Messages postés19Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention21 mars 2008
-
21 mars 2008 à 09:28
rbonnal
Messages postés19Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention21 mars 2008
-
21 mars 2008 à 11:03
Bonjour,
J'ai un comportement bizarre sur la fonction Application.GetOpenFilename en mode multiselection de fichier.
La fonction ouvre bien la boite de dialogue pour une séléction multifichier.
J'appelle la fonction comme cela :
Chemin = Application.GetOpenFilename(, , , , True)
L'option multiselect à true est sensé retourner un tableau de string contenant les chemins des fichiers sélectionnés même si un seul est sélectionné ou false si l'utilisateur clique sur cancel.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
Hors parfois, la fonction retourne seulement une string contenant le chemin du 1er fichier sélectionné. Ce comportement est aléatoire.
Est-ce que quelqu'un peut m'éclairer ? J'ai chercher sur le forum et sur le net (msd,.) mais je n'ai rien trouvé sur ca.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 21 mars 2008 à 09:44
Je ne rencontre pas ce genre de travers...
Sub test()
Dim zResult As Variant
Dim i As Long
zResult = Application.GetOpenFilename(MultiSelect:=True)
If VarType(zResult) <> vbBoolean Then
For i = 1 To UBound(zResult)
Debug.Print i, zResult(i)
Next i
End If
End Sub
si malgré mon code tu continue de recevoir parfois une chaine unique, tu pourras utiliser ce genre de test:
Sub test()
Dim zResult As Variant
Dim i As Long
zResult = Application.GetOpenFilename(MultiSelect:=True)
Select Case VarType(zResult)
Case vbString
Debug.Print 1, zResult
Case (vbArray Or vbString)
For i = 1 To UBound(zResult)
Debug.Print i, zResult(i)
Next i
End Select
End Sub
rbonnal
Messages postés19Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention21 mars 2008 21 mars 2008 à 10:46
Merci de vos réponses.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>
Je n’ais pas put isoler le moment (je continue à tester). Ce qui est bizarre c’est que le problème apparaît d’un seul coup et qu’il disparaît si je reboute le PC. C’est peut être qu’il faut réinstallé Excel… Pourtant je n’ais jamais eu de problème avec mon excel. Sinon il faut faire avec la méthode de
Renfield
qui solutionne astucieusement le plantage. Mais on ne récure ainsi que le premier des chemins.
rbonnal
Messages postés19Date d'inscriptionjeudi 31 mars 2005StatutMembreDernière intervention21 mars 2008 21 mars 2008 à 11:03
Oui, en effet. Ton code est fonctionne bien.
Je vais m'en servir.
J'aurais juste aimé comprendre pourquoi parfois ca ne renvoi qu'une chaîne a lieu d'un tableau et pourquoi après un reboot on retrouve le comportement normal. Surtout que tout fonctionne bien dans le fichier et que les traitement son basique (traitement de fichiers texte).
En tout cas, merci de ton aide Renfield