Bonjour,
Si je suis là, c'est que je sèche franchement alors je me penche vers vous pour soliciter des idées sur mon problèmes.
Sous Excel, il est apparement possible de pouvoir récupérer des arguments passés en ligne de commande, même qu'un exemple de fonction est donné pour parser ces commandes dans un tableau...
Jusque-là, pas de problème, voici même l'exemple qui est donné:
Function GetCommandLine(Optional MaxArgs)
' Déclare les variables.
Dim C, CmdLine, CmdLnLen, InArg, I, NumArgs
' Vérifie si MaxArgs a été spécifié.
If IsMissing(MaxArgs) Then MaxArgs = 10
' Définit un tableau au format approprié.
ReDim ArgArray(MaxArgs)
NumArgs = 0: InArg = False
' Récupère les arguments de ligne de commande.
CmdLine = Command()
CmdLnLen = Len(CmdLine)
' Analyse de la ligne de commande caractère par caractère.
For I = 1 To CmdLnLen
C = Mid(CmdLine, I, 1)
' Analyse de caractères d'espacement ou de tabulations.
If (C <> " " And C <> vbTab) Then
' Ni espace ni tabulation.
' Vérifie une éventuelle présence dans l'argument.
If Not InArg Then
' Le nouvel argument commence.
' Vérifie si les arguments ne sont pas trop nombreux.
If NumArgs = MaxArgs Then Exit For
NumArgs = NumArgs + 1
InArg = True
End If
' Concatène un caractère à l'argument courant.
ArgArray(NumArgs) = ArgArray(NumArgs) & C
Else
' Recherche un espace ou une tabulation.
' L'indicateur InArg prend la valeur False.
InArg = False
End If
Next I
' Redimensionne le tableau pour qu'il puisse
' juste contenir les arguments.
ReDim Preserve ArgArray(NumArgs)
' Renvoie le tableau dans le nom de fonction.
GetCommandLine = ArgArray()
End Function
Hors, j'ai beau appeler mon fichier Excel de diverses façons, j'ai toujours rien en sortie de ma fonction...
En fait, je ne sais pas comment passer ma ligne de commande à mon fichier xls pour récupérer ces arguments dans la fonction donnée par Micro$oft...
voilà toutes les lignes que j'ai essayé depuis ma console dos:
C:\Program Files\Microsoft Office\OFFICE11>EXCEL.EXE c:\fichier.xls toto.txt
C:\Program Files\Microsoft Office\OFFICE11>EXCEL.EXE c:\fichier.xls toto.txt
C:\Program Files\Microsoft Office\OFFICE11>EXCEL.EXE c:\fichier.xls /fichier=toto.txt
C:\Program Files\Microsoft Office\OFFICE11>EXCEL.EXE c:\fichier.xls /fichier=toto.txt
C:\Program Files\Microsoft Office\OFFICE11>EXCEL.EXE c:\fichier.xls /fichier=toto.txt
C:\Program Files\Microsoft Office\OFFICE11>EXCEL.EXE c:\fichier.xls /cmd toto.txt
en fait, en retour de ma fonction, je veux retrouver: toto.txt
Quelqu'un aurait-il une idée... si vous avez compris mon problème ... ?!
Merci d'avance...
-=Zac
Que le source soit avec vous ...