Copie remplissage MFC

(je pense que cette question est pour Frangy ? c'est l'auteur du code )

Re,

Pour info, tu as juste, si tu rajoutes ou si tu modifies , de modifier ou d'ajouter avec "Occupant 1" 2 ou 3 et le reste se fait tout seul.

Le principe de fonctionnement est basé sur le changement de la valeur dans les cellules E

dacdac, mais si je veux appliquer ces changements de couleur en colonne B plutôt qu'en colonne A, je change ça où?

C'est donc du VBA ?

Tout à fait !

Je pige ce qu'il faut modifier au niveau du contenu (occupant 1, 2, 3..), j'imagine que je peux rajouter autant de ligne que j'aurai de condition ?

Oui, car le numéro de la dernière ligne renseignée dans la colonne E est systématiquement vérifié.

Pour lire les données (occupant), c'est " Range("E4:E" & DerLig) " ? je ne comprend pas trop comment indiquer de où à où il faut lire la donnée, et de où à où il faut appliquer la couleur.

Range("E4:E" & DerLig) correspond à la plage qui est prise en compte pour le traitement, à savoir la partie renseignée de la colonne des occupants.

Pour t'aider, voici le code commenté :

Private Sub Worksheet_Change(ByVal Target As Range)
Dim DerLig As Long
    'Si plusieurs cellules ont été modifiées, on sort de la procédure
    If Target.Count > 1 Then Exit Sub
    'Dernière ligne renseignée dans la colonne E
    DerLig = Range("E" & Rows.Count).End(xlUp).Row
    'Si la cellule modifiée est dans la plage renseignée de la colonne E
    If Not Application.Intersect(Range("E4:E" & DerLig), Target) Is Nothing Then
        'On modifie la cellule correspondante en colonne A (décalée de -4 colonnes par rapport à la colonne E)
        With Target.Offset(, -4)
            'Alignements
            .HorizontalAlignment = xlCenter
            .VerticalAlignment = xlCenter
            'Format de cellule standard
            .NumberFormat = "General"
            'Police
            With .Font
                .Name = "Arial"
                .FontStyle = "Gras"
                .Size = 6
            End With
            'Traitement selon l'identifiant de l'occupant
            Select Case Target.Value
                'choix de la couleur de police et du remplissage
                Case "occupant 1"
                    .Font.ThemeColor = xlThemeColorDark1
                    .Interior.Color = 255
                Case "occupant 2"
                    .Font.ColorIndex = xlAutomatic
                    .Interior.Color = 16751052
                Case "occupant 3"
                    .Font.ThemeColor = xlThemeColorDark1
                    .Interior.Color = 16711680
                Case Else
                    .Interior.Pattern = xlNone
            End Select
        End With
    End If
End Sub

Pour répondre à M12, ce type de procédure ne peut pas être écrite directement avec l'enregistreur de macro. Par contre, on peut s'aider de l'enregistreur pour certaines parties du code (celles qui concernent le format des cellules par exemple).

A+

Ok!! au top les explications

Merci beaucoup !!

Rechercher des sujets similaires à "copie remplissage mfc"