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

VBA Access Discussion :

Mise en forme Conditionnelle en VBA


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Décembre 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Mise en forme Conditionnelle en VBA
    Bonjour à Tous,

    Tout d'abord merci de prendre le temps de consulter cette demande.
    Voici :

    Sous access 2003, je fais générer un fichier EXCEL selon si j'utilise une table sommaire ou une table détail.
    Jusque là tout est parfait.

    J'aimerais que les cellules d'une colonne change la couleur de la police sit le résultat est négatif (rouge) ou positif(bleu) avant la création du rapport en EXCEL.
    Mais comme la colonne n'existe que si j'utilise la case à cocher (GÉNÉRER RAPPORT SOMMAIRE), comment coder cette application ?

    Voici mon code pour l'instant:

    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
    'La strSql est défini dans un sub selon si je coche "GÉNÉRER RAPPORT SOMMAIRE", ou "GÉNÉRER RAPPORT DÉTAILLÉ"
     
    Set rs = db.OpenRecordset(strSql)
    Set xl = CreateObject("Excel.Application")
     
    With xl
        Set wbk = .Workbooks.Add
        wbk.Sheets("feuil1").Name = "Rapport"
     
        With wbk.Sheets("Rapport")
     
        intColonne = 1
        For Each fld In rs.Fields
            .Cells(1, intColonne) = fld.Name
            intColonne = intColonne + 1
        Next
     
        intLigne = 2
        While Not rs.EOF
     
            intColonne = 1
            For Each fld In rs.Fields
                .Cells(intLigne, intColonne) = fld.Value
                 intColonne = intColonne + 1
     
            Next
            rs.MoveNext
            intLigne = intLigne + 1
     
        Wend
     
        End With
    Merci de m'éclairer

  2. #2
    Rédacteur/Modérateur

    Avatar de ClaudeLELOUP
    Homme Profil pro
    Chercheur de loisirs (ayant trouvé tous les jours !)
    Inscrit en
    Novembre 2006
    Messages
    20 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de loisirs (ayant trouvé tous les jours !)
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 594
    Points : 281 907
    Points
    281 907
    Par défaut
    Voici un moyen d'accéder à la couleur selon la valeur du contenu :
    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
    'La strSql est défini dans un sub selon si je coche "GÉNÉRER RAPPORT SOMMAIRE", ou "GÉNÉRER RAPPORT DÉTAILLÉ"
     
    Set rs = db.OpenRecordset(strSql)
    Set xl = CreateObject("Excel.Application")
     
    With xl
        Set wbk = .Workbooks.Add
        wbk.Sheets("feuil1").Name = "Rapport"
     
        With wbk.Sheets("Rapport")
     
        intColonne = 1
        For Each fld In rs.Fields
            .Cells(1, intColonne) = fld.Name
            intColonne = intColonne + 1
        Next
     
        intLigne = 2
        While Not rs.EOF
     
            intColonne = 1
            For Each fld In rs.Fields
                .Cells(intLigne, intColonne) = fld.Value
      'J'ai ajouté ceci ----------------------------------------------------            
                   If fld.Value < 0 Then
                     wbk.Sheets("Rapport").cells(intLigne, intColonne) _
                     .Font.Color = 255 'rouge
                   else
                     wbk.Sheets("Rapport").cells(intLigne, intColonne) _
                     .Font.Color = 16711680 'bleu
                     End If
    '----------------------------------------------------------------------             
                     intColonne = intColonne + 1
     
            Next
            rs.MoveNext
            intLigne = intLigne + 1
     
        Wend
     
        End With
    SVP ne m'envoyez pas de messages privés pour poser des questions techniques, vous n'aurez pas de réponse !

Discussions similaires

  1. Mise en forme conditionnelle et VBA
    Par LeLaid dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/10/2007, 14h50
  2. Réponses: 2
    Dernier message: 29/05/2007, 14h16
  3. [Formulaire] Mise en forme conditionnelle en VBA
    Par léti07 dans le forum IHM
    Réponses: 26
    Dernier message: 16/10/2006, 09h12
  4. mise en forme conditionnelle et vba
    Par malabar92 dans le forum Access
    Réponses: 4
    Dernier message: 26/04/2006, 14h18
  5. Mise en forme conditionnelle en VBA / Cut-Paste
    Par priest69 dans le forum IHM
    Réponses: 4
    Dernier message: 03/09/2005, 13h54

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