![]() |
| |||||||
| S'inscrire | FAQ | Membres | Calendrier | Recherche | Messages du jour | Marquer les forums comme lus |
![]() |
| LinkBack | Outils de la discussion | Modes d'affichage |
| |||
| 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 > > |
| |||
| 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" <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 >>> >>> >> >> > > > |
| |||
| 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 >>>>> >>>>> >>>> >>>> >>> >>> >>> >> >> > |
| |
| |
![]() |
| Tags: aprs, caractres, cellule, changement, couleur, format, macro, valeur |
| Outils de la discussion | |
| Modes d'affichage | |
| |
| ||||
| 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 |