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 :

Problème avec Mergecells [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 63
    Par défaut Problème avec Mergecells
    Bonjour le forum,

    je n'arrive pas à transcrire ce que je veux faire :
    j'ai un tableau avec des dates colonnes F et des numéros de dossier colonne G
    si j'ai plusieurs dates pour un meme dossier, G est fusionné

    je veux comparer les dates en F par rapport à la date du jour. Si la date est dépassé, je mets une couleur, jusque là tout va bien.
    Si G est fusionné (par exemple G10 et G11 fusionnés), j'ai donc une date en F10 et une en F11.
    =>Si F10 est dépassé, je mets une couleur, si F11 n'est pas dépassé je laisse tel quel.
    => Si F10 est dépassé, je mets une couleur, si F11 est dépassé, je mets une couleur différente de F10
    => si aucune date n'est dépassé je ne touche à rien

    Voilà le début de mon code :
    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
    Sub Couleurs()
     
    Dim plage As Range, cell As Range
    Dim DerLigne As Long
    Dim LigDate As Date
     
    DerLigne = Range("A65536").End(xlUp).Row
    Set plage = Range("F10:F" & DerLigne)
     
    Range("f10").Select
    For Each cell In plage
        LigDate = ActiveCell
        If cell.Offset(0, 2).MergeCells Then
            If Date > LigDate Then
            cell.Interior.Color = RGB(125, 147, 99)
            cell.Offset(0, -1).Interior.Color = RGB(125, 147, 99)
            cell.Offset(0, -2).Interior.Color = RGB(125, 147, 99)
            cell.Font.Color = RGB(255, 255, 255)
            cell.Offset(0, -1).Font.Color = RGB(255, 255, 255)
            cell.Offset(0, -2).Font.Color = RGB(255, 255, 255)
            End If
            Else:
        LigDate = ActiveCell
            If Date > LigDate Then
                cell.Interior.Color = RGB(127, 127, 127)
                cell.Offset(0, -1).Interior.Color = RGB(127, 127, 127)
                cell.Offset(0, -2).Interior.Color = RGB(127, 127, 127)
                cell.Font.Color = RGB(255, 255, 255)
                cell.Offset(0, -1).Font.Color = RGB(255, 255, 255)
                cell.Offset(0, -2).Font.Color = RGB(255, 255, 255)
            End If
         End If
         ActiveCell.Offset(1, 0).Select
    Next cell
    End Sub
    le problème est que là, je n'arrive pas, si F10 et F11 sont dépassées, à mettre des couleurs différentes à F10 et F11...
    d'autant que pour un autre dossier, G12 et G13 peuvent aussi être fusionnés, et là je me perds...

    J'ai besoin d'un peu d'aide svp

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Contrairement à tes explications, tu as l'air de colorier les cellules des colonnes D et E. Peux-tu préciser ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 63
    Par défaut
    Bonjour Daniel,

    effectivement je colorie D, E et F
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cell.Interior.Color = RGB(125, 147, 99)
    cell.Offset(0, -1).Interior.Color = RGB(125, 147, 99)
    cell.Offset(0, -2).Interior.Color = RGB(125, 147, 99)
    J'ai mis uniquement F parce que je pense pouvoir adapter avec D et E (enfin j'espere )

    Et deuxième erreur de ma part, c'est la colonne H et non G qui voit des cellules fusionnées...

    pour résumer :
    Si H n'est pas fusionné, vérifier si la date en F est terminé, si oui la colorié avec si H10 et H11 sont fusionnés, je veux vérifier si la date en F10 est dépassée, si oui la coloriée avec , et si on vient de colorier F10, vérifier si F11 est terminé, et si oui la colorier à son tour avec ...

    le tout sur un fichier de 10 000 lignes...

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Essaie comme ça; je ne me suis occupé que de la colonne F. Quant aux dates, je les ai comparées avec la date du jour.

    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
    Sub Couleurs()
     
    Dim Plage As Range, cell As Range
    Dim DerLigne As Long
    Dim LigDate As Date
     
    DerLigne = Range("A65536").End(xlUp).Row
    Set Plage = Range("F10:F" & DerLigne)
     
    For Each cell In Plage
        If cell.Offset(0, 2).MergeCells Then   'si c'ests bien la colonne H...
            If cell < Date And cell.Offset(, 2) <> "" Then
                cell.Interior.Color = RGB(125, 147, 99)
            End If
            If cell < Date And cell.Offset(, 2) <> "" And cell.Offset(1) < Date Then
                cell.Offset(1).Interior.Color = RGB(127, 127, 127)
            End If
        Else
            If cell < Date Then
                cell.Interior.Color = RGB(127, 127, 127)
            End If
         End If
    Next cell
    End Sub

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2012
    Messages : 63
    Par défaut
    Merci Daniel, ça fonctionne parfaitement. J'ai juste adapté avec les colonnes D et E et c'est parfait!

    Encore Merci !!!

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

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 11h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 10h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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