VBA : couleur pour cellules numérique

  • Initiateur de la discussion Initiateur de la discussion esftel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

esftel

XLDnaute Occasionnel
VBA : couleur pour cellules numérique et vide

sur ce post, j'ai obtenu les réponses que je souhaitais.

mais j'ai un problème que je n'arrive pas résoudre pour les cellules vides.

Voir mon post tout à la fin

Merci de votre réponse.

______________________________________________________________
Bonsoir le forum,

je souhaiterais appliquer une couleur sur plusieurs cellules ayant une valeur numérique ou date.

j'ai réussi à créer une procédure VBA pour plusieurs cellules mail d'une seul colonne.
Mon problème c'est que j'ai pluseiurs colonnes mais le nombre de celles-ci peuvent variées.

Pour être plus simple voici un exemple ci-joint.

Merci de votre ou vos réponse.
 

Pièces jointes

Dernière édition:
Re : VBA : couleur pour cellules numérique

Bonsoir

EDITION: Bonsoir RENAUDER

Ton code modifié

(à mettre dans un module standard, pas dans ta feuille (enfin normalement)

Code:
Sub test()
Dim n As Range
Dim cell As Range
Dim Num As Boolean
Dim d As Boolean
Set n = ActiveSheet.UsedRange
For Each cell In n
m = cell.Value
Num = IsNumeric(m)
d = IsDate(m)
If Not IsEmpty(cell) Then
If Num Or d Then cell.Interior.ColorIndex = 3
End If
Next
End Sub
 
Re : VBA : couleur pour cellules numérique

Bonjour,
Voici ton code corrigé.

Code:
Sub Colorie()
    Range("A1").CurrentRegion.Select
    For Each cell In Selection
        If IsNumeric(cell) Or IsDate(cell) Then cell.Interior.ColorIndex = 3
    Next cell
End Sub
 

Pièces jointes

Re : VBA : couleur pour cellules numérique

staple1600, renauder

Merci à vous pour vos réponses, celles ci vont vraiement m'aider.

Cela dit, je pense que je vais opter pour la solution de Renauder que je dois adapter pour mon tableau. (Plus simple pour mon petit niveau).

Merci envore a vous deux.
 
Re : VBA : couleur pour cellules numérique

Salut,esftel

Essai ça :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, [A2:H20]) Is Nothing And Target.Count = 1 Then
    Application.EnableEvents = False
    For i = 1 To Len(Target)
     If Mid(Target, i, 1) >= "0" And Mid(Target, i, 1) <= "9" Then
       Target.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
     End If
    Next i
    Application.EnableEvents = True
 End If
End Sub

Cordialement
 
Re : VBA : couleur pour cellules numérique

Catrice, said,

Merci a vous pour vos réponces.

catric, j'ai bien pensé a la solution du MFC, mais j'ai besoin d'une procédure pour l'insérer dans une autre.

Said, merci pour ton prog je pense que cela va m'aider à augmenter mes connaissances en VBA ainsi que celui de Stample d'ailleurs.

Merci à vous tous.
 
Re : VBA : couleur pour cellules numérique

Re, Bonsoir Said, Catrice


Pour le fun, 3 astuces pour éviter le If

Code:
[FONT=Courier New][COLOR=darkblue]Sub[/COLOR] test_ii()
[COLOR=darkblue]Dim[/COLOR] n [COLOR=darkblue]As[/COLOR] Range, c [COLOR=darkblue]As[/COLOR] Range, x [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR]
[COLOR=darkblue]Set[/COLOR] n = _
Range("a1").CurrentRegion.SpecialCells(xlCellTypeConstants, 1)
[COLOR=darkblue]For[/COLOR] [COLOR=darkblue]Each[/COLOR] c [COLOR=darkblue]In[/COLOR] n
x = (IsDate(c) + IsNumeric(c) * 1)
c.Interior.ColorIndex = -3 * x
[COLOR=darkblue]Next[/COLOR]
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR]
[/FONT]
Avec l'emploi de IIF
Code:
[FONT=Courier New][COLOR=darkblue]Sub[/COLOR] test_iif()
[COLOR=darkblue]Dim[/COLOR] n [COLOR=darkblue]As[/COLOR] Range, c [COLOR=darkblue]As[/COLOR] Range, x [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR]
[COLOR=darkblue]Set[/COLOR] n = _
Range("a1").CurrentRegion.SpecialCells(xlCellTypeConstants, 1)
[COLOR=darkblue]For[/COLOR] [COLOR=darkblue]Each[/COLOR] c [COLOR=darkblue]In[/COLOR] n
x = (IsDate(c) + IsNumeric(c) * 1)
c.Interior.ColorIndex = IIf(x = -1, 3, xlNone)
[COLOR=darkblue]Next[/COLOR]
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR][/FONT]
Avec l'emploi de Switch
Code:
[FONT=Courier New][COLOR=darkblue]Sub[/COLOR] une_dernière_pour_laroute() [COLOR=green]';*)[/COLOR]
[COLOR=darkblue]Dim[/COLOR] n [COLOR=darkblue]As[/COLOR] Range, c [COLOR=darkblue]As[/COLOR] Range, d [COLOR=darkblue]As[/COLOR] [COLOR=darkblue]Long[/COLOR]
[COLOR=darkblue]Set[/COLOR] n = Range("a1").CurrentRegion.SpecialCells(xlCellTypeConstants, 1)
[COLOR=darkblue]For[/COLOR] [COLOR=darkblue]Each[/COLOR] c [COLOR=darkblue]In[/COLOR] n
d = (IsDate(c) + IsNumeric(c) * 1)
c.Interior.ColorIndex = Switch(d = -1, 3, d = 0, xlNone)
[COLOR=darkblue]Next[/COLOR]
[COLOR=darkblue]End[/COLOR] [COLOR=darkblue]Sub[/COLOR]
[/FONT]
 
Dernière édition:
Re : VBA : couleur pour cellules numérique et vide

Bonjour le forum,

appliquer une couleur sur les cellules numérique ou date pas de problème.
Cependant losqu'il y a une cellule vide je me retrouve aussi avec une couleur.

En faite je souhaiterais appliquer une couleur lorsque la cellule est numérique et ne rien faire lorsque la cellule est texte ou vide.



voici ma procédure VBA

Sub test()
Range("A1").Select
n = Range(Selection, Selection.End(xlDown)).Count

For i = 1 To n
For c = 1 To 4
m = Cells(i, c).Value
num = IsNumeric(m)
d = IsDate(m)

If num = True Or d = True Then Cells(i, c).Interior.Color = 1234

Next c
Next i

End Sub


Merci de votre aide (un fichier joint pour exemple)
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
525
Réponses
6
Affichages
654
Retour