commande VBA :compter des cellules colorées

pierrot

XLDnaute Junior
bonsoir à tous,
j'ai vraiment fait tout ce que j'ai pu pour créer mon planning, il gére 11 pers par demi journée,j'ai fait un tableau de récap des jours d'installation,d'absence par an

mon souci est le suivant:
comme je gére par demi journée,j'ai fait une zone de liste par cellule
et ensuite j'ai utilisé la fonction NB.SI pour compter les cellules avec des différentes valeurs (absence,install...)

j'ai donc essayé de me simplifier la tache en utilisant VBA pour quand je choisisse dans une cellule absent,install...j'ai le choix demi-journée ou journée et aussi sur plusieurs jours et ainsi colorer les cellules concernées et les compter par type

merci vraiment si quelqu'un peut m'aider , je joint un exp pour clarifier mes explications

bonne soirée à tous ne vous couchez pas trop tard.........

pierrot (qui continue à ramer ....) ;) [file name=exp_20050330235543.zip size=42064]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exp_20050330235543.zip[/file]
 

Pièces jointes

  • exp_20050330235543.zip
    41.1 KB · Affichages: 50

galopin01

XLDnaute Occasionnel
Bonjour,
Tu peux essayer ça :
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo GESTERR
If Application.Intersect(Target, Range('Calendrier')) Is Nothing Then Exit Sub
Select Case Target.Value
Case 'conges': Selection.Interior.ColorIndex = 3
Case 'absent': Selection.Interior.ColorIndex = 4
Case 'installation': Selection.Interior.ColorIndex = 8
Case 'maladie': Selection.Interior.ColorIndex = 6
Case 'atelier': Selection.Interior.ColorIndex = 5
Case 'depannage': Selection.Interior.ColorIndex = 24
Case Else: Selection.Interior.ColorIndex = xlNone
End Select
If Selection.Cells.Count > 1 Then Selection.Value = Target.Value
Exit Sub
GESTERR:
End Sub
De la sorte tu pourras modifier 'en bloc' une sélection.

L'ajout en rouge évite à la macro de tourner en boucle si une seule cellule est modifiée...
Ok ?

Message édité par: galopin01, à: 31/03/2005 19:19
 

pierrot

XLDnaute Junior
c'est encore moi :p

il me semble que la formule de galopin n'améliore pas mon planning initial,ma demande n'a certainement pas été claire
ce que je n'arrive pas à faire c'est :
quand je choisis une tache pour une personne ,qu'un message me demande la durée et que je colore plusieurs cellules en même temps et en les comptabilisant bien sur

merci encore galopin et bonne soirée à tout le forum

pierrot ;)
 

galopin01

XLDnaute Occasionnel
bonjour,
Faut savoir si tu cherches à améliorer un instrument de travail ou si tu veux t'entraîner à faire des USF !
Pourquoi faire compliqué quand tu peux faire simple? Il suffit de sélectionner toutes les cellules à modifier et d'1 seul clic tu mets ton gars en maladie pour 15 jours.
Tu peux même mettre tout ton monde en vacances un mois en 1 seul clic !
Quand à la comptabilisation il n'y a rien de changé elle se fait toujours par les même formules qui sont très bien.
je ne vois pas ou est le pb?
Bon, si tu tiens vraiment à t'entraîner avec des USF bof ! Mais ça risque d'être coton parce qu'avec les périodes 'à cheval' sur 2 mois... et je vois vraiment pas ce que tu auras gagné de plus.
Bon courage.

Message édité par: galopin01, à: 01/04/2005 05:36
 

pierrot

XLDnaute Junior
:eek: :eek: :eek: :eek: :eek: :eek: :eek: :eek:

bonjour à tous et particulièrement à galopin,

je devais vraiment avoir la tête ailleurs hier ,ce midi j'ai rgardé encore une fois le code de galopin et bien sur qu'il améliore mon planning(alors milles excuses galopin...)
je voudrai aller un peu plus loin,en effet actuellement je colore des cellules en fonction 'd'un nom' qui est donc visible dans les cellules
peut on assigner une couleur de police en fonction de la couleur de remplissage de la cellule ainsi 'le nom' serait invisible
je vous joint un fichier pour appuyer mes explications et bien sur le code de galopin


Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo GESTERR
If Application.Intersect(Target, Range('Calendrier')) Is Nothing Then Exit Sub
Select Case Target.Value
Case 'conges': Selection.Interior.ColorIndex = 3
Case 'absent': Selection.Interior.ColorIndex = 4
Case 'installation': Selection.Interior.ColorIndex = 8
Case 'maladie': Selection.Interior.ColorIndex = 6
Case 'atelier': Selection.Interior.ColorIndex = 5
Case 'depannage': Selection.Interior.ColorIndex = 24
Case Else: Selection.Interior.ColorIndex = xlNone
End Select
If Selection.Cells.Count > 1 Then Selection.Value = Target.Value
Exit Sub
GESTERR:
End Sub




merci et bon week end à tous

pierrot [file name=test_20050401203148.zip size=40723]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/test_20050401203148.zip[/file]
 

Pièces jointes

  • test_20050401203148.zip
    39.8 KB · Affichages: 50

ya_v_ka

XLDnaute Impliqué
salut Pierrot

je vois malheureusement que rien ne t'a été utile la dernière fois... mais je retente un coup de main

ajoute simplement à chaque ligne la même pour la police:

....
Case 'maladie': Selection.Interior.ColorIndex = 6
Selection.font.colorindex = 6
....

en mettant pour chaque 'case' le même index de couleur, ca devrait le faire

ya'v
 

galopin01

XLDnaute Occasionnel
Bonjour,
Oui, bien sur c'est la première réflexion que je me suis fait...
Dans ce cas c'est le code de ya_v_ka qui s'applique.
Au reste, il suffirait d'une initiale dans chaque cellule :
M comme maladie,
C comme congés...
Celà serait très préférable ne serait-ce que pour des questions de taille. Au bout d'une année tu auras rempli environ 4000 cellules
il vaut mieux les remplir avec une initiale qu'avec le mot entier...
L'important est de conserver une 'valeur' dans chaque cellule colorée:
En effet si tu tentes un calcul direct sur des couleurs tu vas arriver à un temps de recalcul scatologique. Il faut donc absolument utiliser le système actuel pour tes stats.
En outre pour améliorer la lisibilité tu pourrais utiliser une disposition comme sur le modèle joint.
A+ [file name=Cal1.zip size=1541]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Cal1.zip[/file]

Message édité par: galopin01, à: 02/04/2005 11:56
 

Pièces jointes

  • Cal1.zip
    1.5 KB · Affichages: 58

galopin01

XLDnaute Occasionnel
bonjour,
j'ai récapitulé toutes ces remarques (et quelques autres) sur le fichier joint...
Nota:
La sélection multiple attribue une valeur sur les samedi, Dimanche et jours fériés ainsi que le met en évidence le formatage de la police. Ce qui est bien sur regrettable :(
Il ne me semble pas qu'il y de solution plus efficace que de 'supprimer' sauvagement dans les cellules grisées.
Ok ? [file name=exp1_20050402121126.zip size=40969]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exp1_20050402121126.zip[/file]

Message édité par: galopin01, à: 02/04/2005 12:11
 

Pièces jointes

  • exp1_20050402121126.zip
    40 KB · Affichages: 57

Discussions similaires

Statistiques des forums

Discussions
312 571
Messages
2 089 804
Membres
104 276
dernier inscrit
helenevellocet