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 :

décaler les colonnes chaque mois [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Points : 54
    Points
    54
    Par défaut décaler les colonnes chaque mois
    Bonjour,

    J'ai un tableau avec des fonds de couleur qui doit être mis à jour tous les mois. Ce tableau doit comporter les 5 derniers mois. Il ne contient aucun texte ou nombre juste une couleur.
    Je voudrais donc créer un bouton sous excel qui permettent de mettre à jour ce tableau. Il faudrait:
    -dans un premier temps que toutes les colonnes se décalent en gros vers la gauche pour pouvoir ajouter le mois en cours.
    ex:
    1er tableau:
    01/10 02/10 03/10 04/10 05/10
    jaune rouge jaune vert rouge
    le tableau qui doit être mis à jour après avoir cliquer sur le bouton:
    02/10 03/10 04/10 05/10 06/10
    rouge jaune vert rouge nouvelle couleur
    sachant qu'on a une couleur par ligne.

    - deuxièmement il faut que la nouvelle couleur se mette en fonction d'un chiffre dans une autre cellule.

    peut-on faire ça en vba. Je pense qu'il faudrait mettre un truc comme A2=B2 et ainsi de suite mais prend-il la couleur ou juste le contenu?
    Si quelqu'un peut m'aider à construire ce code vba car là je suis complètement perdue.
    Je vous joins quand même un fichier avec les tableaux pour bien voir ce système de couleur et de ligne et comment je veux que ca se décale.

    Merci beaucoup de votre aide

  2. #2
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 52
    Points : 48
    Points
    48
    Par défaut
    Bonjour,

    je proposerais quelque chose comme cela :

    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
     
    Public Sub rafraichir()
     
    'on active la feuille
    Worksheets("Feuil1").Activate
     
    'définition des limites des indices du tableau
    'colonnes
    imin = 4
    imax = 8
    'lignes
    jmin = 2
    jmax = 6
     
    'coordonnées de la donnée où tu vas chercher la date
    idate = 1
    jdate = 5
    'coordonnées de la donnée où tu vas chercher la couleur
    icouleur = 1
    jcouleur = 6
     
    'mise à jour des 4 premières colonnes
    For i = imin To imax - 1
        'mise à jour des 5 lignes
        For j = jmin To jmax
            Cells(j, i) = Cells(j, i + 1)
            Cells(j, i).Interior.Color = Cells(j, i + 1).Interior.Color
        Next j
    Next i
     
    'mise à jour de la 5ème colonne
    'première ligne : la date
    Cells(jmin, imax) = Cells(jdate, idate)
    'autres lignes : on commence par enlever toute la couleur...
    For j = jmin To jmax
       Cells(j, imax).Interior.ColorIndex = xlColorIndexNone
    Next j
    '...puis on colorie celle qui faut avec la couleur qui faut
    s = Cells(jcouleur, icouleur)
    Select Case s
     Case "niveau 1"
     Cells(jmin + 1, imax).Interior.Color = RGB(0, 128, 128)
     Case "niveau 2"
     Cells(jmin + 2, imax).Interior.Color = RGB(0, 50, 50)
     Case "niveau 3"
     Cells(jmin + 3, imax).Interior.Color = RGB(0, 90, 0)
     Case "niveau 4"
     Cells(jmin + 4, imax).Interior.Color = RGB(90, 0, 0)
    End Select
     
    End Sub
    Attention, les instructions Cells(i,j) = ... fonctionnent bien quand c'est les dates sont en texte dans la cellule et pas quand elles sont au format date.

    Ce n'est pas très élégant, mais il semblerait que cela fonctionne à peu près...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Points : 54
    Points
    54
    Par défaut
    Merci beaucoup ca marche bien je comprends le fonctionnement je devrais arriver à changer quelque truc si j'ai d'autres idées.
    Merci

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

Discussions similaires

  1. Décaler les colonne au clic dans un userform
    Par EtudiantNoobVBA dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/06/2013, 23h26
  2. Décaler les colonnes d'un tableau
    Par Musaran dans le forum Télécharger
    Réponses: 0
    Dernier message: 30/11/2010, 16h40
  3. Réponses: 6
    Dernier message: 01/11/2010, 21h42
  4. :bug: Décaler recherche d'une colonne+1 chaque mois
    Par allezetcie dans le forum Excel
    Réponses: 2
    Dernier message: 14/06/2007, 09h30
  5. comment creer une colonne avec les jours du mois
    Par Daniela dans le forum Access
    Réponses: 1
    Dernier message: 17/10/2006, 11h34

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