OVH Cloud OVH Cloud

vba

3 réponses
Avatar
brunodujura
Bonjour,

J'ai créé un module vba qui permet de comptabiliser la somme des cellules
dont le fond est d'une certaine couleur.
Néanmoins, pour que le calcul s'effectue correctement il faut ensuite
changer la valeur numérique de la cellule.(F9 ne fonctionne pas dans ce cas
là)
Quel genre de macro pourrai je créer qui pourrait faire en sorte que l'on
change la valeur de la cellule et qu'on remette la valeur précédente ?
J'ai créé un bouton de commande associé à une macro qui met la cellule
sélectionnée en bleu par exemple.
Dans la macro je lui dis ensuite de mettre la valeur de la cellule à 0, puis
retour arrière mais cela ne marche pas car la macro ne tient pas compte de
ces 2 dernières commandes.
Si cela n'est pas clair et que vous etes intéressés à m'aider je peux vous
envoyer une feuille exemple.
C'est très important pour mon boulot.....

Merci d'avance

3 réponses

Avatar
JB
Bonsoir,

Si c'est une fonction, il faut ajouter Application.volatile.

Function CompteCouleur(champ As Range, couleurFond)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
End Function

JB
On 19 fév, 20:15, "brunodujura"
wrote:
Bonjour,

J'ai créé un module vba qui permet de comptabiliser la somme des cell ules
dont le fond est d'une certaine couleur.
Néanmoins, pour que le calcul s'effectue correctement il faut ensuite
changer la valeur numérique de la cellule.(F9 ne fonctionne pas dans ce cas
là)
Quel genre de macro pourrai je créer qui pourrait faire en sorte que l' on
change la valeur de la cellule et qu'on remette la valeur précédente ?
J'ai créé un bouton de commande associé à une macro qui met la ce llule
sélectionnée en bleu par exemple.
Dans la macro je lui dis ensuite de mettre la valeur de la cellule à 0, puis
retour arrière mais cela ne marche pas car la macro ne tient pas compte de
ces 2 dernières commandes.
Si cela n'est pas clair et que vous etes intéressés à m'aider je pe ux vous
envoyer une feuille exemple.
C'est très important pour mon boulot.....

Merci d'avance


Avatar
Daniel
Bonsoir.
Il faut définir une fonction perso, dans laquelle tu mets :
Application.Volatile
Ta fonction sera recalculée avec F9, comme une fonction XL.
Cordialement.
Daniel
"brunodujura" a écrit dans le message de
news: 45d9f73e$0$24907$
Bonjour,

J'ai créé un module vba qui permet de comptabiliser la somme des cellules
dont le fond est d'une certaine couleur.
Néanmoins, pour que le calcul s'effectue correctement il faut ensuite
changer la valeur numérique de la cellule.(F9 ne fonctionne pas dans ce
cas là)
Quel genre de macro pourrai je créer qui pourrait faire en sorte que l'on
change la valeur de la cellule et qu'on remette la valeur précédente ?
J'ai créé un bouton de commande associé à une macro qui met la cellule
sélectionnée en bleu par exemple.
Dans la macro je lui dis ensuite de mettre la valeur de la cellule à 0,
puis retour arrière mais cela ne marche pas car la macro ne tient pas
compte de ces 2 dernières commandes.
Si cela n'est pas clair et que vous etes intéressés à m'aider je peux vous
envoyer une feuille exemple.
C'est très important pour mon boulot.....

Merci d'avance


Avatar
brunodujura
Justement c'est parce que application.volatile retardait horriblement ma
feuille....
je viens de réussir avec un bouton macro qui met en couleur et fait croire à
la cellule qu'elle a changé de valeur:

vert Macro
' Macro enregistrée le 20.02.2007 par Bruno Rohart
'

'
Selection.Interior.ColorIndex = 35
Dim a As Integer
a = ActiveCell
ActiveCell = ActiveCell + 10
ActiveCell = ActiveCell - 10
End Sub

Merci malgré tout
"JB" a écrit dans le message de
news:
Bonsoir,

Si c'est une fonction, il faut ajouter Application.volatile.

Function CompteCouleur(champ As Range, couleurFond)
Application.Volatile
Dim c, temp
temp = 0
For Each c In champ
If c.Interior.ColorIndex = couleurFond Then
temp = temp + 1
End If
Next c
CompteCouleur = temp
End Function

JB
On 19 fév, 20:15, "brunodujura"
wrote:
Bonjour,

J'ai créé un module vba qui permet de comptabiliser la somme des cellules
dont le fond est d'une certaine couleur.
Néanmoins, pour que le calcul s'effectue correctement il faut ensuite
changer la valeur numérique de la cellule.(F9 ne fonctionne pas dans ce
cas
là)
Quel genre de macro pourrai je créer qui pourrait faire en sorte que l'on
change la valeur de la cellule et qu'on remette la valeur précédente ?
J'ai créé un bouton de commande associé à une macro qui met la cellule
sélectionnée en bleu par exemple.
Dans la macro je lui dis ensuite de mettre la valeur de la cellule à 0,
puis
retour arrière mais cela ne marche pas car la macro ne tient pas compte de
ces 2 dernières commandes.
Si cela n'est pas clair et que vous etes intéressés à m'aider je peux vous
envoyer une feuille exemple.
C'est très important pour mon boulot.....

Merci d'avance