Macro excel au demarrage d'un classeur

tetradon Messages postés 12 Statut Membre -  
tetradon Messages postés 12 Statut Membre -
Bonjour,

J'aimerai qu'a l'ouverture de mon classeur, en tapant un mot, exemple "Formation", que le fond de la cellule se colorie en rouge. Avec une particularité c'est lors de la création de nouvelle feuille cette fonction reste.
Pour les codes couleur, je n'ai pas de problème.

Cordialement

A voir également:

9 réponses

Patrice33740 Messages postés 8930 Statut Membre 1 782
 
Bonsoir,

Je ne comprends pas trop ce que tu veux, voici un code qui colorie en rouge la cellule dans laquelle tu saisis "Formation" et qui ne fonctionne qu'une fois par ouverture du fichier :

Private Sub Worksheet_Change(ByVal Target As Range)
Static Modifié As Boolean
  If Not Modifié Then
    If Target.Value = "Formation" Then
      Target.Interior.ColorIndex = 3
      Modifié = True
    End If
  End If
End Sub


Cordialement
Patrice
0
Patrice33740 Messages postés 8930 Statut Membre 1 782
 
Est-ce que ce code convient ?
Quelle amélioration faut-il ?
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Bonjour,
Pour répondre entièrement à ta question, colle ce code dans le module du classeur.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Value = "Formation" Then
        Target.Interior.ColorIndex = 3
    End If
End Sub

Ce sera d'application dans toutes les feuilles, même celle qui seront ajoutées par après..
A+
0
tetradon Messages postés 12 Statut Membre
 
Bonsoir,

Je vous remercie pour les réponses, mais avec la solution de lermite222, j'ai un message d'erreur lorsque je crée une nouvelle feuille, 'Incompatibilité de type' avec 'Erreur d'exécution 13'.
Il faut dire que lorsque je crée une nouvelle feuille, il y a un copier-coller à partir d'une autre feuille.

Cordialement
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Ajoute cette ligne..
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Value = "Formation" Then
        Target.Interior.ColorIndex = 3
    End If
End Sub

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tetradon Messages postés 12 Statut Membre
 
Bonsoir,

Ta formule me convient parfaitement.
J'ai essayé de l'améliorer en mettant des conditions suivant une cellule dans chaque feuille, mais je butte.
J'aimerai grisé une colonne suivant une condition d'une cellule et répéter cette opération.
Ex : si la cellule (1,2) = "dim" alors elle est grisé. J'aimerai mettre cette formule dans le workbook

Merci
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Cette macro ne fonctionne que lors de la modification d'un cellule, comment le "dim" arrive-t-il dans la cellule ? c'est toi qui la tape ?
0
tetradon Messages postés 12 Statut Membre
 
Ce n'est pas moi qui le tape, ils sont en permanence et pas forcement à la même place (Il y a plusieurs 'DIM').
0
lermite222 Messages postés 9042 Statut Contributeur 1 191
 
Pour faire cela tu doit employer une MFC (mise en forme conditionnelle)
Tu dis qu'ils sont en "permanance", mais y a bien un moment ou il ne sont pas là ?
0
tetradon Messages postés 12 Statut Membre
 
Bonsoir,

Merci lermite22, je te répond que maintenant car le fichier est un fichier pour mon boulot mais je ne peux le faire que sur mon lieu de travail, et quand j'ai du temps. J'ai utilisé des mfc pour le fonctionnement, pas de problème.
Pour répondre à la question, il y a des feuilles déja de créées (sorte de calendrier perpétuel), et c'est à partir de ces feuilles que j'en fais d'autres.

Cordialement
0