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 :

Ouverture de fichier avec "like"


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut Ouverture de fichier avec "like"
    Bonjour à tous,

    Je travaille actuellement sur une macro assez longue qui comporte à son début une ouverture de fichier si dans un dossier predefine, un mot est compris dans le workbook en question.

    Je suis donc parti sur cette macro, qui check bien tous les dossiers du fichier mais cependant n'ouvre rien meme quand un fichier comporte le "NomTypeProduit"

    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
    Function Magic_Open(ByVal NomDossier As String, ByVal NomFichier As String, ByVal NomTypeProduit As String)
     
    Dim FSO As Scripting.FileSystemObject
    Dim DossierSource As Scripting.Folder
    Dim Fichier As Scripting.File
    Dim r As Long
     
    Set FSO = New Scripting.FileSystemObject
    Set DossierSource = FSO.GetFolder(NomDossier)
     
        For Each Fichier In DossierSource.Files
            If Fichier Like "?" & NomTypeProduit & "?" Then
            Application.Workbooks.Open Fichier
            End If
        Next Fichier
     
    End Function
    merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tu utilises très mal l'opérateur LIKE.

    Un tuto à lire sur le sujet : http://loufab.developpez.com/tutorie...operateurlike/

    Philippe

  3. #3
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut
    En effet !

    je viens de me render compte de l'erreur, il fallait utiliser "*" plutôt que "?"

    Merci de ta rapidité, je n'avais pas vu ce tuto.

    Cordialement

    ps : la macro fonctionne, mais l'appel de function non (erreur de syntaxe)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Worksheets("Control").Select
    Magic_Open(START_FILE_CAP_FLOOR, END_FILE_CAP_FLOOR, TYPE_FILE_CAP_FLOOR, CURRENT_CURRENCY)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    Tu as 3 paramètres à ta fonction et tu veux en passer 4.

    CURRENT_CURRENCY n'a rien à faire là.

    Philippe

  5. #5
    Membre à l'essai
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Juillet 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant fonctionnel

    Informations forums :
    Inscription : Juillet 2017
    Messages : 7
    Par défaut
    j'ai ajouté dans la function une 4e variable ,donc current currency n'est pas le souci.

    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
    Function Magic_Open(ByVal NomDossier As String, ByVal NomFichier As String, ByVal NomTypeProduit As String, ByVal Devise As String)
     
    Dim FSO As Scripting.FileSystemObject
    Dim DossierSource As Scripting.Folder
    Dim Fichier As Scripting.File
    Dim r As Long
     
    Set FSO = New Scripting.FileSystemObject
    Set DossierSource = FSO.GetFolder(NomDossier)
     
        For Each Fichier In DossierSource.Files
            If Fichier Like "*" & NomTypeProduit & "*" Then
                If Fichier Like "*" & Devise & "*" Then
                Application.Workbooks.Open Fichier
                End If
            End If
        Next Fichier
     
    End Function

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    D'abord ce n'est pas une fonction que tu dois utiliser mais une routine Sub.

    Une fonction est faire pour retourner une valeur, une routine pour faire une action.

    Philippe

Discussions similaires

  1. ouverture de fichier avec evc4.0
    Par gids01 dans le forum MFC
    Réponses: 4
    Dernier message: 22/11/2005, 14h09
  2. Aide sur ouverture de fichier avec access
    Par FusionR dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 17/06/2004, 13h02

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