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 :

mise en forme des lignes (question débutant)


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut mise en forme des lignes (question débutant)
    Bonjour,

    J'ai besoin d'aide pour réaliser une action à partir d'une macro.
    Le but est de griser les celulles C à N d'une ligne suivant le choix effectué dans la case B de cette même ligne.

    Voici ce que j'ai déjà fait :
    Dans ma colonne B, je n'autorise une réponse que par Oui ou Non.
    Une fois mon choix effectué, je clique sur un bouton pour lancer ma macro.
    celle-ci permet les actions suivantes :
    Si on répond Non, les colonnes C à N deviennent grisées
    Si on remet Oui, elles reviennent blanches à l'état initial.
    Ce que je souhaite c'est que la mise en forme se fasse automatiquement dès le choix Oui ou Non sans passer par ce bouton ou l'activation de quoi que ce soit.

    Aussi, je n'ai fait cette opération que sur une ligne. Je ne veux pas recopier le programme 90 fois et je pense qu'il y a un moyen très simple pour que celui-ci s'applique à toutes mes lignes.
    Je souhaite que toutes les cases de ma colonne B (à partir de la ligne 9) et jusqu'à la fin de mon tableau permettent de griser les colonnes C à N de la ligne associée.

    Pouvez-vous me renseigner?
    merci d'avance.

  2. #2
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut
    Tu peux mettre l'appel de ta macro dans ta feuille directement sous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Worksheet_Change(ByVal Target As Range)
    ...  appel_macro ...
    End Sub
    Target represente la cellule qui vient d'etre modifié.

    Je souhaite que toutes les cases de ma colonne B (à partir de la ligne 9) et jusqu'à la fin de mon tableau
    Tu conditionnes l'appel de ta macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if target.row >= 9 and tagert.column = 2 then
        appel_macro
    end_if
    ....
    Delphine35
    « N’attribuez jamais à la malveillance ce qui s’explique très bien par l’incompétence. » - Napoléon Bonaparte

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Est-ce que c'est bon comme ça :

    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
    Private Sub Worksheet_Change(ByVal Target As Range)
        Concerne
    End Sub
     
    If Target.Row >= 9 And tagert.Column = 2 Then
        Concerne
    end_if
     
     
    Sub Concerne()
     
    ThisWorkbook.Worksheets(1).Select
     
    If Range("B9:B9").Value = "Non" Then
            Range("C9:N9").Select
            With Selection.Interior
            .Pattern = xlGray25
            .PatternColorIndex = xlAutomatic
            End With
            Range("B9:B9").Select
    Else
            Range("C9:N9").Select
            With Selection.Interior
            .ColorIndex = 2
            .Pattern = xlSolid
            .PatternColorIndex = xlAutomatic
            End With
            Range("B9:B9").Select
    End If
     
    End Sub

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heuh!!!
    bonjour


    attention!!!Delphine 35 quand on donne un code en exemple il faut essayer de ne pas faire de fautes

    ce n'est pas tagert mais target

    sinon le code est bon


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
        Concerne
    End Sub
     
    If Target.Row >= 9 And tagert.Column = 2 Then
        Concerne
    end_if
    Qu'est ce qu'il fait là ton if ... ?


    Dans un module :
    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
     
    Public Sub Concerne(No_Ligne As Integer)
     
    Set AC = ActiveSheet
     
    With AC.Range(AC.Cells(No_Ligne, 3), AC.Cells(No_Ligne, 14)).Interior
     
        If StrConv(AC.Cells(No_Ligne, 2).Value, 1) = "NON" Then
            .Pattern = xlGray25
            .PatternColorIndex = xlAutomatic
     
        Else
            If StrConv(AC.Cells(No_Ligne, 2).Value, 1) = "OUI" Then
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End If
        End If
     
    End With
     
    End Sub
    Dans la feuille (sous VBA - "Microsoft Excel Objects" - Feuil1(Feuil1) ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Private Sub Worksheet_Change(ByVal Target As Range)
     lg = Target.Row
     Ln = Target.Column
     
        If lg >= 9 And Ln = 2 Then
            Concerne12 (lg)
       End If
     
    End Sub
    Delphine35
    « N’attribuez jamais à la malveillance ce qui s’explique très bien par l’incompétence. » - Napoléon Bonaparte

  6. #6
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut
    bonjour


    attention!!!Delphine 35 quand on donne un code en exemple il faut essayer de ne pas faire de fautes

    ce n'est pas tagert mais target
    Désolé je suis dyslexique ....
    Delphine35
    « N’attribuez jamais à la malveillance ce qui s’explique très bien par l’incompétence. » - Napoléon Bonaparte

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Super ça fonctionne bien pour les NON mais j'ai un souci pour le oui : débogage au niveau de :

    et de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PatternTintAndShade = 0
    du coup je les ai neutralisé avec une apostrophe ça me va bien pour mon tableau mais j'aimerais savoir pourquoi.
    encore merci de ton aide

  8. #8
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut
    C'est peut etre du a une difference entre ta version d'excel et la mienne
    Delphine35
    « N’attribuez jamais à la malveillance ce qui s’explique très bien par l’incompétence. » - Napoléon Bonaparte

  9. #9
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    daccors

    lui aussi alors tu lui a refiler ta dyslexie
    et ben c'est pas gagné hihihihi
    cela dis le code fonctionne chez moi donc a mon avis il est possible qu'il utilise une meme variable ailleur dans le classeur et quelle soit modifiée
    et donc dans la macro ca ne fonctionne plus
    moi je vois que ca et ca n'a rien a voir avec la version d'excel puisque que je l ai essayé sur 2000,2003 et 2007
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  10. #10
    Membre averti Avatar de delphine35
    Femme Profil pro
    Analyste BO
    Inscrit en
    Novembre 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste BO

    Informations forums :
    Inscription : Novembre 2009
    Messages : 265
    Points : 377
    Points
    377
    Par défaut
    il faut essayer de ne pas faire de fautes
    daccors
    Delphine35
    « N’attribuez jamais à la malveillance ce qui s’explique très bien par l’incompétence. » - Napoléon Bonaparte

  11. #11
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    bonjour

    c'est dans le code qu'il ne faut pas qu'il y est da fautes le reste on s'en fou
    un peu en fait

    car la plus part du temp les debutants copient tout simplement le code que tu leur donne sans meme l'avoir compris avant alors si il y a des erreurs imagine se que ca donne

    mille excuse si je t'ai offencer


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

Discussions similaires

  1. [XL-2010] Mise en forme des graphiques: "Lignes de marquage" versus "Trait"
    Par gxrald dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 31/12/2011, 10h17
  2. question mise en forme des états
    Par cassius777 dans le forum IHM
    Réponses: 7
    Dernier message: 26/02/2006, 20h21
  3. Garder la mise en forme des dossiers sur un CD
    Par tibodoudou dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 19/12/2005, 16h42
  4. [ACCESS-EXCEL] Mise en forme des tableaux
    Par mpascolo dans le forum Access
    Réponses: 4
    Dernier message: 20/10/2005, 16h03
  5. [CR9] lenteur mise en forme des couleurs dans expert diagram
    Par cdu dans le forum SAP Crystal Reports
    Réponses: 6
    Dernier message: 20/04/2005, 08h48

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