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 :

Comment récupérer le nom d'un fichier ouvert pour l'intégrer dans une macro pour ce même fichier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut Comment récupérer le nom d'un fichier ouvert pour l'intégrer dans une macro pour ce même fichier
    Bonsoir, j’ai créé une macro dans un fichier qui est en lecture seule. Lorsque j’enregistre une copie de ce fichier je change son nom. Mon Pb c’est que la macro contenue dans ce nouveau fichier ne fonctionne plus à cause du nom du fichier matrice qui est resté dans cette macro. Je souhaiterais savoir comment récupérer le nom du nouveau fichier que j’ai créé pour pouvoir ensuite l’intégrer à ma macro à la place de « Workbooks("RACINE.xlsm").Worksheets("Feuil1").Activate ».
    Merci d’avance pour votre aide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Macro_TRIER()
    Workbooks("RACINE.xlsm").Worksheets("Feuil1").Activate
        Sheets("Feuil1").Select
    …
    …

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 127
    Points : 9 956
    Points
    9 956
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    Utilises ThisWorkbook, qui défini le classeur qui contient le code de la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Macro_TRIER()
    ThisWorkbook.Worksheets("Feuil1").Activate
    Sheets("Feuil1").Select
    ceci étant, serait-il possible de voir la suite de ton code (la procédure Macro_TRIER complète) ? j'ai un petit "pressentiment"

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2015
    Messages : 18
    Points : 0
    Points
    0
    Par défaut
    Bonjour Joe, merci pour ton aide. Biensûr que je peux te montrer la suite de la macro :
    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
    Sub Macro_TRIER()
        ThisWorkbook.Worksheets("Feuil1").Activate
        Sheets("Feuil1").Select
        ActiveSheet.Unprotect Password:=""
        ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False _
            , AllowSorting:=True, AllowFiltering:=True
        ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort.SortFields.Add Key:=Range _
            ("A:A"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
            xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").AutoFilter.Sort
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        Sheets("Feuil1").Select
        ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:= _
        False
        ActiveSheet.Protect Password:=""
        Range("AA1").Select
    End Sub

  4. #4
    Expert éminent sénior
    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
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, petit intermède : Balise ton code

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Il suffit de remplacer tous tes ActiveWorkbook par des ThisWorkbook et le tour est joué.

Discussions similaires

  1. Réponses: 16
    Dernier message: 06/03/2015, 00h14
  2. Réponses: 3
    Dernier message: 19/05/2011, 14h24
  3. Réponses: 2
    Dernier message: 01/07/2010, 18h05
  4. Réponses: 2
    Dernier message: 24/08/2006, 10h46
  5. Réponses: 1
    Dernier message: 18/04/2006, 23h16

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