Conditions avec VBA

Conditions avec VBA - VB/VBA/VBS - Programmation

Marsh Posté le 18-08-2005 à 14:24:31    

Un autre souci.....  
 
voilà la situation  
j'ai un tableau avec des contrats  
certains sont écris (la ligne entière) en bleu, c les contrats prévisionnels  
certains sont en noir, ce sont les contrats actifs ou inactifs  
--> actif quand date fin >= aujourd'hui  
--> inactif = contrat fini  
 
comment faire apparaitre en colonne BU la situation de chaque contrat ?  
 
 
 

Code :
  1. Sub SituationContrat()
  2. Dim C As Range
  3. 'les cellules surveillées
  4. For Each C In Range("A3:A300" )
  5. If C <> "" Then
  6. 'condition fixée pour bleu = prévisionnel
  7. If C.Interior.ColorIndex = 5 Then
  8. Range("BU" & C.Row) = "prévisionnel"
  9. 'condition fixée pour noir = actif ou inactif
  10. Else
  11. If C.Interior.ColorIndex = 52 And Range("AL" & C.Row) >= Date Then
  12. Range("BU" & C.Row) = "actif"
  13. Else
  14. Range("BU" & C.Row) = "inactif"
  15. End If
  16. End If
  17. End If
  18. Next C
  19. End Sub


 
date ca existe bien ? (je suis sous excel)
 
comment être sûr du code couleur (car ya plusieurs noir et bleu ...)
 
merci d'avance

Reply

Marsh Posté le 18-08-2005 à 14:24:31   

Reply

Marsh Posté le 18-08-2005 à 15:07:12    

nobody ???? sniffffffffff

Reply

Marsh Posté le 18-08-2005 à 17:06:51    

Vous pouvez répéter la question ?
 
Il semble que vous ayez déjà trouvé toutes les solutions.
 
> comment faire apparaitre en colonne BU la situation de chaque contrat ?
 
C'est déjà ce que vous faites avec Range("BU" & C.Row) = "..."
 
> date ca existe bien ?
 
Oui.
 
> comment être sûr du code couleur (car ya plusieurs noir et bleu ...) ?
 
La doc (qui apparait quand le curseur est sur le mot "colorindex" et qu'on appuie sur F1) montre tous les codes possibles. Par exemple, pour le noir, je testerais pour le codes 1, 51, et 52; pour le bleu 5, 11, 25, 32, 41, 49, 55.

Reply

Marsh Posté le 19-08-2005 à 08:58:02    

Il me paraît très aléatoire de laisser l'utilisateur choisir lui-même la couleur et encore plus de se baser sur la couleur pour faire un traitement.
 
Il vaut bien mieux avoir une colonne "Etat" où on peut mettre un nombre désignant l'état du contrat et mettre une mise en forme conditionnelle dépendant de cet état (ce nombre).
Pour le traitement, il suffit de se baser sur la valeur de l'état.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 19-08-2005 à 09:35:44    

AlainTech a écrit :

Il me paraît très aléatoire de laisser l'utilisateur choisir lui-même la couleur et encore plus de se baser sur la couleur pour faire un traitement.
 
Il vaut bien mieux avoir une colonne "Etat" où on peut mettre un nombre désignant l'état du contrat et mettre une mise en forme conditionnelle dépendant de cet état (ce nombre).
Pour le traitement, il suffit de se baser sur la valeur de l'état.


 
le tableau excel est déjà conçu de cette manière avec les couleurs... et la personne qui s'en occupe ne souhaite pas changer ses "habitudes"
 
mais je comprends votre point de vue
 
me rester à tester les "code couleur" alors..


Message édité par nat54 le 19-08-2005 à 09:36:18
Reply

Marsh Posté le 19-08-2005 à 10:25:56    

Code :
  1. Sub SituationContrat() 
  2. Dim C As Range 
  3. 'les cellules surveillées 
  4. For Each C In Range("A3:A300" ) 
  5. If C <> "" Then 
  6. 'condition fixée pour bleu = prévisionnel 
  7. If C.Interior.ColorIndex = 5 Then 
  8. Range("BU" & C.Row) = "prévisionnel"
  9. End if
  10. End if
  11. End sub


 
je suis vraiment débutante alors j'ai essayé de décomposer mon pb
 
là normalement il devraimt m'afficher "prévisionnel" où ma police est en bleu or ya rien ..
 
donc ya déjà une erruer là ,non ?

Reply

Marsh Posté le 19-08-2005 à 10:50:43    

j'ai avancé un peu ... dur dur quand on débute
 
c'était pas interior mais font.color car c la couleur dela police
 
donc pour les prévisionnel (en bleu) ca marche
mais le reste j'ai que des inactifs
 
la fonction date fonctionne -t-elle bien comme je l'ai utilisée ?

Reply

Marsh Posté le 19-08-2005 à 11:30:57    

PB RESOLU
 
c'était pour la couleur noire que ca buggait c'était pas noir mais couleur automaitque
 

Code :
  1. Sub SituationContrat()
  2. Dim C As Range
  3. 'les cellules surveillées
  4. For Each C In Range("A3:A300" )
  5. If C <> "" Then
  6. 'condition fixée pour bleu = prévisionnel
  7. If C.Font.ColorIndex = 5 Then
  8. Range("BR" & C.Row) = "prévisionnel"
  9. 'condition fixée pour noir = actif ou inactif
  10. Else
  11. If C.Font.ColorIndex = xlAutomatic And Range("AL" & C.Row) >= Date Then
  12. Range("BR" & C.Row) = "actif"
  13. Else
  14. Range("BR" & C.Row) = "inactif"
  15. End If
  16. End If
  17. End If
  18. Next C
  19. End Sub


Message édité par nat54 le 19-08-2005 à 16:29:37
Reply

Marsh Posté le 19-08-2005 à 15:38:16    

Juste pour qu'on puisse lire plus facilement..
nat54> Pourrais-tu metter ton code entre les balises "code" et indenter ton code. Car on s'y perd rapidement avec les conditions imbriques si le code n'est pas indente.
 
Merci.
 
P.S: Qui a dit: mais quel relou celui-la ?!


---------------
Guendalf
Reply

Marsh Posté le 19-08-2005 à 16:29:18    

ok

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed