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 :

Ouvrir une feuille d'un classeur externe en fonction du mois [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lyon
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lyon
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Ouvrir une feuille d'un classeur externe en fonction du mois
    Bonjour

    Mon premier post sur ce forum
    Je voudrais rapidement commencer par remercier les membres et staff du forums car j'avoue que le site m'a beaucoup aider précédemment pour terminer certaines macro^^

    Bref, voici mon problème :

    [Sur Excel 2010] J'ai deux classeur, disons "classeur 1" et "classeur 2"

    Dans le premier, à la cellule B40 j'aimerai rentré un Mois de l'année (avec une liste déroulante de Janvier à Décembre).
    Jusque ici pas de problème...

    J'aimerai que ma macro, en fonction du mois rentré dans cette cellule, ouvre le "classeur 2" (çà je sait faire) et sélectionne la feuille (déjà existante) portant le nom correspondant au mois de l'année choisis dans la cellule B40 du "classeur 1" (c'est la que ça coince).

    Voila c'est tout

    Par contre (je sais pas si c'est possible) si il y à une méthode qui permet a la macro d'utiliser l'horloge interne du PC pour connaitre le mois en cour et ouvrir la feuille correspondante ce serait encore mieux.

    J'espère ne pas trop en demander.

    Merci d'avance

    Bien à vous,

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    salut,
    sans code difficile de t'aider.
    voici un code qui fonctionne, tu devras l'adapter à tes besoins:
    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
     
    Dim classeur1 As Workbook
    Dim classeur2 As Workbook
     
     
    Set classeur1 = ThisWorkbook
     
     
    Workbooks.Open "c:\test\test.xlsx"
     
     
    Set classeur2 = Workbooks("test.xlsx")
     
     
    'je récupère le mois en cours
    mois = Format(Date, "MMMM")
     
     
    'active la feuille qui a pour nom le mois en cours
    classeur2.Sheets(mois).Activate

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    demandeur d'emploi
    Inscrit en
    Mai 2014
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : demandeur d'emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2014
    Messages : 20
    Points : 36
    Points
    36
    Par défaut
    1. avec liste deroulante (fait avec "data validation" - desole, je ne sais pas un nom en francais) en B40
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub qqchose()
        Dim file As String
        Dim mois as String
     
        file = "book1.xlsm" ' nom d'autre classeur
     
        mois = Range("b40").Value       ' avec une liste deroulante OU avec object activeX Combobox associe a cette cellule
     
        Workbooks.Open (file)
        Workbooks(file).Worksheets(mois).Activate
    End Sub
    Pour ca, tu as besoin d'un button pour commencer cet macro.
    Ou - si tu veux le faire automatiquement chaque fois apres changer une cellule b40:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ' ajoutez ca en VBE pour la feuille avec ta cellule B40
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Intersect(Target, Range("b40")) Is Nothing Or Target.Cells.Count > 1 Then Exit Sub
        qqchose
    End Sub
    C'est aussi possible avec un mois courant et le button par exemple. Pour ca, simplement essayez a B40
    et le premier code (sub qqchose) + button
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    =TEXT(NOW(); "mmmm")
    ' ou en VBA
    mois = Format(Date, "MMMM")
    (desole je ne sais pas les noms de fonctions en francais)

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Lyon
    Inscrit en
    Juin 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Lyon
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2014
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup à vous deux d'avoir pris le temps de me répondre

    Je suis impatient de pouvoir tester vos formules !
    Je vous tiendrai informé du résultat dès que possible (demain ).

    Bonne soirée

    Edit : Votre méthode fonctionne parfaitement merci pour le coup de main

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/04/2010, 17h27
  2. [XL-2007] ouvrir une feuille dans un classeur
    Par samz25 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 20/07/2009, 17h05
  3. [WD11] Ouvrir une feuille Excel dans un classeur
    Par Watier_53 dans le forum WinDev
    Réponses: 1
    Dernier message: 10/04/2008, 20h00
  4. Ouvrir une feuille excel et mettre son contenu dans VB6
    Par bb62 dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 17/01/2006, 10h16
  5. ouvrir une feuille EXCEL dans Delphi.NET
    Par micha382 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 04/11/2005, 23h35

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