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 :

afficher feuille du mois en cours


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 29
    Points
    29
    Par défaut afficher feuille du mois en cours
    bonjour à tous,
    j'ai un petit souci avec mon code vba.
    dans mon fichier excel j'ai 12 feuilles (masquées) représentants les 12 mois de l'année.
    je souhaite utiliser un code qui m'affiche la feuille du mois en cours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheets(Month(Now)).Visible = True
    Sheets(Month(Now)).Activate
    seulement il me donne toujours le mois d'octobre au lieu de décembre

    alors j'ai renommé ma feuille décembre différement (dec, 12, december, decembre) mais rien n'y fait

    est-ce que vous pouvez m'aider ?

    d'avance merci
    Stéph

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    salut, je te propose de faire déjà un
    et de t'asssurer que tu as bien 12.
    Ensuite, le nom de tes feuilles doit être 1...12 pour que ca marche.

  3. #3
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2006
    Messages : 102
    Points : 86
    Points
    86
    Par défaut
    Bonjour,

    Comme le dit jpcheck utilise le numero du mois.
    Et essaye d'utiliser la méthode select pr changer de changer de feuille au lieu d'activate.

    Antoine

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Re,

    j'ai donc renommé toutes mes feuilles de 1 à 12
    et les ai toutes visibles, c'est plus facile pour tester les codes

    voici donc le code que j'essai, mais pareil j'arrive sur le mois 10:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Debug.Print Month(Now)
    Sheets(Month(Now)).Select

  5. #5
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    Bonjour,
    les nom d'une sheet est string
    essais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A = CStr(Month(Now))
     
    Sheets(A).Select

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    super,

    ça fonctionne !!
    un grand merci
    Et merci aussi pour les Cours Excel

    petite question supplémentaire,
    est-il possible d'appliquer ce code pour les trimestres ?

  7. #7
    Membre chevronné Avatar de Jean-Pierre49
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2007
    Messages
    659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 659
    Points : 2 056
    Points
    2 056
    Par défaut
    A ma connaissance il n'y a pas de fonction pour le No du trimestre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        If Month(Now) <= 4 Then
            Trimestre = 1
        ElseIf Month(Now) > 4 And Month(Now) <= 6 Then
            Trimestre = 2
        ElseIf Month(Now) > 6 And Month(Now) <= 9 Then
            Trimestre = 3
        Else
            Trimestre = 4
        End If
     
    A = CStr(Trimestre)
     
    Sheets(A).Select

  8. #8
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Si tu veux le trimestre d'une date, tu peux utiliser la fonction Format

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(Date,"q",vbMonday,vbFirstJan1)
    Starec

  9. #9
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour,

    je n'ai pas réussi à faire fonctionner ton code Starec

    je m'en suis inspiré pour l'utiliser avec DateDiff
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Trimestre = DateDiff("q", DateSerial(Year(Date), 1, 1), Date, vbMonday, vbFirstJan1) + 1
    EDIT plus simple avec DatePart .
    Finalement presque ce que tu avais donné certainement trop hativement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Trimestre = DatePart("q", Date, vbMonday, vbFirstJan1)
    cordialement

  10. #10
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par fred65200 Voir le message
    bonjour,
    je n'ai pas réussi à faire fonctionner ton code Starec
    Bonjour Fred

    Je viens de le copier dans la fenêtre éxécution de mon éditeur VBE, et cela fonctionne parfaitement.

  11. #11
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonsoir,

    Accepte toutes mes excuses Starec, je ne sais pas ce que j'ai fait ce midi, ton code fonctionne parfaitement

    cordialement

  12. #12
    Invité
    Invité(e)
    Par défaut
    Excuses acceptés

    Tu m'avais mis un doute, alors que je teste toujours les codes que je mets.

    A +

    Starec

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 29
    Points
    29
    Par défaut afficher feuille du mois en cours
    bonjour à tous,
    tout d'abord une bonne année 2008
    ensuite, merci pour vos réponses pour lesquelles je n'ai pu réagir plus tôt car vacances ...

    j'ai testé le dernier code de Starec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Format(Date, "q", vbMonday, vbFirstJan1)
    dans un fichier vide il fonctionne très bien, seulement une fois que je l'incorpore de la manière suivante avec mes autres codes cela ne va plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    B = Format(Date, "q", vbMonday, vbFirstJan1)
    B représentant mes feuilles 1 à 4 pour mes 4 trimestres
    B car j'utilise déjà A pour le code suivant :
    une idée ???

    merci

  14. #14
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    bonjour, de quel type est ta variable B ?
    qu'est-ce qui ne va plus ?

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Ha !

    je n'ai pas mis de variable,

    je dois avouer que je ne m'y connais pas vraiment en variable
    mes codes sont assez basic ...

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Bonjour à tous je souhaite revenir sur ce post avec une question supplémentaire :

    j'utilise le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    A = CStr(Month(Now))
     
    Sheets(A).Select
    pour faire apparaitre la feuille du mois en cours, seulement j'ai omis un détail dans mon travail quotidien :
    le premier jour de chaque mois j'adapte encore les données du mois précédent.

    de quelle manière est-ce que je peux donc encore, chaque premier du mois, faire apparaitre le feuille du mois précédent ?

    D'avance merci

  17. #17
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour stephanies_1977

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select Case Day(Date)
        Case 1: a = CStr(Month(Date) - 1) 
        Case 2, 3: If Weekday(Date, 2) = 1 Then a = CStr(Month(Date) - 1)  Else a = CStr(Month(Date))
        Case Else: a = CStr(Month(Date))
    End Select
    en supposant qu'un lundi 3, tu veux travailler sur ta feuille du mois précédent.

    cordialement

  18. #18
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    SAlut

    Citation Envoyé par fred65200
    a = CStr(Month(Date)) - 1
    Brrrr
    peut etre plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a = Cstr(Month(Date)-1)


    A++
    Qwaz

  19. #19
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonjour Qwazerty,

    Bien vu, je rectifie de suite.
    Merci
    fred

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    super,
    merci à vous ça à l'air de fonctionner.

    de quelle manière est-ce que je peux appliquer ce code pour la séléction d'une cellule ?
    je m'explique:
    dans ma feuille j'ai plusieurs colonnes :

    A B C D E F
    Janvier Février Mars
    shop Total shop Total shop Total
    xxx 23 xxx 23 xxx 23
    yyy 25 yyy 25 yyy 25

    (les mois sont fusionnés entre colonne A&B, C&D, E&F)

    afin de copier les résultats dans les colonnes respectives, j'utilise le code suivant :
    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
     
    If Month(Now) = 1 Then
        Cells.Find(What:="jan", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
            xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
            , SearchFormat:=False).Activate
        ActiveCell.Offset(0, 1).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            Application.CutCopyMode = False
    Else
        If Month(Now) = 2 Then
            Cells.Find(What:="feb", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
                xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
                , SearchFormat:=False).Activate
            ActiveCell.Offset(0, 1).Select
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
            Application.CutCopyMode = False
    la encore je suis bloquée par rapport au premier jour de chaque mois ou je dois encore encoder les données du mois précédent.

    Encore merci pour votre aide !!!!

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

Discussions similaires

  1. Nommer une feuille du mois en cours décalé d'un mois
    Par youssy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/03/2015, 17h16
  2. Masquer toutes les feuilles sauf celle du mois en cours
    Par progheure dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/05/2013, 14h10
  3. table affichant les anniversaire du mois en cours
    Par mnssylvain dans le forum WinDev
    Réponses: 9
    Dernier message: 26/02/2008, 18h57
  4. N'afficher que les données du mois en cours
    Par faiglon dans le forum Access
    Réponses: 5
    Dernier message: 25/07/2006, 13h17
  5. Affichez les enregistrements du mois en cours ?
    Par Koala-Prog dans le forum Requêtes
    Réponses: 2
    Dernier message: 03/08/2003, 15h14

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