IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Passage d'une string en paramètre [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut Passage d'une string en paramètre
    Bonjour,

    Ne souhaitant pas réinventer la roue, j'ai récupérer du code pour extraire un zip. Le code fonctionne bien, je décide de le mettre dans une Fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Function ExtractZip(zipFileLocation As String, outputLocation As String)
     
        Dim fso, tempfile, tfolder
        Dim zipFile, output
     
        ' I don't know why but if I didn't do that it doesn't work <= ca c'est moi!!!
        zipFile = zipFileLocation
        output = outputLocation
     
        ' Shell object
        Set objShell = CreateObject("Shell.Application")
        ' File system object
        Set fso = CreateObject("Scripting.FileSystemObject")
     
        ' Extract the file
        Set FilesInZip = objShell.Namespace(zipFile).items
        objShell.Namespace(output).CopyHere (FilesInZip)
     
        ' Reset variable
        Set fso = Nothing
        Set objShell = Nothing
     
    End Function
    Mon soucis, c'est les affectations en début de fonction. Si je fais
    Set FilesInZip = objShell.Namespace(zipFileLocation).items
    sans passer par la variable intermédiaire, cela ne fonctionne pas, je me prend l'erreur 91, objet indéfini [Object variable or With block variable not set (Error 91)].

    En soi, cela fonctionne et pourrai me convenir, mais je ne comprend pas trop pourquoi je dois utiliser des variables locales , merci de votre aide.

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    ça passe pour des variants
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Function ExtractZip(ByVal zipFileLocation, ByVal outputLocation) As Boolean
    '....

  3. #3
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 165
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Si j'ai bien compris ton soucis, fais précéder le nom de l'argument par ByVal
    Lire le chapitre IV. La différence entre ByRef et ByVal
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 646
    Par défaut
    Super! Ca marche nickel, j'en ai profité pour lire le chapitre!
    Merci les gars!!!

  5. #5
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut





    Bonjour, bonjour !

    Juste pour signaler dans le code l'inutilité de fso !


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [FLASH 8] Pb passage d'une fonction en paramètre
    Par segphault dans le forum Flash
    Réponses: 2
    Dernier message: 17/02/2006, 11h14
  2. passer une String en paramètre
    Par fabhxc dans le forum Langage
    Réponses: 11
    Dernier message: 28/12/2005, 15h46
  3. Passage d'une requete en paramètre dans un delete
    Par jlamazou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 03/08/2005, 17h58
  4. Réponses: 6
    Dernier message: 26/07/2005, 10h20
  5. Réponses: 1
    Dernier message: 15/04/2005, 11h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo