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 : Problème d'interprétation de string variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chimiste
    Inscrit en
    Janvier 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Janvier 2024
    Messages : 2
    Par défaut VBA Excel : Problème d'interprétation de string variable
    Bonjour,

    J'aurais besoin d'aider pour finaliser ma macro. Et je ne suis pas du tout développeur et suis très débutant

    J'essaie de faire une boucle pour que la macro crée 5 dossiers avant d'y ajouter différents fichiers.
    J'ai réussi à le faire en séquentiel en faisant une ligne de code par dossier à créer mais j'aimerais l'alléger pour pouvoir en ajoutant sans modifier plusieurs lignes.

    Voici mon code simplifié où ça ne fonctionne pas. En effet, au lieu de créer le dossier "exemple1" dans le bon dossier, cela me crée un dossier "dossier1". Visiblement, mon ("dossier" & m) est traduit en "dossier1" et non en dossier1 qui renverrai "C://.../exemple1".

    Est-ce que quelqu'un a une solution a me proposer ?

    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
    24
    25
    26
    27
    28
    29
    30
     
    Sub Test()
     
    Dim Dossier1 As String
    Dim Dossier2 As String
    Dim Dossier3 As String
    Dim Dossier4 As String
    Dim Dossier5 As String
     
    Dim m As Integer
     
    'Destinations des fichiers
        'Dossiers
    Dossier1 = "C://.../exemple1"
    Dossier2 = "C://.../exemple2"
    Dossier3 = "C://.../exemple3"
    Dossier4 = "C://.../exemple4"
    Dossier5 = "C://.../exemple5"
     
    'Création des dossiers
    For m = 1 To 5
     
        If Dir(("Dossier" & m), vbDirectory) <> vbNullString Then
    Else
            MkDir ("Dossier" & m)
    End If
     
    Next m
     
    End Sub
    Merci beaucoup par avance
    Axel

  2. #2
    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 173
    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 173
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Vous ne pouvez construire une variable à l'aide d'une boucle.
    Soit vous utilisez une seule variable nommée "Dossier" et vous modifiez la valeur à lui transmettre avec par exemple "Exemple" & m (étant la valeur de la boucle) soit si vous souhaitez stocker au préalable le chemin ou le nom du dossier, il vous faut passer par une variable dimensionnée comme par exemple Dossier(1) = "Exemple1" Dossier(2) = Exemple2, etc.

    Pour en savoir plus sur les variables dimensionnées Utiliser les variables tableaux en VBA Excel
    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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chimiste
    Inscrit en
    Janvier 2024
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Chimiste

    Informations forums :
    Inscription : Janvier 2024
    Messages : 2
    Par défaut
    Citation Envoyé par Philippe Tulliez Voir le message
    Bonjour,
    Vous ne pouvez construire une variable à l'aide d'une boucle.
    Soit vous utilisez une seule variable nommée "Dossier" et vous modifiez la valeur à lui transmettre avec par exemple "Exemple" & m (étant la valeur de la boucle) soit si vous souhaitez stocker au préalable le chemin ou le nom du dossier, il vous faut passer par une variable dimensionnée comme par exemple Dossier(1) = "Exemple1" Dossier(2) = Exemple2, etc.

    Pour en savoir plus sur les variables dimensionnées Utiliser les variables tableaux en VBA Excel
    Merci beaucoup

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

Discussions similaires

  1. [VBA-EXCEL] Afficher le résultat d'une variable à l'écran
    Par Froggy007 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 29/09/2008, 16h10
  2. Réponses: 3
    Dernier message: 09/04/2006, 09h10
  3. [VBA excel] une variable pour 2 classeurs
    Par totoche dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/01/2006, 09h42
  4. [VBA] excel croisé dynamique et plage de données variables
    Par totoche dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 04/01/2006, 18h14
  5. VBA Excel : Appel d'un userform à l'aide d'une variable
    Par pierrot657 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 01/06/2005, 23h08

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