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 :

erreur de syntaxe dans la déclaration du tableau ou de la fonction


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut erreur de syntaxe dans la déclaration du tableau ou de la fonction
    Bonsoir,

    J'utilise FileSearch pour rechercher tous les fichiers excel d'un dossier, malheuresement Foundfiles(i) me retourne le chemin complet du fichier du type : c:\test\monFichier.xls alors que je n'ai besoin que du "nomFichier".
    J'envoie dans ce resultat dans une fonction rechercher_nom qui à coup de split devrait me retourner le nom voulu.
    C'est sur cette fonction que j'ai un message "Erreur de compilation : Erreur de syntaxe".
    Y a t il une ame charitable pour m'indiquer où se trouve l'erreur dans la déclaration de la fonction ou des tableaux. (j'ai essayé plusieurs syntaxes mais rien n'y fait j'ai le même message
    Je vous remercie d'avance de votre aide.
    Voici le code de la 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
     
     
    Public Function rechercher_nom(arg) As String
     
    'Déclaration des variables locales
     
    Dim Tab(2) As String
    Dim Nom(1) As String
    Dim mavar As String
     
    tab() = Split(arg,"\")
    mavar = tab(2)
    Nom = Split(mavar, ".")
    rechercher_nom = Nom(0)
    End Function

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Après avoir récupéré ton chemin complet, utilise la foction Dir, elle te donnera le nom du fichier (sans son chemin).

    Pour répondre à ta question, déclare tes tableaux sans dimension.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Tab() As String
    Dim Nom() As String
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    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
    Pour répondre à ta question, Tab est un mot réservé, change de nom de la variable.
    Tab, fonction


    Utilisée avec l'instruction Print # ou la méthode Print pour positionner la sortie.

    Syntaxe

    Tab[(n)]

    L'argument n représente le numéro de la colonne dans laquelle la prochaine expression d'une liste doit être affichée ou imprimée. Si cet argument est omis, la fonction Tab place le point d'insertion au début de la zone d'impression suivante. Il est ainsi possible de remplacer une virgule définie comme séparateur décimal par la fonction Tab dans les paramètres régionaux.
    si tu mettais le code en entier de recherche des fichiers, il y aura éventuellement plus simple

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 203
    Par défaut
    Un petit exemple peut aider, surtout pour boucler le Dir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                RépC = "C:\Program Files"
                Répertoire = Dir(RépC, vbDirectory)      'premier Dir
                For i = 1 To 100
                    If Répertoire = "" Or Répertoire = "Nom recherché" Then
                        Exit For
                    End If
                    Répertoire = Dir      ' 2ème Dir, puis permet de boucler
                Next i

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Merci beaucoup pour toutes ses infos et aussi rapidement.
    Je teste tout çà tout de suite.

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par mercatog Voir le message
    Pour répondre à ta question, Tab est un mot réservé, change de nom de la variable.
    Bien vu mercatog. Ca ne m'a même pas sauté aux yeux.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Merci beaucoup,
    Grâce à vos conseils, j'ai pu isoler les noms de fichiers et avancer.
    Par contre :
    Je teste le code en faisant F5 ou excuter Sub.
    a chaque tour de boucle ou avant chaque fonction, la procédure s'arrete et je dois appuyer régulièrement sur F5 pour que la procédure continue...
    ça ne vous dit rien ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 354
    Par défaut
    Merci à tous, je marque le post comme résolu

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

Discussions similaires

  1. erreur de syntaxe dans la déclaration d'une variable
    Par supcomingenieur dans le forum Langage
    Réponses: 13
    Dernier message: 10/05/2013, 13h48
  2. Erreur de syntaxe dans INSERT INTO VALUES
    Par Mariboo dans le forum Access
    Réponses: 4
    Dernier message: 25/05/2006, 18h57
  3. erreur de syntaxe dans l'instructiuon insert into
    Par greg64 dans le forum Access
    Réponses: 6
    Dernier message: 13/04/2006, 14h07
  4. Erreur de syntaxe dans une requete
    Par linou dans le forum Requêtes
    Réponses: 4
    Dernier message: 02/08/2005, 12h44
  5. [JSP]Erreur de syntaxe dans un tag <option select
    Par logica dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 03/05/2005, 14h33

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