Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans la
plage G19:V19 des formules qui me renvoient un caractère issu d'une autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules :
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E", le
"E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans la
plage G19:V19 des formules qui me renvoient un caractère issu d'une autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules :
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E", le
"E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans la
plage G19:V19 des formules qui me renvoient un caractère issu d'une autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules :
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E", le
"E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" a écrit dans le message de news:Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans la
plage G19:V19 des formules qui me renvoient un caractère issu d'une autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" <scrat83@free.fr> a écrit dans le message de news:
u7y0XVquIHA.1328@TK2MSFTNGP03.phx.gbl...
Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans la
plage G19:V19 des formules qui me renvoient un caractère issu d'une autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" a écrit dans le message de news:Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans la
plage G19:V19 des formules qui me renvoient un caractère issu d'une autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" a écrit dans le message de news:
m7FYj.39290$Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" a écrit dans le message de news:Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" <garnote3RIEN@videotron.ca> a écrit dans le message de news:
m7FYj.39290$JJ4.62588@wagner.videotron.net...
Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" <scrat83@free.fr> a écrit dans le message de news:
u7y0XVquIHA.1328@TK2MSFTNGP03.phx.gbl...
Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" a écrit dans le message de news:
m7FYj.39290$Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" a écrit dans le message de news:Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du 1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier en
rouge les caractères de E5 qui sont différents de la valeur des cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Merci pour la rapidité,
hélas j'ai toujours le même plantage
sur p.Characters(i, 1).Font.ColorIndex = 1
si j'intègre ton code (en remplacement du mien dans ma macro.
Si j'utilise ton code seul, j'ai aussi un plantage "erreur d'execution
1004..
Ci dessous l'intégralité de la macro (dont je ne suis pas l'auteur)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Application.ScreenUpdating = False
Dim isect As Range
On Error GoTo errhnd
Set isect = Application.Intersect(Target, Range("E5"))
If isect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In isect.Cells
Target.Value = UCase(Target.Value)
Next
errhnd:
'Pour mettre en rouge les caracteres qui sont inconnus
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
If Range("E5") = "" Then [H21].Value = ""
Range("E5").Select
End Sub
"Tatanka" a écrit dans le message de news:
BiFYj.39490$Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" a écrit dans le message de news:
m7FYj.39290$Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" a écrit dans le message de news:Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du
1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier
en
rouge les caractères de E5 qui sont différents de la valeur des
cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Merci pour la rapidité,
hélas j'ai toujours le même plantage
sur p.Characters(i, 1).Font.ColorIndex = 1
si j'intègre ton code (en remplacement du mien dans ma macro.
Si j'utilise ton code seul, j'ai aussi un plantage "erreur d'execution
1004..
Ci dessous l'intégralité de la macro (dont je ne suis pas l'auteur)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Application.ScreenUpdating = False
Dim isect As Range
On Error GoTo errhnd
Set isect = Application.Intersect(Target, Range("E5"))
If isect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In isect.Cells
Target.Value = UCase(Target.Value)
Next
errhnd:
'Pour mettre en rouge les caracteres qui sont inconnus
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
If Range("E5") = "" Then [H21].Value = ""
Range("E5").Select
End Sub
"Tatanka" <garnote3RIEN@videotron.ca> a écrit dans le message de news:
BiFYj.39490$JJ4.62655@wagner.videotron.net...
Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" <garnote3RIEN@videotron.ca> a écrit dans le message de news:
m7FYj.39290$JJ4.62588@wagner.videotron.net...
Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" <scrat83@free.fr> a écrit dans le message de news:
u7y0XVquIHA.1328@TK2MSFTNGP03.phx.gbl...
Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du
1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier
en
rouge les caractères de E5 qui sont différents de la valeur des
cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Merci pour la rapidité,
hélas j'ai toujours le même plantage
sur p.Characters(i, 1).Font.ColorIndex = 1
si j'intègre ton code (en remplacement du mien dans ma macro.
Si j'utilise ton code seul, j'ai aussi un plantage "erreur d'execution
1004..
Ci dessous l'intégralité de la macro (dont je ne suis pas l'auteur)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Application.ScreenUpdating = False
Dim isect As Range
On Error GoTo errhnd
Set isect = Application.Intersect(Target, Range("E5"))
If isect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In isect.Cells
Target.Value = UCase(Target.Value)
Next
errhnd:
'Pour mettre en rouge les caracteres qui sont inconnus
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
If Range("E5") = "" Then [H21].Value = ""
Range("E5").Select
End Sub
"Tatanka" a écrit dans le message de news:
BiFYj.39490$Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" a écrit dans le message de news:
m7FYj.39290$Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" a écrit dans le message de news:Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du
1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier
en
rouge les caractères de E5 qui sont différents de la valeur des
cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de "E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 ''' ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Bonsoir,
A tout hasard, n'y aurait il pas un problème de variables non déclarées ou
mal typées ?
Tente un débogage aves éventuellement l'ajout de l'instruction option
explicit en tête de module
(chez moi, ton code fonctionne apparemment sans difficulté)
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Domi" a écrit dans le message de
news:Merci pour la rapidité,
hélas j'ai toujours le même plantage
sur p.Characters(i, 1).Font.ColorIndex = 1
si j'intègre ton code (en remplacement du mien dans ma macro.
Si j'utilise ton code seul, j'ai aussi un plantage "erreur d'execution
1004..
Ci dessous l'intégralité de la macro (dont je ne suis pas l'auteur)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Application.ScreenUpdating = False
Dim isect As Range
On Error GoTo errhnd
Set isect = Application.Intersect(Target, Range("E5"))
If isect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In isect.Cells
Target.Value = UCase(Target.Value)
Next
errhnd:
'Pour mettre en rouge les caracteres qui sont inconnus
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
If Range("E5") = "" Then [H21].Value = ""
Range("E5").Select
End Sub
"Tatanka" a écrit dans le message de news:
BiFYj.39490$Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" a écrit dans le message de news:
m7FYj.39290$Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" a écrit dans le message de news:Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du
1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient
les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier
en
rouge les caractères de E5 qui sont différents de la valeur des
cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de
"E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 '''
ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Bonsoir,
A tout hasard, n'y aurait il pas un problème de variables non déclarées ou
mal typées ?
Tente un débogage aves éventuellement l'ajout de l'instruction option
explicit en tête de module
(chez moi, ton code fonctionne apparemment sans difficulté)
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Domi" <scrat83@free.fr> a écrit dans le message de
news:O1mXRqruIHA.3792@TK2MSFTNGP02.phx.gbl...
Merci pour la rapidité,
hélas j'ai toujours le même plantage
sur p.Characters(i, 1).Font.ColorIndex = 1
si j'intègre ton code (en remplacement du mien dans ma macro.
Si j'utilise ton code seul, j'ai aussi un plantage "erreur d'execution
1004..
Ci dessous l'intégralité de la macro (dont je ne suis pas l'auteur)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Application.ScreenUpdating = False
Dim isect As Range
On Error GoTo errhnd
Set isect = Application.Intersect(Target, Range("E5"))
If isect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In isect.Cells
Target.Value = UCase(Target.Value)
Next
errhnd:
'Pour mettre en rouge les caracteres qui sont inconnus
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
If Range("E5") = "" Then [H21].Value = ""
Range("E5").Select
End Sub
"Tatanka" <garnote3RIEN@videotron.ca> a écrit dans le message de news:
BiFYj.39490$JJ4.62655@wagner.videotron.net...
Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" <garnote3RIEN@videotron.ca> a écrit dans le message de news:
m7FYj.39290$JJ4.62588@wagner.videotron.net...
Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" <scrat83@free.fr> a écrit dans le message de news:
u7y0XVquIHA.1328@TK2MSFTNGP03.phx.gbl...
Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du
1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient
les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier
en
rouge les caractères de E5 qui sont différents de la valeur des
cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de
"E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 '''
ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi
Bonsoir,
A tout hasard, n'y aurait il pas un problème de variables non déclarées ou
mal typées ?
Tente un débogage aves éventuellement l'ajout de l'instruction option
explicit en tête de module
(chez moi, ton code fonctionne apparemment sans difficulté)
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Domi" a écrit dans le message de
news:Merci pour la rapidité,
hélas j'ai toujours le même plantage
sur p.Characters(i, 1).Font.ColorIndex = 1
si j'intègre ton code (en remplacement du mien dans ma macro.
Si j'utilise ton code seul, j'ai aussi un plantage "erreur d'execution
1004..
Ci dessous l'intégralité de la macro (dont je ne suis pas l'auteur)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
Application.ScreenUpdating = False
Dim isect As Range
On Error GoTo errhnd
Set isect = Application.Intersect(Target, Range("E5"))
If isect Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In isect.Cells
Target.Value = UCase(Target.Value)
Next
errhnd:
'Pour mettre en rouge les caracteres qui sont inconnus
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
If Range("E5") = "" Then [H21].Value = ""
Range("E5").Select
End Sub
"Tatanka" a écrit dans le message de news:
BiFYj.39490$Et celle-ci ne fait pas de différence entre minuscule et majuscule :
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If UCase(q(i)) = UCase(Mid(p, i, 1)) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Tatanka" a écrit dans le message de news:
m7FYj.39290$Bonsoir,
Et comme ceci, ça fonctionne ?
La macro fait la différence entre minuscule et majuscule.
Sub Essai()
Set p = [e5]
Set q = [g19:v19]
For i = 1 To 16
If CStr(q(i)) = Mid(p, i, 1) Then
p.Characters(i, 1).Font.ColorIndex = 1
Else
p.Characters(i, 1).Font.ColorIndex = 3
End If
Next i
End Sub
Serge
"Domi" a écrit dans le message de news:Bojour à tous,
J'utilisais depuis plusieurs années ce petit code qui me permettait de
colorier en rouge des caractères dans une cellule. Depuis que je suis
passé à Excel 2003, cela ne fonctionne plus. Où est l'erreur ?
Quelques explications.
Dans la cellule E5, je saisie une référence (16 caractères). J'ai dans
la
plage G19:V19 des formules qui me renvoient un caractère issu d'une
autre
feuille fonction de la valeur saisie en E5 (G19 : valeur fonction du
1er
caractère dans E5, dans H19 valeur fonction du 2eme caractère dans E5,
dans I19 valeur fonction du 3eme caractère dans E5...etc juqu'au 16eme
dans V19. pas de problème de ce côté...
Lorsque je valide la saisie dans E5 (Enter), les formules renvoient
les
valeurs dans la plage G19:V19 puis la macro se poursuit pour colorier
en
rouge les caractères de E5 qui sont différents de la valeur des
cellules
:
Ex si 3eme caractère en E5 = "E" et que la formule en I9 est <> de
"E",
le "E" de E5 devient rouge.
J'ai un messag
'Pour mettre en rouge les caracteres incorrectes
For i = 1 To 16
If Range("g19:v19").Cells(i) <> Mid(Range("E5"), i, 1) Then
Range("E5").Characters(i, 1).Font.ColorIndex = 3 '''
ça
coince sur cette ligne......
Else
Range("E5").Characters(i, 1).Font.ColorIndex = 1
End If
Next
Merci pour votre aide
Domi