=EstGras mettre cellule a 0
Résolu
jack2125
Messages postés
457
Date d'inscription
Statut
Membre
Dernière intervention
-
jack2125 Messages postés 457 Date d'inscription Statut Membre Dernière intervention -
jack2125 Messages postés 457 Date d'inscription Statut Membre Dernière intervention -
bonjour à tous
A1:A62 quand j'ai des cellules en gras dans cette colonne (elle peuvent varier dans le temps)
je voudrais que dans la colonne BU1:BU62
que la cellule passe à 0 et y reste lors d'un changement qui peut se produire dans BU1:BU62
est ce possible
merci beaucoup
A1:A62 quand j'ai des cellules en gras dans cette colonne (elle peuvent varier dans le temps)
je voudrais que dans la colonne BU1:BU62
que la cellule passe à 0 et y reste lors d'un changement qui peut se produire dans BU1:BU62
est ce possible
merci beaucoup
A voir également:
- =EstGras mettre cellule a 0
- Remettre a 0 un pc - Guide
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Proteger cellule excel - Guide
- Mettre 0 devant chiffre excel - Guide
8 réponses
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, ...).
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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?
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