Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup microsoft.public.fr.* 1 Forum > Newsgroup microsoft.public.fr.excel
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 20/05/2008, 19h14
Domi
 
Messages: n/a
Par défaut Macro : format couleur caractères après changement valeur dans une cellule

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


Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 20/05/2008, 19h54
Tatanka
 
Messages: n/a
Par défaut Re: Macro : format couleur caractères après changement valeur dans une cellule

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
>
>



Réponse avec citation
  #3 (permalink)  
Vieux 20/05/2008, 20h06
Tatanka
 
Messages: n/a
Par défaut Re: Macro : format couleur caractères après changement valeur dans une cellule

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
>>
>>

>
>




Réponse avec citation
  #4 (permalink)  
Vieux 20/05/2008, 21h46
Domi
 
Messages: n/a
Par défaut Re: Macro : format couleur caractères après changement valeur dans une cellule

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
>>>
>>>

>>
>>

>
>
>



Réponse avec citation
  #5 (permalink)  
Vieux 22/05/2008, 05h20
Domi
 
Messages: n/a
Par défaut Re: Macro : format couleur caractères après changement valeur dans une cellule

Tout est rentré dans l'ordre, problème de protection de feuille à priori.
Merci ;o)
Domi

"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
uDDueQ3uIHA.1240***TK2MSFTNGP02.phx.gbl...
> 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
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>>

>>
>>

>



Réponse avec citation
 
Réponse
Tags: , , , , , , ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

Discussion Auteur Forum Réponses Dernier message
Changement valeur cellule Flac Newsgroup microsoft.public.fr.excel 4 24/07/2008 18h07
changement couleur suivant valeur nicolaschantrel Newsgroup microsoft.public.fr.access 4 08/05/2008 20h14
Macro "copie jusqu'à trouver une valeur dans cellule A" Françoise Newsgroup microsoft.public.fr.excel 3 14/04/2008 15h31
Affecter la valeur d'une liste à une cellule par macro Georges Ecko Newsgroup microsoft.public.fr.excel 3 05/04/2008 13h19
nbre max de caractères dans une cellule Jean-Claude Newsgroup microsoft.public.fr.excel 0 15/02/2008 16h04


Fuseau horaire GMT. Il est actuellement 07h55.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,46768 seconds with 11 queries