=EstGras mettre cellule a 0
Résolu/Fermé
jack2125
Messages postés
366
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
15 octobre 2024
-
19 févr. 2020 à 12:18
jack2125 Messages postés 366 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 15 octobre 2024 - 23 févr. 2020 à 21:44
jack2125 Messages postés 366 Date d'inscription jeudi 5 septembre 2019 Statut Membre Dernière intervention 15 octobre 2024 - 23 févr. 2020 à 21:44
A voir également:
- =EstGras mettre cellule a 0
- Aller à la ligne dans une cellule excel - Guide
- Excel cellule couleur si condition texte - Guide
- Verrouiller cellule excel - Guide
- Remettre iphone a 0 - Guide
- Numéro de téléphone excel 0 - Guide
8 réponses
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
Modifié le 19 févr. 2020 à 16:40
Modifié le 19 févr. 2020 à 16:40
Re,
Tu n'a pas répondu à ma question !
Une macro ne peut s'exécuter que suite à un évènement. Soit il s'agit d'un évènement propre au classeur (comme activer une feuille, sélectionner une cellule, ..;) soit d'un évènement lié à un objet ajouté (un bouton, une image, ...)
Écrire une procédure qui empêche de modifier une cellule de la plage BU1:BU62 quand la cellule correspondante de la colonne A est en gras, est relativement simple car il existe un évènement Worksheet_Change (i.e "feuille modifiée") qui se produit quand on modifie une ou plusieurs cellules d'une feuille.
Par exemple avec ce code dans le module de la feuille :
Écrire une procédure qui met à zéro les cellules de la BU quand la cellule correspondante de la plage A1:A62 est en gras, c'est aussi assez simple. Par exemple, dans le module de feuille :
Par contre, on ne peut pas écrire une procédure qui met à zéro les cellules de la BU quand la cellule correspondante de la plage A1:A62 passe en gras, car comme je t'ai dit précédemment, il n'y a aucun évènement qui détecte les modifications de format d'une cellule (comme le passage de normal à gras).
Il faut donc choisir une autre façon de lancer la procédure ci-dessus (un bouton, un autre évènement, ...).
Tu n'a pas répondu à ma question !
Une macro ne peut s'exécuter que suite à un évènement. Soit il s'agit d'un évènement propre au classeur (comme activer une feuille, sélectionner une cellule, ..;) soit d'un évènement lié à un objet ajouté (un bouton, une image, ...)
Écrire une procédure qui empêche de modifier une cellule de la plage BU1:BU62 quand la cellule correspondante de la colonne A est en gras, est relativement simple car il existe un évènement Worksheet_Change (i.e "feuille modifiée") qui se produit quand on modifie une ou plusieurs cellules d'une feuille.
Par exemple avec ce code dans le module de la feuille :
Private Sub Worksheet_Change(ByVal Target As Range) Dim r As Range Dim c As Range Set r = Intersect(Target, Range("BU1:BU62")) If Not r Is Nothing Then For Each c In r.Cells If c.Offset(0, -72).Font.Bold Then c.Value = 0 Next c End If End Sub
Écrire une procédure qui met à zéro les cellules de la BU quand la cellule correspondante de la plage A1:A62 est en gras, c'est aussi assez simple. Par exemple, dans le module de feuille :
Private Sub Jack2125() Dim r As Range Dim c As Range Set r = Range("A1:A62") For Each c In r.Cells If c.Font.Bold Then c.Offset(0, 72) = 0 Next c End Sub
Par contre, on ne peut pas écrire une procédure qui met à zéro les cellules de la BU quand la cellule correspondante de la plage A1:A62 passe en gras, car comme je t'ai dit précédemment, il n'y a aucun évènement qui détecte les modifications de format d'une cellule (comme le passage de normal à gras).
Il faut donc choisir une autre façon de lancer la procédure ci-dessus (un bouton, un autre évènement, ...).
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
19 févr. 2020 à 16:59
19 févr. 2020 à 16:59
Exemple : https://mon-partage.fr/f/j4Y0a9VC/
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
19 févr. 2020 à 13:04
19 févr. 2020 à 13:04
Bonjour
« est-ce possible » rigoureusement : non, il n'y a aucun évènement qui détecte les modification de format d'une cellule.
On peut utiliser d'autres évènements, certains seront plus ou moins chronophages.
Il faut donc que tu précises quelles concessions tu est prêt à faire.
« est-ce possible » rigoureusement : non, il n'y a aucun évènement qui détecte les modification de format d'une cellule.
On peut utiliser d'autres évènements, certains seront plus ou moins chronophages.
Il faut donc que tu précises quelles concessions tu est prêt à faire.
jack2125
Messages postés
366
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
15 octobre 2024
19 févr. 2020 à 14:07
19 févr. 2020 à 14:07
pourtant il me semble que la fonction =ESTGRAS existe?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Patrice33740
Messages postés
8556
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
2 mars 2023
1 779
19 févr. 2020 à 14:12
19 févr. 2020 à 14:12
Alors pourquoi poses-tu la question ?
jack2125
Messages postés
366
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
15 octobre 2024
19 févr. 2020 à 14:18
19 févr. 2020 à 14:18
Function CGR(SearchArea As Range) As Variant
Dim Matrice() As String
Dim cell As Range
Application.Volatile True
ReDim Matrice(SearchArea.Rows.Count - 1)
J = 0
For Each cell In SearchArea
Matrice(J) = IIf(cell.Font.Bold = True, 'Y', '')
J = J + 1
Next cell
CGR = Application.Transpose(Matrice)
End Function
Une fois cette fonction créée dans un module tu peux entrer dans une cellule quelconque: =CGR(B10) et Y s'affichera si tous les caractères de la cellule sont en gras.
Il faut faire F9 pour recalculer.
je trouve cette réponse sur internet Mais comme je sui nul en VBA je n'y comprend pas grand chose..
peux tu m'aider?
Dim Matrice() As String
Dim cell As Range
Application.Volatile True
ReDim Matrice(SearchArea.Rows.Count - 1)
J = 0
For Each cell In SearchArea
Matrice(J) = IIf(cell.Font.Bold = True, 'Y', '')
J = J + 1
Next cell
CGR = Application.Transpose(Matrice)
End Function
Une fois cette fonction créée dans un module tu peux entrer dans une cellule quelconque: =CGR(B10) et Y s'affichera si tous les caractères de la cellule sont en gras.
Il faut faire F9 pour recalculer.
je trouve cette réponse sur internet Mais comme je sui nul en VBA je n'y comprend pas grand chose..
peux tu m'aider?
jack2125
Messages postés
366
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
15 octobre 2024
19 févr. 2020 à 14:36
19 févr. 2020 à 14:36
je trouve également ceci
pour savoir si le 2ème caractère de la cellule a1 est gras :
MsgBox Range("a1").Characters(2, 1).Font.FontStyle
peut on l'adapter?
pour savoir si le 2ème caractère de la cellule a1 est gras :
MsgBox Range("a1").Characters(2, 1).Font.FontStyle
peut on l'adapter?
jack2125
Messages postés
366
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
15 octobre 2024
Modifié le 19 févr. 2020 à 16:38
Modifié le 19 févr. 2020 à 16:38
=SI(ESTGRAS(A16);"o")
j'ai trouvé une réponse partielle qui fonctionne par contre je ne voudrais pas que ça mette faux aux autres cellules qui ne correspondent pas
Est ce possible?
j'ai trouvé une réponse partielle qui fonctionne par contre je ne voudrais pas que ça mette faux aux autres cellules qui ne correspondent pas
Est ce possible?
Skaze72
Messages postés
3
Date d'inscription
mercredi 19 février 2020
Statut
Membre
Dernière intervention
20 février 2020
Modifié le 19 févr. 2020 à 17:30
Modifié le 19 févr. 2020 à 17:30
Bonjour,
En indiquant la valeur que doit prendre votre cellule si la condition n'est pas remplie. Par-exemple, si vous voulez que votre cellule reste vide :
=SI(ESTGRAS(A16);"o";"")
En indiquant la valeur que doit prendre votre cellule si la condition n'est pas remplie. Par-exemple, si vous voulez que votre cellule reste vide :
=SI(ESTGRAS(A16);"o";"")
jack2125
Messages postés
366
Date d'inscription
jeudi 5 septembre 2019
Statut
Membre
Dernière intervention
15 octobre 2024
23 févr. 2020 à 21:44
23 févr. 2020 à 21:44
bon j'ai trouvé pour l'offset
merci
merci
19 févr. 2020 à 16:57
23 févr. 2020 à 21:24
Sub jack()
Dim r As Range
Dim c As Range
Set r = Range("A10:A28")
For Each c In r.Cells
If c.Font.Bold Then
Application.EnableEvents = False
c.Offset(0, 28).Value = 0
Application.EnableEvents = True
End If
Next c
End Sub
je viens seulement de faire le test avec cette fonction
mes cellules en gras dans A passent bien en AC à 0
par contre ce n'est pas en AC mais en BS qu'elles doivent passer à 0
j'ai beau essayer de changer, mais n'arrive pas à les mettre en BS!
merci de ton aide
amicalement
jacques