Condition sur cellules d'une feuille entière
Résolu
thomanneca
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
thomanneca -
thomanneca -
Bonjour à tous,
J'aimerais pouvoir mettre une/des conditions (uniquement en VBA) sur l'ensemble des cellules d'une feuille...
Par exemple, lorsque j'écris une date dans une cellule au hasard, j'aimerais que cette cellule se mettre en bleu.
Je ne souhaite donc pas utiliser la mise en forme conditionnelle simple car après, d'autres conditions viendront s'ajouter. Il me faut donc simplement le début du code avant les conditions IF et END IF.
Merci pour votre aide..
J'aimerais pouvoir mettre une/des conditions (uniquement en VBA) sur l'ensemble des cellules d'une feuille...
Par exemple, lorsque j'écris une date dans une cellule au hasard, j'aimerais que cette cellule se mettre en bleu.
Je ne souhaite donc pas utiliser la mise en forme conditionnelle simple car après, d'autres conditions viendront s'ajouter. Il me faut donc simplement le début du code avant les conditions IF et END IF.
Merci pour votre aide..
A voir également:
- Condition sur cellules d'une feuille entière
- Excel cellule couleur si condition texte - Guide
- Comment supprimer une feuille sur word - Guide
- Capture d'écran page entière - Guide
- Comment imprimer en a5 sur une feuille a4 - Guide
- Bruler une feuille de laurier - Guide
7 réponses
Bonjour,
Dans l'éditeur VB de la feuille
;0)
Dans l'éditeur VB de la feuille
Private Sub Worksheet_Change(ByVal Target As Range) Target.Interior.Color = vbBlue End Sub
;0)
le code met la cellule en bleu quand on rentre quelque chose dedans et qu'on quitte la cellule ...
Pour vérifier qu'il s'aget bien d'une date
Mais ça ne fonctionnera que si ce code est collé dans l'éditeur VB de la feuille !!!
Pour vérifier qu'il s'aget bien d'une date
If IsDate(Target.Text) Then Target.Interior.Color = vbBlue End If
Mais ça ne fonctionnera que si ce code est collé dans l'éditeur VB de la feuille !!!
Salut, encore besoin d'un peu de ton aide
J'ai développé quelques conditions sur ma feuille mais j'aimerais à présent pouvoir demander de mettre ces conditions sur les cellules DEJA remplies et non celles que je remplis...
(exemple : fichier déjà développé pour lequel j'aimerais y mettre mes conditions par après via un bouton par exemple)
voici le début de mon exercice :
Merci pour tes conseils
J'ai développé quelques conditions sur ma feuille mais j'aimerais à présent pouvoir demander de mettre ces conditions sur les cellules DEJA remplies et non celles que je remplis...
(exemple : fichier déjà développé pour lequel j'aimerais y mettre mes conditions par après via un bouton par exemple)
voici le début de mon exercice :
Private Sub Worksheet_Change(ByVal Target As Range) If Not IsEmpty(Target) Then If IsDate(Target) Then If Target < Range("A2") Then Target.Interior.Color = vbRed Target.Font.Color = vbWhite Target.NumberFormat = "ddd d" Else Target.Interior.Color = vbBlue 'Target.Interior.Color = RGB(64, 128, 224) Target.NumberFormat = "ddd d" Target.Font.Color = vbWhite Target.Font.Bold = True End If Else If IsNumeric(Target) Then Target.Interior.Color = vbGreen Else If Not IsNumeric(Target) Then Target.Font.Color = RGB(64, 128, 224) Else If Target = "" Then Target.Interior.Color = vbYellow Else Target.Interior.Color = vbBlack Target.Font.Color = vbWhite End If End If End If End If Else If IsEmpty(Target) Then Target.ClearFormats End If End If End Sub
Merci pour tes conseils
Merci beaucoup mais je suis toujours bloqué :s
J'aimerais donc pouvoir par exemple :
- ouvrir une nouvelle feuille,
- cliquer dans n'importe quelle cellule et y inscrire une date (ex. 1/01/2014),
- avoir la condition que met cette cellule en couleur (ex bleu) s'il s'agit bien d'une date..
- quand j'aurai le début, je pense que pour les autres if (caractère, etc), çà devrait aller
Votre code correspond-il à cela?
Un grand merci
J'aimerais donc pouvoir par exemple :
- ouvrir une nouvelle feuille,
- cliquer dans n'importe quelle cellule et y inscrire une date (ex. 1/01/2014),
- avoir la condition que met cette cellule en couleur (ex bleu) s'il s'agit bien d'une date..
- quand j'aurai le début, je pense que pour les autres if (caractère, etc), çà devrait aller
Votre code correspond-il à cela?
Un grand merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re...
J'ai développé quelques conditions sur ma feuille mais j'aimerais à présent pouvoir demander de mettre ces conditions sur les cellules DEJA remplies et non celles que je remplis...
voici le début de mon exercice :
Je suis ouvert à toute amélioration, même de ce code..
Merci d'avance
J'ai développé quelques conditions sur ma feuille mais j'aimerais à présent pouvoir demander de mettre ces conditions sur les cellules DEJA remplies et non celles que je remplis...
voici le début de mon exercice :
Private Sub Worksheet_Change(ByVal Target As Range) If Not IsEmpty(Target) Then If IsDate(Target) Then If Target < Range("A2") Then Target.Interior.Color = vbRed Target.Font.Color = vbWhite Target.NumberFormat = "ddd d" Else Target.Interior.Color = vbBlue 'Target.Interior.Color = RGB(64, 128, 224) Target.NumberFormat = "ddd d" Target.Font.Color = vbWhite Target.Font.Bold = True End If Else If IsNumeric(Target) Then Target.Interior.Color = vbGreen Else If Not IsNumeric(Target) Then Target.Font.Color = RGB(64, 128, 224) Else If Target = "" Then Target.Interior.Color = vbYellow Else Target.Interior.Color = vbBlack Target.Font.Color = vbWhite End If End If End If End If Else If IsEmpty(Target) Then Target.ClearFormats End If End If End Sub
Je suis ouvert à toute amélioration, même de ce code..
Merci d'avance
Bonjour
(après clic sur un bouton)
essaies :
gain de temps d'environ 80 fois:on fige le défilement de l'écran par
Application.ScreenUpdating = False
on donne l'adresse de la cellule la + en bas et à droite afin de ne pas parcourir toute la feuille!
Dercell = Cells.Find("*", , , , , xlPrevious).Address
et on parcoure la plage Range("A1:" & Dercell)
.....tes conditions en remplacant "Target" par "cellule"
Michel
(après clic sur un bouton)
essaies :
Dim Dercell As String, Cellule As Range
Application.ScreenUpdating = False
Dercell = Cells.Find("*", , , , , xlPrevious).Address
For Each Cellule In Range("A1:" & Dercell)
'tes conditions...
Next
gain de temps d'environ 80 fois:on fige le défilement de l'écran par
Application.ScreenUpdating = False
on donne l'adresse de la cellule la + en bas et à droite afin de ne pas parcourir toute la feuille!
Dercell = Cells.Find("*", , , , , xlPrevious).Address
et on parcoure la plage Range("A1:" & Dercell)
.....tes conditions en remplacant "Target" par "cellule"
Michel