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 :

VBA - Excel - Chaine de caractères


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 47
    Par défaut VBA - Excel - Chaine de caractères
    Bonjour,

    Je bloque sur ceci :
    J'ai un fichier qui s'appelle devis.xlsm Quand le devis est rempli et que mon client veut sauvegarder le fichier, la macro crée un répertoire (en fonction de la valeur d'une cellule : par exemple : Dupont - Colfontaine) et enregistre le fichier sous un autre nom (en fonction d'autres champs du fichier par exemple : Dupont - Colfontaine - FRBA 20111121-2.xlsm). Jusque là ... pas de soucis.

    Mais je n'arrive pas à tester si, lors de l'enregistrement, le fichier est déjà dans le répertoire 'Dupont - Colfontaine' ou si le fichier est encore dans le répertoire d'origine (qui peut être différent en fonction de la personne qui utilise le fichier).
    Je pense donc qu'il serait utile de vérifier dans le chemin du classeur (ActiveWorkbook.path) si le nom du répertoire (Dupont - Colfontaine) se trouve bien dedans. Comment faire ?

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Si le fichier se trouve dans le répertoire "final" la fin de ActiveWorkbook.path correspond à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim StrPartielPath as string
     
    StrPartielPath = CelluleDupont & "\" & CelluleColfontaine  & "\" & CellueNomFichier
    Ensuite on regarde si cela correspond bien à la chaîne path en contrôlant le x derniers caractère. X correspondant au nombre de caractère dans la chaîne ou se trouve la texte a rechercher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if right(ActiveWorkbook.path,len(StrPartielPath)) = StrPartielPath then
      'On se trouve bien dans le répertoire final
     
    Else
      'On est pas dans le répertoire final
     
    End if
    Il serait également possible d'utiliser InStr, mais attention, la chaîne recherchée peut se trouver n'importe ou dans path, ce qui peut poser problème si par exemple on rechercher le nom des répertoires sans le nom fichier ou sans l’extension du fichier. Ce qui n'est pas le cas ici.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Août 2010
    Messages : 47
    Par défaut
    Merci pour la réponse.
    C'est une bonne idée de travailler sur la longueur du champ. Je retiens pour la prochaine fois.

    Entre temps j'avais trouvé cette solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ActiveWorkbook.Path Like "*" & nom_repertoire_client & "*" Then MsgBox "C'est dans le bon répertoire !."
    Bon ou pas bon ?

  4. #4
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, te renseigner sur FSO et FileExists ou plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function ExistenceFichier(sFichier As String) As Boolean
        ExistenceFichier = Dir$(sFichier) <> ""
    End Function

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Citation Envoyé par kiki29 Voir le message
    Salut, te renseigner sur FSO et FileExists ou plus simple
    Salut

    La demande initiale n'est pas de savoir si le fichier existe déjà mais de savoir où le fichier sur lequel il travaille est enregistré.

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/12/2013, 18h10
  2. [EXCEL/VBA] insertion d'un caractère dans une chaine
    Par rodrigue62 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/02/2008, 16h37
  3. Réponses: 1
    Dernier message: 06/05/2007, 17h42
  4. VBA-EXCEL erreur de caractère ' dans requete
    Par rafnt dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/09/2006, 08h42
  5. [vb excel]Gestion de chaine de caractère et de fichier
    Par shirya dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 03/10/2005, 09h58

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