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 :

changement de variable dans du code [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

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

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut changement de variable dans du code
    Bonjour à tous,

    J'aimerais savoir si c'est possible de changer des valeurs dans le code vba, sans avoir à rentrer dans l'onglet developpeur.
    J'ai mis un petit exemple ci-dessous.
    En fait chaque mois, je dois rentrer dans le code pour changer Fevrier 2015 et Mars 2015. Je souhaite changer ses variablesdans une feuille excel pour plus de simplicité.
    Est ce possible?


    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
    Private Sub CommandButton1_Click()
     
    Dim Fichier As String
    Dim WinXp As New clsWindowsExporer
     
    Fichier = Dir("D:\PREV\Fichiers\*Fevrier15.doc")
     
    While Fichier <> ""
     
    WinXp.Copie_Fichier "D:\PREV\Fichiers\" & Fichier, "D:\PREV\Fichiers\" & Replace(Fichier, "Fevrier15", "Mars15")
    WinXp.Supprimer_Fichier "D:\PREV\Fichiers\" & Fichier
     
        Fichier = Dir
    Wend
     
    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Bonjour Marc31,

    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton1_Click()
     
    Dim ma_variable As String
    Dim Fichier As String
    Dim WinXp As New clsWindowsExporer
     
    'Tu places dans la range A1 de la FeuilX ce que tu veux changer.
    ma_variable = Worksheets("FeuilX").Range("A1")
    ma_variable = "D:\PREV\Fichiers\*" & ma_variable & ".doc"
     
    Fichier = Dir(ma_variable)
     
    While Fichier <> ""
    Voila. N'hésite pas à revenir vers moi !

    Cordialement,
    Kimy

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut changement de variable dans du code
    Merciii pour ta rapidité et ton efficacité! Bonne journée

  4. #4
    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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En utilisant par exemple des cellules nommées
    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Const fichier As String = "c:\mesdocuments\Facture février 15 .xls"
     MsgBox Replace(fichier, Range("oldDate").Text, Range("newDate").Text)
    Pour l'exemple, j'utilise la propriété Text au lieu de Value parce-que le nom de ton fichier est le nom d'un mois suivi des deux derniers chiffres de l'année or si tu encodes Février 15 dans une cellule d'excel, il risque de le transformer en date et donc il est préférable d'entrer 1/1/2015 et le formater (format personnalisé) mmmm aa et la propriété Text te renverra la valeur formatée alors que Value renverra le n° de série de la date.
    Attention toutefois que le format mmmm renvoie le mois en minuscule.
    Pour que Février 15 soit considérée comme une valeur alphanumérique, tu peux l'encoder en le faisant précéder par l'apostrophe. la propriété Value peut alors être utilisée sans problème (elle peut aussi être omise car c'est la propriété par défaut de l'objet Range) .
    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

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 019
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 019
    Par défaut changement de variable dans du code vba
    Merci pour les infos et le mois que je dois changer ce retrouve deux fois en fait dans mon chemin.....
    C'est possible de mettre deux variables?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Fichier = Dir("D:\PREVE\Fevrier2015\Coms\Fichiers\*Fevrier15.doc")
    ma_variable = "D:\PREV\" & ma_variable & "2015\Fichiers\*" & ma_variable & ".doc"

  6. #6
    Membre Expert
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Par défaut
    Marc31,

    Si tu as toujours le même formalisme à savoir :
    "D:\PREVE\" Fevrier2015 "\Coms\Fichiers\*" Fevrier15 ".doc"

    tu peux partir sur quelque chose du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ma_variable = Worksheets("FeuilX").Range("A1")
     
    ma_variable = "D:\PREVE\" & Left(ma_variable, Len(ma_variable) - 2) & "20" & Right(ma_variable, 2) & "\Coms\Fichiers\*" & ma_variable & ".doc"
     
    Fichier = Dir(ma_variable)
    Mais c'est "grossier". ^^
    Place "Fevrier15" dans la cellule concernée.

    N'hésite pas à revenir vers moi.

    Cordialement,
    Kimy

  7. #7
    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 171
    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 171
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La fonction Replace modifie tous les éléments de même orthographe d'une chaîne de caractères.
    Ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim txt$
     txt = "D:\PREVE\Fevrier2015\Coms\Fichiers\*Fevrier15.doc"
     txt = Replace(txt, "Fevrier", "Mars")
     Debug.Print txt
    renverra
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    D:\PREVE\Mars2015\Coms\Fichiers\*Mars15.doc
    A adapter avec les paramètres
    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

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

Discussions similaires

  1. Visibilité des variables dans le code généré par le GUIDE
    Par salseropom dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 09/10/2007, 08h50
  2. [Question] Doit-on traduire les noms de variables dans le code?
    Par r0d dans le forum Traduction Penser en C++
    Réponses: 4
    Dernier message: 21/02/2007, 20h54
  3. Variable dans le code du projet
    Par the big ben 5 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 03/11/2006, 11h21
  4. [FLASH MX2004] Utiliser une variable dans le code
    Par arnolem dans le forum Flash
    Réponses: 25
    Dernier message: 02/12/2005, 16h37
  5. [vb.net] utilisation d'une variable dans le code
    Par arnolem dans le forum Windows Forms
    Réponses: 9
    Dernier message: 30/09/2005, 19h22

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