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 :

Automatisation macro et contenu de cellule


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 56
    Par défaut Automatisation macro et contenu de cellule
    Bonjour,

    J'aurais aimé savoir s'il était possible qu'une macro "s'actualise" dès que le contenu d'une cellule est modifiée car je dois la relancer à la main à chaque fois que je change le contenu d'une cellule.

    Merci d'avance pour vos piste!

  2. #2
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Regarde l’évènement Worksheet.Change qui provoquera le lancement de ta procédure lorsque les cellules de la feuille seront modifiées.

    Cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 56
    Par défaut
    Je ne connais pas du tout cette fonction et je ne sais pas comment l'insérer dans mon code. Faut il la placer dans "ThisWorkbook"?

    Voici 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
    36
    37
    38
     
    Sub Couleur()
     
        Dim WS As Worksheet
        Dim k As Long, i As Long, j As Long
     
        Set WS = ThisWorkbook.Worksheets("Feuil1")
        With WS
            k = .Cells(.Rows.Count, 1).End(xlUp).Row
     
            For i = 2 To k
            If .Cells(i, 15) = "<=" Then
                For j = 1 To 12
     
                If .Cells(i, j) <= .Cells(i, 13) Then
                    .Cells(i, j).Interior.Color = RGB(0, 150, 0)
                ElseIf .Cells(i, j) >= .Cells(i, 14) Then
                            .Cells(i, j).Interior.Color = RGB(255, 0, 0)
                Else
                     .Cells(i, j).Interior.Color = RGB(255, 130, 0)
                End If
                Next
            Else
                For j = 1 To 12
     
                    If .Cells(i, j) >= .Cells(i, 13) Then
                        .Cells(i, j).Interior.Color = RGB(0, 150, 0)
                    ElseIf .Cells(i, j) <= .Cells(i, 14) Then
                            .Cells(i, j).Interior.Color = RGB(255, 0, 0)
                    Else
                        .Cells(i, j).Interior.Color = RGB(255, 130, 0)
                    End If
                Next
            End If
        Next i
    End With
     
    End Sub

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    La procédure doit être placée dans le module de la feuille à laquelle elle s’applique (Feuil1).
    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
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim WS As Worksheet
    Dim k As Long, i As Long, j As Long
        If Target.Count = 1 Then
            Set WS = ThisWorkbook.ActiveSheet
            With WS
                k = .Cells(.Rows.Count, 1).End(xlUp).Row
                For i = 2 To k
                    If .Cells(i, 15) = "<=" Then
                        For j = 1 To 12
                            If .Cells(i, j) <= .Cells(i, 13) Then
                                .Cells(i, j).Interior.Color = RGB(0, 150, 0)
                            ElseIf .Cells(i, j) >= .Cells(i, 14) Then
                                .Cells(i, j).Interior.Color = RGB(255, 0, 0)
                            Else
                                .Cells(i, j).Interior.Color = RGB(255, 130, 0)
                            End If
                        Next
                    Else
                        For j = 1 To 12
                            If .Cells(i, j) >= .Cells(i, 13) Then
                                .Cells(i, j).Interior.Color = RGB(0, 150, 0)
                            ElseIf .Cells(i, j) <= .Cells(i, 14) Then
                                .Cells(i, j).Interior.Color = RGB(255, 0, 0)
                            Else
                                .Cells(i, j).Interior.Color = RGB(255, 130, 0)
                            End If
                        Next
                    End If
                Next i
            End With
        End If
    End Sub
    Cordialement.

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 56
    Par défaut
    Je te remercie! Cela marche parfaitement, est ce qu'il existe un moyen de le faire pour toute les feuilles? J'aurais besoin de cette macro sur toute les feuilles de mon classeur ( plusieurs dizaines).

  6. #6
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Tu peux utiliser l'évènement Workbook_SheetChange du module ThisWorkbook

    http://silkyroad.developpez.com/VBA/...asseur/#LII-20

    Cordialement.

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2012
    Messages : 56
    Par défaut
    Merci, cela marche parfaitement!

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

Discussions similaires

  1. [XL-2010] Macro vérification contenu de cellule
    Par azmodan31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/02/2013, 17h14
  2. Réponses: 8
    Dernier message: 26/10/2010, 16h05
  3. macro evenementielle par modif de contenu de cellules
    Par koloma dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/01/2008, 02h00
  4. macro effaçant le contenu de cellules
    Par neninio31 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2008, 20h33

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