Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre soit
en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si j'évalue
le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd chiffre
? En d'autres termes, où commence le "Length" ?
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre soit
en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si j'évalue
le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd chiffre
? En d'autres termes, où commence le "Length" ?
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre soit
en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si j'évalue
le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd chiffre
? En d'autres termes, où commence le "Length" ?
Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre
soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si j'évalue
le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd chiffre
? En d'autres termes, où commence le "Length" ?
Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" <messages@venir.com> a écrit dans le message de news: mn.f3227d8cee138627.81386@venir.com...
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre
soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si j'évalue
le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd chiffre
? En d'autres termes, où commence le "Length" ?
Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre
soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si j'évalue
le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd chiffre
? En d'autres termes, où commence le "Length" ?
Suite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" a écrit dans le message de news:Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre
de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Suite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" <garnote3RIEN@videotron.ca> a écrit dans le message de news:
eZBdNPraJHA.5540@TK2MSFTNGP05.phx.gbl...
Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" <messages@venir.com> a écrit dans le message de news:
mn.f3227d8cee138627.81386@venir.com...
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre
de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Suite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" a écrit dans le message de news:Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre
de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Bonsoir,
Merci (j'étais sur mon classeur quand j'ai reçu ton 2nd poste qui répondait effectivement à la question que je me posais !)
J'ai ajusté comme ceci :
'-----
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
For Each c In Range("C3:K3")
'X = InStr(1, c, ")")
With [c].Characters(4, 7).Font 'c.Characters(X + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
Range("C4:K4") = Range("C2:K2").Value
For Each cc In Range("C4:K4")
With [cc].Characters(4, 7).Font 'c.Characters(2, X - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next cc
End Sub
'------
Et :
'----
Private Sub Worksheet_Change(ByVal Target As Range)
'Stop
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then Mise_En_Forme
End Sub
'----
Tout fonctionne (presque) parfaitement, en effet après :
'---
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
'---
J'ai la fonction suivante qui se lance en boucle et qui contrarie donc le lancement de la procédure de MEF !!
J'ai essayé d'introduire un "Application.EnableEvents = False" pour shunter la "Function" mais ça ne donne rien !
Voici la Function :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date
Dim AnnéeEnCours 'as ---
AnnéeEnCours = Sheets("Janvier").[a6]
Application.Volatile
Mois = ActiveSheet.Name
Dat = CDate("01/" & "" & Mois & "" & "/" & AnnéeEnCours) 'jac
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select
End Function
'----
@+ ?
JPSuite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" a écrit dans le message de news:Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre
soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si
j'évalue le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères
contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd
chiffre ? En d'autres termes, où commence le "Length" ?
Bonsoir,
Merci (j'étais sur mon classeur quand j'ai reçu ton 2nd poste qui répondait effectivement à la question que je me posais !)
J'ai ajusté comme ceci :
'-----
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
For Each c In Range("C3:K3")
'X = InStr(1, c, ")")
With [c].Characters(4, 7).Font 'c.Characters(X + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
Range("C4:K4") = Range("C2:K2").Value
For Each cc In Range("C4:K4")
With [cc].Characters(4, 7).Font 'c.Characters(2, X - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next cc
End Sub
'------
Et :
'----
Private Sub Worksheet_Change(ByVal Target As Range)
'Stop
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then Mise_En_Forme
End Sub
'----
Tout fonctionne (presque) parfaitement, en effet après :
'---
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
'---
J'ai la fonction suivante qui se lance en boucle et qui contrarie donc le lancement de la procédure de MEF !!
J'ai essayé d'introduire un "Application.EnableEvents = False" pour shunter la "Function" mais ça ne donne rien !
Voici la Function :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date
Dim AnnéeEnCours 'as ---
AnnéeEnCours = Sheets("Janvier").[a6]
Application.Volatile
Mois = ActiveSheet.Name
Dat = CDate("01/" & "" & Mois & "" & "/" & AnnéeEnCours) 'jac
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select
End Function
'----
@+ ?
JP
Suite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" <garnote3RIEN@videotron.ca> a écrit dans le message de news: eZBdNPraJHA.5540@TK2MSFTNGP05.phx.gbl...
Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" <messages@venir.com> a écrit dans le message de news: mn.f3227d8cee138627.81386@venir.com...
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre
soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si
j'évalue le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères
contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd
chiffre ? En d'autres termes, où commence le "Length" ?
Bonsoir,
Merci (j'étais sur mon classeur quand j'ai reçu ton 2nd poste qui répondait effectivement à la question que je me posais !)
J'ai ajusté comme ceci :
'-----
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
For Each c In Range("C3:K3")
'X = InStr(1, c, ")")
With [c].Characters(4, 7).Font 'c.Characters(X + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
Range("C4:K4") = Range("C2:K2").Value
For Each cc In Range("C4:K4")
With [cc].Characters(4, 7).Font 'c.Characters(2, X - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next cc
End Sub
'------
Et :
'----
Private Sub Worksheet_Change(ByVal Target As Range)
'Stop
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then Mise_En_Forme
End Sub
'----
Tout fonctionne (presque) parfaitement, en effet après :
'---
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
'---
J'ai la fonction suivante qui se lance en boucle et qui contrarie donc le lancement de la procédure de MEF !!
J'ai essayé d'introduire un "Application.EnableEvents = False" pour shunter la "Function" mais ça ne donne rien !
Voici la Function :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date
Dim AnnéeEnCours 'as ---
AnnéeEnCours = Sheets("Janvier").[a6]
Application.Volatile
Mois = ActiveSheet.Name
Dat = CDate("01/" & "" & Mois & "" & "/" & AnnéeEnCours) 'jac
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select
End Function
'----
@+ ?
JPSuite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" a écrit dans le message de news:Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste avec Format, etc.) mais que le 2nd chiffre
soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une formule dans les cellules ! Pourtant si
j'évalue le contenu des dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de caractères
contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ; faut-il que je mette 7 pour "englober" le 2nd
chiffre ? En d'autres termes, où commence le "Length" ?
Salut Jean-Pascal,
Pour tenter de t'aider, il me faudrait voir ton document
avec quelques commentaires.
S'il n'est pas trop volumineux et confidentiel, tu pourrais
l'envoyer sur Cjoint :
http://cjoint.com/
Serge
"j-pascal" a écrit dans le message de news:Bonsoir,
Merci (j'étais sur mon classeur quand j'ai reçu ton 2nd poste qui répondait
effectivement à la question que je me posais !)
J'ai ajusté comme ceci :
'-----
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
For Each c In Range("C3:K3")
'X = InStr(1, c, ")")
With [c].Characters(4, 7).Font 'c.Characters(X + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
Range("C4:K4") = Range("C2:K2").Value
For Each cc In Range("C4:K4")
With [cc].Characters(4, 7).Font 'c.Characters(2, X - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next cc
End Sub
'------
Et :
'----
Private Sub Worksheet_Change(ByVal Target As Range)
'Stop
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme
End Sub
'----
Tout fonctionne (presque) parfaitement, en effet après :
'---
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
'---
J'ai la fonction suivante qui se lance en boucle et qui contrarie donc le
lancement de la procédure de MEF !!
J'ai essayé d'introduire un "Application.EnableEvents = False" pour shunter
la "Function" mais ça ne donne rien !
Voici la Function :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date
Dim AnnéeEnCours 'as ---
AnnéeEnCours = Sheets("Janvier").[a6]
Application.Volatile
Mois = ActiveSheet.Name
Dat = CDate("01/" & "" & Mois & "" & "/" & AnnéeEnCours) 'jac
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select
End Function
'----
@+ ?
JPSuite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" a écrit dans le message de news:Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a
une formule dans les cellules ! Pourtant si j'évalue le contenu des
dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le
nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Salut Jean-Pascal,
Pour tenter de t'aider, il me faudrait voir ton document
avec quelques commentaires.
S'il n'est pas trop volumineux et confidentiel, tu pourrais
l'envoyer sur Cjoint :
http://cjoint.com/
Serge
"j-pascal" <messages@venir.com> a écrit dans le message de news:
mn.f5237d8ceb03086c.81386@venir.com...
Bonsoir,
Merci (j'étais sur mon classeur quand j'ai reçu ton 2nd poste qui répondait
effectivement à la question que je me posais !)
J'ai ajusté comme ceci :
'-----
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
For Each c In Range("C3:K3")
'X = InStr(1, c, ")")
With [c].Characters(4, 7).Font 'c.Characters(X + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
Range("C4:K4") = Range("C2:K2").Value
For Each cc In Range("C4:K4")
With [cc].Characters(4, 7).Font 'c.Characters(2, X - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next cc
End Sub
'------
Et :
'----
Private Sub Worksheet_Change(ByVal Target As Range)
'Stop
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme
End Sub
'----
Tout fonctionne (presque) parfaitement, en effet après :
'---
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
'---
J'ai la fonction suivante qui se lance en boucle et qui contrarie donc le
lancement de la procédure de MEF !!
J'ai essayé d'introduire un "Application.EnableEvents = False" pour shunter
la "Function" mais ça ne donne rien !
Voici la Function :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date
Dim AnnéeEnCours 'as ---
AnnéeEnCours = Sheets("Janvier").[a6]
Application.Volatile
Mois = ActiveSheet.Name
Dat = CDate("01/" & "" & Mois & "" & "/" & AnnéeEnCours) 'jac
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select
End Function
'----
@+ ?
JP
Suite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" <garnote3RIEN@videotron.ca> a écrit dans le message de news:
eZBdNPraJHA.5540@TK2MSFTNGP05.phx.gbl...
Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" <messages@venir.com> a écrit dans le message de news:
mn.f3227d8cee138627.81386@venir.com...
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a
une formule dans les cellules ! Pourtant si j'évalue le contenu des
dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le
nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Salut Jean-Pascal,
Pour tenter de t'aider, il me faudrait voir ton document
avec quelques commentaires.
S'il n'est pas trop volumineux et confidentiel, tu pourrais
l'envoyer sur Cjoint :
http://cjoint.com/
Serge
"j-pascal" a écrit dans le message de news:Bonsoir,
Merci (j'étais sur mon classeur quand j'ai reçu ton 2nd poste qui répondait
effectivement à la question que je me posais !)
J'ai ajusté comme ceci :
'-----
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
For Each c In Range("C3:K3")
'X = InStr(1, c, ")")
With [c].Characters(4, 7).Font 'c.Characters(X + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
Range("C4:K4") = Range("C2:K2").Value
For Each cc In Range("C4:K4")
With [cc].Characters(4, 7).Font 'c.Characters(2, X - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next cc
End Sub
'------
Et :
'----
Private Sub Worksheet_Change(ByVal Target As Range)
'Stop
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme
End Sub
'----
Tout fonctionne (presque) parfaitement, en effet après :
'---
Sub Mise_En_Forme()
Range("C3:K3") = Range("C1:K1").Value
'---
J'ai la fonction suivante qui se lance en boucle et qui contrarie donc le
lancement de la procédure de MEF !!
J'ai essayé d'introduire un "Application.EnableEvents = False" pour shunter
la "Function" mais ça ne donne rien !
Voici la Function :
'----
Function SheetName() As Date
Dim Mois As String, Dat As Date
Dim AnnéeEnCours 'as ---
AnnéeEnCours = Sheets("Janvier").[a6]
Application.Volatile
Mois = ActiveSheet.Name
Dat = CDate("01/" & "" & Mois & "" & "/" & AnnéeEnCours) 'jac
Select Case Application.Weekday(Dat)
Case 1
SheetName = Dat + 3
Case 2
SheetName = Dat + 2
Case 3
SheetName = Dat + 1
Case 4
SheetName = Dat
Case 5
SheetName = Dat + 1
Case 6
SheetName = Dat
Case 7
SheetName = Dat + 4
End Select
End Function
'----
@+ ?
JPSuite à une relecture attentive de ta question, je te propose ceci :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C6:K38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
Range("C2:K2") = Range("C1:K1").Value
For Each c In Range("C2:K2")
x = InStr(1, c, ")")
With c.Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With c.Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
Ai-je bien compris le sens de ta question ?
Serge
"garnote" a écrit dans le message de news:Salut Jean-Pascal,
Si tu as cette formule en G5 :
="("&TEXTE(NB.SI($C$6:$C$38;"N inscr.");"0")&")"&" "&
TEXTE(NB.SI($C$6:$C$38;"N ret.");"0")
j'ai bien peur qu'il faille copier sa valeur ailleurs
pour obtenir ce que tu veux, mais allez savoir !
Dans ces macros, j'ai copié la valeur de G5 en H5 :
Ta formule fera les calculs et ta mise en forme sera en H5.
Tu pourrais peut-être masquer la colonne G.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$6:$C$38")) Is Nothing Then
Mise_En_Forme
End Sub
Sub Mise_En_Forme()
[H5] = [G5]
x = InStr(1, [H5], ")")
With [H5].Characters(x + 2, 9 ^ 9).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
With [H5].Characters(2, x - 2).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
End Sub
Cela te convient-il ?
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a
une formule dans les cellules ! Pourtant si j'évalue le contenu des
dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le
nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre
de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre
de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre
de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Bonne année 2009
Essaie ceci:
'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme_JJ (Target.Column)
End If
End Sub
'-------------------------
Sub Mise_En_Forme_JJ(col)
Rows("3:4").NumberFormat = "@"
Cells(3, col) = "(" & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "N inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40, col)),
"N ret.")
Cells(4, col) = "(" & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "JC inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40, col)),
"JC ret.")
With Range("c3:k4").Characters(Start:=1, Length:=3).Font
.Name = "Verdana"
.FontStyle = "Gras"
.Size = 10
.ColorIndex = 15
End With
With Range("c3:k3").Characters(Start:=7, Length:=1).Font
.ColorIndex = 10
End With
With Range("c4:k4").Characters(Start:=7, Length:=1).Font
.ColorIndex = 3
End With
End Sub
'----------------
Ton classeur modifié
http://www.cijoint.fr/cjlink.php?file=cj200901/cijIjJz5CV.xls
--
Salutations
JJ
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste
avec Format, etc.) mais que le 2nd chiffre soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de
caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur"
?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres termes,
où commence le "Length" ?
Bonne année 2009
Essaie ceci:
'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme_JJ (Target.Column)
End If
End Sub
'-------------------------
Sub Mise_En_Forme_JJ(col)
Rows("3:4").NumberFormat = "@"
Cells(3, col) = "(" & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "N inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40, col)),
"N ret.")
Cells(4, col) = "(" & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "JC inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40, col)),
"JC ret.")
With Range("c3:k4").Characters(Start:=1, Length:=3).Font
.Name = "Verdana"
.FontStyle = "Gras"
.Size = 10
.ColorIndex = 15
End With
With Range("c3:k3").Characters(Start:=7, Length:=1).Font
.ColorIndex = 10
End With
With Range("c4:k4").Characters(Start:=7, Length:=1).Font
.ColorIndex = 3
End With
End Sub
'----------------
Ton classeur modifié
http://www.cijoint.fr/cjlink.php?file=cj200901/cijIjJz5CV.xls
--
Salutations
JJ
"j-pascal" <messages@venir.com> a écrit dans le message de news:
mn.f3227d8cee138627.81386@venir.com...
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste
avec Format, etc.) mais que le 2nd chiffre soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de
caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur"
?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres termes,
où commence le "Length" ?
Bonne année 2009
Essaie ceci:
'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme_JJ (Target.Column)
End If
End Sub
'-------------------------
Sub Mise_En_Forme_JJ(col)
Rows("3:4").NumberFormat = "@"
Cells(3, col) = "(" & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "N inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40, col)),
"N ret.")
Cells(4, col) = "(" & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "JC inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40, col)),
"JC ret.")
With Range("c3:k4").Characters(Start:=1, Length:=3).Font
.Name = "Verdana"
.FontStyle = "Gras"
.Size = 10
.ColorIndex = 15
End With
With Range("c3:k3").Characters(Start:=7, Length:=1).Font
.ColorIndex = 10
End With
With Range("c4:k4").Characters(Start:=7, Length:=1).Font
.ColorIndex = 3
End With
End Sub
'----------------
Ton classeur modifié
http://www.cijoint.fr/cjlink.php?file=cj200901/cijIjJz5CV.xls
--
Salutations
JJ
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que j'ajuste
avec Format, etc.) mais que le 2nd chiffre soit en Gras + couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a une
formule dans les cellules ! Pourtant si j'évalue le contenu des dites
cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le nombre de
caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un "Copier/Valeur"
?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres termes,
où commence le "Length" ?
Bonsoir Jacky et bonne année !
Je viens d'essayer ton fichier tel quel. De mon côté, seules les
suppressions des "N inscr.", "N ret." etc. sont prises en compte dans les
2 lignes du haut (je veux dire que le résultat s'actualise).
Sauf erreur de ma part, les ajouts ne modifient pas les totaux de ces deux
premières lignes.
Merci pour ta proposition que je regarderai avec plus de soin demain soir
car pour l'heure je suis une "loque" ...
A bientôt,
JPBonne année 2009
Essaie ceci:
'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme_JJ (Target.Column)
End If
End Sub
'-------------------------
Sub Mise_En_Forme_JJ(col)
Rows("3:4").NumberFormat = "@"
Cells(3, col) = "(" & Application.CountIf(Range(Cells(8, col),
Cells(40, col)), "N inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "N ret.")
Cells(4, col) = "(" & Application.CountIf(Range(Cells(8, col),
Cells(40, col)), "JC inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "JC ret.")
With Range("c3:k4").Characters(Start:=1, Length:=3).Font
.Name = "Verdana"
.FontStyle = "Gras"
.Size = 10
.ColorIndex = 15
End With
With Range("c3:k3").Characters(Start:=7, Length:=1).Font
.ColorIndex = 10
End With
With Range("c4:k4").Characters(Start:=7, Length:=1).Font
.ColorIndex = 3
End With
End Sub
'----------------
Ton classeur modifié
http://www.cijoint.fr/cjlink.php?file=cj200901/cijIjJz5CV.xls
--
Salutations
JJ
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a
une formule dans les cellules ! Pourtant si j'évalue le contenu des
dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le
nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Bonsoir Jacky et bonne année !
Je viens d'essayer ton fichier tel quel. De mon côté, seules les
suppressions des "N inscr.", "N ret." etc. sont prises en compte dans les
2 lignes du haut (je veux dire que le résultat s'actualise).
Sauf erreur de ma part, les ajouts ne modifient pas les totaux de ces deux
premières lignes.
Merci pour ta proposition que je regarderai avec plus de soin demain soir
car pour l'heure je suis une "loque" ...
A bientôt,
JP
Bonne année 2009
Essaie ceci:
'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme_JJ (Target.Column)
End If
End Sub
'-------------------------
Sub Mise_En_Forme_JJ(col)
Rows("3:4").NumberFormat = "@"
Cells(3, col) = "(" & Application.CountIf(Range(Cells(8, col),
Cells(40, col)), "N inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "N ret.")
Cells(4, col) = "(" & Application.CountIf(Range(Cells(8, col),
Cells(40, col)), "JC inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "JC ret.")
With Range("c3:k4").Characters(Start:=1, Length:=3).Font
.Name = "Verdana"
.FontStyle = "Gras"
.Size = 10
.ColorIndex = 15
End With
With Range("c3:k3").Characters(Start:=7, Length:=1).Font
.ColorIndex = 10
End With
With Range("c4:k4").Characters(Start:=7, Length:=1).Font
.ColorIndex = 3
End With
End Sub
'----------------
Ton classeur modifié
http://www.cijoint.fr/cjlink.php?file=cj200901/cijIjJz5CV.xls
--
Salutations
JJ
"j-pascal" <messages@venir.com> a écrit dans le message de news:
mn.f3227d8cee138627.81386@venir.com...
Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a
une formule dans les cellules ! Pourtant si j'évalue le contenu des
dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le
nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Bonsoir Jacky et bonne année !
Je viens d'essayer ton fichier tel quel. De mon côté, seules les
suppressions des "N inscr.", "N ret." etc. sont prises en compte dans les
2 lignes du haut (je veux dire que le résultat s'actualise).
Sauf erreur de ma part, les ajouts ne modifient pas les totaux de ces deux
premières lignes.
Merci pour ta proposition que je regarderai avec plus de soin demain soir
car pour l'heure je suis une "loque" ...
A bientôt,
JPBonne année 2009
Essaie ceci:
'-----------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("$C$8:$K$40")) Is Nothing Then
Mise_En_Forme_JJ (Target.Column)
End If
End Sub
'-------------------------
Sub Mise_En_Forme_JJ(col)
Rows("3:4").NumberFormat = "@"
Cells(3, col) = "(" & Application.CountIf(Range(Cells(8, col),
Cells(40, col)), "N inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "N ret.")
Cells(4, col) = "(" & Application.CountIf(Range(Cells(8, col),
Cells(40, col)), "JC inscr.") _
& ") " & Application.CountIf(Range(Cells(8, col), Cells(40,
col)), "JC ret.")
With Range("c3:k4").Characters(Start:=1, Length:=3).Font
.Name = "Verdana"
.FontStyle = "Gras"
.Size = 10
.ColorIndex = 15
End With
With Range("c3:k3").Characters(Start:=7, Length:=1).Font
.ColorIndex = 10
End With
With Range("c4:k4").Characters(Start:=7, Length:=1).Font
.ColorIndex = 3
End With
End Sub
'----------------
Ton classeur modifié
http://www.cijoint.fr/cjlink.php?file=cj200901/cijIjJz5CV.xls
--
Salutations
JJ
"j-pascal" a écrit dans le message de news:Bonsoir,
Dans une plage de cellules, j'ai :
="("&TEXTE(NB.SI(C6:C38;"N inscr.");"0")&")"&" "&TEXTE(NB.SI(C6:C38;"N
ret.");"0")
Le résultat pour chaque cellule donne qqch comme : "(2) 8" (ie)
Je souhaite que le chiffre entre parenthèse reste en gris, (ce que
j'ajuste avec Format, etc.) mais que le 2nd chiffre soit en Gras +
couleur.
J'ai essayé ce qui suit, mais ça ne fonctionne pas dès lors qu'il y a
une formule dans les cellules ! Pourtant si j'évalue le contenu des
dites cellules avec "=NBCAR(MaCellule)", la formule me retourne bien le
nombre de caractères contenus !
Faut-il que je recrée la formule via vba et que je fasse un
"Copier/Valeur" ?? J'ai quand même un doute !!
'-----------
Sub MEFC()
Dim c
For Each c In Range("C1:K1")
With c.Characters(4, 7).Font
.Bold = True
.Size = 10
.ColorIndex = 10
End With
Next c
For Each c In Range("C2:K2")
With c.Characters(Start:=4, Length:=7).Font
.Bold = True
.Size = 10
.ColorIndex = 3
End With
Next c
End Sub
'-----------
Merci d'avance pour votre aide,
JP
PS : si ma cellule = "(0)- - - 8" j'ai mis :
Start:=4, Length:=7
4 qui correspond au 1er espace après mon chiffre entre parenthèses ;
faut-il que je mette 7 pour "englober" le 2nd chiffre ? En d'autres
termes, où commence le "Length" ?
Re...
Celui-ci devrait mieux convenir
http://www.cijoint.fr/cjlink.php?file=cj200901/cijgDKGUOu.xls
Re...
Celui-ci devrait mieux convenir
http://www.cijoint.fr/cjlink.php?file=cj200901/cijgDKGUOu.xls
Re...
Celui-ci devrait mieux convenir
http://www.cijoint.fr/cjlink.php?file=cj200901/cijgDKGUOu.xls