bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en gras
dans les cellule des 5 premières colonnes de la ligne de la cellule active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert ou
pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur est
entrée dans la rangée A, les cellules des 5 première colonne (y compris la
A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en gras
dans les cellule des 5 premières colonnes de la ligne de la cellule active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert ou
pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur est
entrée dans la rangée A, les cellules des 5 première colonne (y compris la
A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en gras
dans les cellule des 5 premières colonnes de la ligne de la cellule active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert ou
pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur est
entrée dans la rangée A, les cellules des 5 première colonne (y compris la
A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un onglet,
est-ce que la macro va fonctionne en continu dès que l'onglet est ouvert
ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = "" Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message de
news:bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet est
ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = "" Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" <jruegsegger@daril-sa.com> a écrit dans le message de
news: Oq7zh2dnHHA.588@TK2MSFTNGP06.phx.gbl...
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet est
ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = "" Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message de
news:bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet est
ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
Ce test ne sert absolument à rien: Si Target ne fait pas partie de ta plage
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message de
news:et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = ""
Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message
de news:bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet
est ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
Ce test ne sert absolument à rien: Si Target ne fait pas partie de ta plage
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" <jruegsegger@daril-sa.com> a écrit dans le message de
news: OLIJqRfnHHA.3952@TK2MSFTNGP03.phx.gbl...
et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = ""
Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" <jruegsegger@daril-sa.com> a écrit dans le message
de news: Oq7zh2dnHHA.588@TK2MSFTNGP06.phx.gbl...
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet
est ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
Ce test ne sert absolument à rien: Si Target ne fait pas partie de ta plage
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message de
news:et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = ""
Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message
de news:bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet
est ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
Re-Bonjour,
Concernant le nom des variables si tu veux les conserver identiques d'une
feuille à l'autre je te recommande de les déclarer à l'intérieur même de la
procédure, c'est plus "propre".
Je pense toutefois qu'il y a un malentendu sur les instructions suivantes:If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
Ce test ne sert absolument à rien: Si Target ne fait pas partie de ta plage
Cancel est vrai. Mais que signifie Cancel? En général c'est un argument de
procédure évènementielle qui sert à empécher l'évènement de se produire, il
apparait notamment dans les procédures WorkBook_BeforeClose,
WorkBook_BeforeSave.
En l'occurence il n'empechera rien car la déclaration de Worksheet_Change ne
prévoit pas l'annulation de l'évenement, ta procédure va donc s'exécuter
quelque soit la cellule modifiée.
Ta procédure devrait donc se présenter ainsi:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
'ENLEVER GRAS'
ActiveSheet.Protect Password:="modif"
End If
End Sub
Bien cordialement,
Manu/
"Joachim Ruegsegger" a écrit dans le message de
news:maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message de
news:et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = ""
Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message
de news:bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet
est ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
Re-Bonjour,
Concernant le nom des variables si tu veux les conserver identiques d'une
feuille à l'autre je te recommande de les déclarer à l'intérieur même de la
procédure, c'est plus "propre".
Je pense toutefois qu'il y a un malentendu sur les instructions suivantes:
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
Ce test ne sert absolument à rien: Si Target ne fait pas partie de ta plage
Cancel est vrai. Mais que signifie Cancel? En général c'est un argument de
procédure évènementielle qui sert à empécher l'évènement de se produire, il
apparait notamment dans les procédures WorkBook_BeforeClose,
WorkBook_BeforeSave.
En l'occurence il n'empechera rien car la déclaration de Worksheet_Change ne
prévoit pas l'annulation de l'évenement, ta procédure va donc s'exécuter
quelque soit la cellule modifiée.
Ta procédure devrait donc se présenter ainsi:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
'ENLEVER GRAS'
ActiveSheet.Protect Password:="modif"
End If
End Sub
Bien cordialement,
Manu/
"Joachim Ruegsegger" <jruegsegger@daril-sa.com> a écrit dans le message de
news: O7o1isfnHHA.4348@TK2MSFTNGP02.phx.gbl...
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" <jruegsegger@daril-sa.com> a écrit dans le message de
news: OLIJqRfnHHA.3952@TK2MSFTNGP03.phx.gbl...
et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = ""
Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" <jruegsegger@daril-sa.com> a écrit dans le message
de news: Oq7zh2dnHHA.588@TK2MSFTNGP06.phx.gbl...
bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet
est ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR
Re-Bonjour,
Concernant le nom des variables si tu veux les conserver identiques d'une
feuille à l'autre je te recommande de les déclarer à l'intérieur même de la
procédure, c'est plus "propre".
Je pense toutefois qu'il y a un malentendu sur les instructions suivantes:If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
Ce test ne sert absolument à rien: Si Target ne fait pas partie de ta plage
Cancel est vrai. Mais que signifie Cancel? En général c'est un argument de
procédure évènementielle qui sert à empécher l'évènement de se produire, il
apparait notamment dans les procédures WorkBook_BeforeClose,
WorkBook_BeforeSave.
En l'occurence il n'empechera rien car la déclaration de Worksheet_Change ne
prévoit pas l'annulation de l'évenement, ta procédure va donc s'exécuter
quelque soit la cellule modifiée.
Ta procédure devrait donc se présenter ainsi:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
'ENLEVER GRAS'
ActiveSheet.Protect Password:="modif"
End If
End Sub
Bien cordialement,
Manu/
"Joachim Ruegsegger" a écrit dans le message de
news:maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message de
news:et voila j'ai modifié, ça marche parfaitement,
le code final
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [A3:B500]) Is Nothing Then
Cancel = True
End If
ActiveSheet.Unprotect Password:="modif"
'METTRE GRAS'
For Each CelpleinA In Range("A3:A500")
If CelpleinA.Value <> "" Then
Range(CelpleinA, CelpleinA.Offset(0, 4)).Font.Bold = True
End If
Next CelpleinA
For Each CelpleinB In Range("B3:B500")
If CelpleinB.Value <> "" Then
Range(CelpleinB, CelpleinB.Offset(0, 3)).Font.Bold = True
End If
Next CelpleinB
'ENLEVER GRAS'
For Each CelvidecolA In Range("A3:A500")
If CelvidecolA.Value = "" And CelvidecolA.Offset(0, 1).Value = "" Then
Range(CelvidecolA, CelvidecolA.Offset(0, 4)).Font.Bold = False
End If
Next CelvidecolA
For Each CelvidecolB In Range("B3:B500")
If CelvidecolB.Value = "" And CelvidecolB.Offset(0, -1).Value = ""
Then
Range(CelvidecolB, CelvidecolB.Offset(0, 3)).Font.Bold = False
End If
Next CelvidecolB
ActiveSheet.Protect Password:="modif"
End Sub
maintenant si je copie ce code pour d'autre feuille, est-ce que je dois
changer le nom de mes variables pour les autres feuilles (ex:CelpleinA) ?
Cordialement
JR
"Joachim Ruegsegger" a écrit dans le message
de news:bonjour,
j'ai commencé à faire cette macro :
Sub gras()
Range("A3").Select
For Each c In Range("A3:A500")
ActiveCell.Select
If c.Value <> "" Then
MsgBox c.Value
End If
Next c
End Sub
J'aimerais à la place de la ligne "MsgBox c. Value" mettre le texte en
gras dans les cellule des 5 premières colonnes de la ligne de la cellule
active.
pour mettre en gras j'ai le code "Selection.Font.Bold = True" mais je ne
vois pas comment faire pour selectionner les 5 premières colonnes de la
ligne de la cellule active.
Ensuite 2ème question, j'ai mit cette macro dans la page code d'un
onglet, est-ce que la macro va fonctionne en continu dès que l'onglet
est ouvert ou pas ?
en fait j'aimerais que la macro "tourne" en continu et dès qu'une valeur
est entrée dans la rangée A, les cellules des 5 première colonne (y
compris la A) de la ligne se mette en gras.
voila, j'espère que j'ai été assez clair mdr.
Cordialement
JR