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 :

coloration mois en cours dans un TCD


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 111
    Par défaut coloration mois en cours dans un TCD
    bonjour,


    j'ai un TCD avec en colonne des mois. l'idée est de colorier le mois en cours...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ' je selectionne les données
    ActiveSheet.PivotTables("TCD-all").PivotSelect "", xlDataOnly, True
    
    ' j'efface les MFC précedentes
    Selection.FormatConditions.Delete
    
    'je crée ma mise en forme
    Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=SI(F$5=NOMPROPRE(TEXTE(AUJOURDHUI();""mmmm""));VRAI;FAUX)"
    
    ' j'affecte la modif
    Selection.FormatConditions(1).Interior.ColorIndex = 40

    mon problème est d'arriver a lui dire : tu prend F quand tu es sur la colonne F, G sur G, etc....



    sinon, j'ai essayé de le faire sur la premier colonne puis de recopier sur les autres avec autofill mais je n'arrive pas a prendre que la Mise en forme conditionnelle (la recopie prend aussi la bordure, la couleur de fond, etc.,...)

    merci d'avance

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2004
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 111
    Par défaut
    bon alors voila la fonction a copier-coller :



    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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
     
     
    ' fonction qui colore les cellules appartenant à la colonne du mois en cours
    Public Sub colorerMoisEnCours(pvtTable As PivotTable, Optional effacerAutresMFCSurMemesCellules As Boolean = True)
        ' ma collection de plage d'adresses fusionnées
        Dim moisAnnee As Variant
        moisAnnee = Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre")
     
        Dim adressCellMoisTmp As Range
        Dim lettreColonneTmp As String
        Dim chiffreLigneTmp As Integer
        Dim cellule As Range
        Dim colonneDonneesMoisTmp As Range
        Dim indiceTab As Integer
     
        ' pour chaque mois
        On Error Resume Next
        For indiceTab = 0 To UBound(moisAnnee)
            ' on recherche la colonne du mois
            pvtTable.PivotSelect moisAnnee(indiceTab), xlLabelOnly, True
            ' tant que le mois n'existe pas, rechercher le mois suivant (sauf pour le dernier)
            While Err.Number > 0
                Err.Clear
                If indiceTab < UBound(moisAnnee) Then
                    indiceTab = indiceTab + 1
                    pvtTable.PivotSelect moisAnnee(indiceTab), xlLabelOnly, True
                Else ' dernier mois absent --> sortir
                    GoTo dernierMoisAbsent
                End If ' limite des indices
            Wend 'erreur : mois absent
            Set adressCellMoisTmp = Selection
     
            lettreColonneTmp = Chr(64 + adressCellMoisTmp.column) '65 etant le caractere "A"
            chiffreLigneTmp = adressCellMoisTmp.Row
     
            pvtTable.PivotSelect moisAnnee(indiceTab), xlDataOnly, True
            Set colonneDonneesMoisTmp = Selection
            For Each cellule In colonneDonneesMoisTmp
                With cellule
                    ' effacer MFC sur les memes cellules
                    If effacerAutresMFCSurMemesCellules Then
                        .FormatConditions.Delete
                    End If
                    .FormatConditions.Add Type:=xlExpression, Formula1:="=SI(" & lettreColonneTmp & "$" & chiffreLigneTmp & "=NOMPROPRE(TEXTE(AUJOURDHUI();""mmmm""));VRAI;FAUX)"
                    .FormatConditions(1).Interior.ColorIndex = 40
                End With 'cellule
            Next cellule
        Next indiceTab
        pvtTable.Parent.Range("A1").Select
        On Error GoTo 0
    Exit Sub
    dernierMoisAbsent:
    End Sub
    voila, voila, merci à moi et bon courage aux autres...

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

Discussions similaires

  1. Somme dans un TCD par mois
    Par YOSRA.BA dans le forum Programmation système
    Réponses: 0
    Dernier message: 16/02/2012, 14h11
  2. [XL-2007] affichage du mois en cours dans DTPicker
    Par chris09300 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/03/2011, 19h10
  3. Filtrer le dates sur le mois en cours dans la requête
    Par isabelle b dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 12/12/2008, 01h03
  4. calculer le nb de jour qu'il y a dans le mois en cours
    Par en_stage dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 04/08/2006, 16h50
  5. Réponses: 4
    Dernier message: 10/07/2006, 13h51

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