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 :

nom de la feuille active


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Par défaut nom de la feuille active
    bonjour;
    j'ai plusieurs macros qui peuvent se déclencher dans mon classeur, nécessitant l'activation de l'une ou l'autre feuille, ceci à partir d'une feuille qqconque.
    mon souci est de revenir à la feuille de départ après la macro, ce qui, à mon sens, nécessite d'enregistrer le nom de la feuille active avant la macro. comment peut on connaitre le nom de la feuille active?
    merci
    Jean Pierre

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    En principe une procédure ne nécessite pas l'activation d'une feuille mais il faudrait voir le code pour pouvoir éventuellement corriger ça.

    Sinon pour répondre à ta question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub MaMacro()
    Dim Sh As Worksheet
     
    Set Sh = ActiveSheet
     
    'début procédure
    '...
    'fin de procédure
     
    Sh.Activate
    End Sub

  3. #3
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Salut

    Faudrait pas oublier de libérer la mémoire...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    'fin de procédure
     
    Sh.Activate
    Set Sh = Nothing    ' <-- détruit l'objet Sh, donc libère la mémoire.
    End Sub

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 223
    Par défaut
    merci à vous deux, ça marche...
    j'active une feuille pour importer un fichier texte
    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
    Workbooks("Fondecran1").Worksheets("importation").Activate
     Workbooks("Fondecran1").Worksheets("importation").Range("AE75:AM115").Value = ""
        Workbooks.OpenText Filename:="C:\Documents and Settings\All Users\Documents\MS_direct_ordi2\bb_1_5_15_ordi2.txt", _
            Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
            xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
            Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)
           Workbooks("Fondecran1").Worksheets("importation").Cells(75, 31).Value = Workbooks("bb_1_5_15_ordi2").Sheets("bb_1_5_15_ordi2").Cells(1, 1).Value     'importe l'isin
           Workbooks("Fondecran1").Worksheets("importation").Cells(75, 32).Value = Workbooks("bb_1_5_15_ordi2").Sheets("bb_1_5_15_ordi2").Cells(2, 1).Value     'importe la date et l'heure de crétion
           For comm = 3 To 7
           Workbooks("Fondecran1").Worksheets("importation").Cells(76, 28 + comm).Value = Workbooks("bb_1_5_15_ordi2").Sheets("bb_1_5_15_ordi2").Cells(comm, 1).Value
           Workbooks("Fondecran1").Worksheets("importation").Cells(77, 28 + comm).Value = Workbooks("bb_1_5_15_ordi2").Sheets("bb_1_5_15_ordi2").Cells(comm + 5, 1).Value
           Workbooks("Fondecran1").Worksheets("importation").Cells(78, 28 + comm).Value = Workbooks("bb_1_5_15_ordi2").Sheets("bb_1_5_15_ordi2").Cells(comm + 10, 1).Value
           Next
        Windows("bb_1_5_15_ordi2.txt").Activate
        ActiveWindow.Close
    je n'ai pas trouvé comment faire autrement

    de même pour recopier des colonnes entières d'une feuille sur l'autre sans copier les cellules une après l'autre, je suis obligé d'activer la feuille, dans ce cas.
    si c'est possible de s'en passer, merci de bien vouloir me le signaler.

    Jean Pierre

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Ci-dessous le code un peu remanié, tu peux tester pour moi stp ?

    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
    31
    32
    Sub test()
    Dim SHimport As Worksheet, SHordi2 As Worksheet, Wbk As Workbook, comm As Byte
    Application.ScreenUpdating = False
     
    Set SHimport = ThisWorkbook.Sheets("importation")
     
    Workbooks.OpenText Filename:="C:\Documents and Settings\All Users\Documents\MS_direct_ordi2\bb_1_5_15_ordi2.txt", _
        Origin:=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
        xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
        Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)
     
    Set Wbk = ActiveWorkbook
    Set SHordi2 = ActiveWorkbook.ActiveSheet
     
    With SHimport
        .Range("AE75:AM115").ClearContents
        .Cells(75, 31) = SHordi2.Cells(1, 1) '<- importe l'isin
        .Cells(75, 32) = SHordi2.Cells(2, 1) '<- importe la date et l'heure de crétion
        For comm = 3 To 7
            .Cells(76, 28 + comm) = SHordi2.Cells(comm, 1)
            .Cells(77, 28 + comm) = SHordi2.Cells(comm + 5, 1)
            .Cells(78, 28 + comm) = SHordi2.Cells(comm + 10, 1)
        Next
    End With
     
    Wbk.Saved = True
    Wbk.Close
    Set Wbk = Nothing
    Set SHimport = Nothing
    Set SHordi2 = Nothing
    Application.ScreenUpdating = True
    End Sub

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

Discussions similaires

  1. recupération des noms des feuilles actives dans un listbox
    Par phileurof dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 15/05/2012, 16h08
  2. Keydown sans la feuille active
    Par ShortcutZ dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 26/10/2006, 15h02
  3. Rapidité Macro lié à la feuille active
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/08/2006, 17h40
  4. [VBA-E]Récuperer le nom d'une feuille sans le N°
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 04/04/2006, 11h33
  5. Réponses: 4
    Dernier message: 09/11/2005, 17h11

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