Macro ou Données Validation

chriscece Messages postés 60 Statut Membre -  
chriscece Messages postés 60 Statut Membre -
Bonjour, et merci à tous les pros qui pourront me renseigner

J'ai créé une feuille de calcul excel me permettant de suivre l'avancement des travaux que j'ai a faire pour mes clients (je suis comptalbe). Elle se présente comme ça :

TVA SALAIRES CHARGES SOC SAISIE .....
CLIENT 1 OUI NON NON SALARIE 1
CLIENT 2 NON OUI NON SALARIE 2
CLIENT 3 N/A N/A N/A SALARIE 3
CLIENT 4 OUI OUI OUI SALARIE 3
CLIENT 5 CLIENT CLIENT NON SALARIE 1
...

Mon soucis : chaque choix provient d'une liste de données, mais les couleurs associées ne suivent pas. Et par une macro j'ai réussi à associer chaque choix à une couleur (oui : Vert - non : rouge - n/a : bleu - etc...).

Mais quand je modifie une cellule je dois relancer la macro.

Quelqu'un aurait-il la solution pour que ce soit automatique?

Merci d'avance
Configuration: Windows VISTA
Internet Explorer 7.0
EXCEL 2003

14 réponses

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Oui, menu 'format / mise en forme conditionnelle'.
    Tu sélectionnes toutes les cellules ayant le même rôle, tu choisis tes conditions (jusqu'à 3 pour excel 2003) et le format à appliquer.
    Pour toi ça pourrait être
    'La valeur de la cellule est' 'égale à' "oui"
    Format... onglet 'motif', vert

    eric
    0
  2. chriscece Messages postés 60 Statut Membre 14
     
    Merci Eriic, mais je connais la mise en forme conditionnelle, le problème c'est que j'ai plus de 3 choix (OUI,NON,N/A,CLIENT,SALARIE1,SALARIE2, ...)

    Une autre solution?
    0
  3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Ah oui, j'avais lu un peu vite...

    tu peux mettre ta macro dans l'evenement Change de ta feuille (il faudra une saisie pour qu'elle se lance) ou dans SelectionChange (comme son nom l'indique il faudra changer la selection de la cellule active)
    Ou dans Workbook_SheetCalculate de thisworkbook ?
    eric
    0
  4. chriscece Messages postés 60 Statut Membre 14
     
    Merci, mais comment faut-il faire pour mettre la macro dans l'évènement Change? Désolée, je suis débutante dans les macros.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Quand tu es dans le code de ta feuille, au-dessus tu as 2 listes déroulantes.
    Dans celle de gauche tu choisis 'worksheet', dans celle de droite l'evenement que tu veux.
    eric
    0
  7. chriscece Messages postés 60 Statut Membre 14
     
    Je dois être "miro", mais je ne trouve pas. C'est dans OUTIL/MACRO/VBA ?
    0
  8. m@rina Messages postés 27665 Date d'inscription   Statut Modérateur Dernière intervention   11 567
     
    Bonsoir chriscece,

    Le plus simple : tu fais un clic droit sur l'onglet de la feuille et tu choisis "Visualiser le code"
    Tu te trouves dans une feuille blanche avec en haut les listes déroulantes.
    Dans celle de gauche où tu vois "Général", tu choisis "Worksheet".

    Mais en fait, tu peux utiliser cette macro :
    http://www.excelabo.net/excel/conditionformat.php#mefca12couleurs

    en mettant tes propres critères, bien entendu ! ;)

    m@rina
    0
  9. chriscece Messages postés 60 Statut Membre 14
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Sub Test()
    'Déclaration des variables -------------------------
    Dim Cel As Range
    Dim F As Worksheet
    'MEI ----------------------------
    Application.ScreenUpdating = False
    'Blocage ragraîchissement écran
    'Traitement------------------------
    For Each F In Worksheets
    'Pour chaque feuille du classeur
    For Each Cel In F.UsedRange
    'Pour chaque cellule de la plage utilisée de la feuille
    Select Case Cel.Value
    'définir case = valeur de cel
    Case "OUI"
    Cel.Interior.ColorIndex = 4
    Case "NON"
    Cel.Interior.ColorIndex = 3
    Case "N/A"
    Cel.Interior.ColorIndex = 8
    Case "CLIENT"
    Cel.Interior.ColorIndex = 17
    Case "AVOCAT"
    Cel.Interior.ColorIndex = 46
    Case "TRIM"
    Cel.Interior.ColorIndex = 39
    Case "CAB. FAUX"
    Cel.Interior.ColorIndex = 7
    Case "8"
    Cel.Interior.ColorIndex = 8
    Case "A FAIRE"
    Cel.Interior.ColorIndex = 3
    Case "FAIT"
    Case Else
    Cel.Interior.ColorIndex = xlNone
    End Select
    Next Cel
    Next F
    Application.ScreenUpdating = True
    End Sub
    End Sub

    Elle marchait très bien dans l'onglet général et maintenant ça beugue. Pourquoi?
    0
  10. chriscece Messages postés 60 Statut Membre 14
     
    Pour que ce soit plus simple, je joint le lien de mon fichier

    http://www.cijoint.fr/cjlink.php?file=cj200807/cij6m0qwfN.xls
    0
  11. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    ça marche pas... ça bugue...
    Dans ce cas c'est toujours la 3ème ligne
    0
  12. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Pas d'utilisation de SelectionChange dans le fichier que tu as mis en ligne.
    Mais vu la vitesse d'execution de ta macro oublie cette idée, à chaque fois que tu voudras saisir qcq chose il faudra attendre 3s, ça deviendra vite insupportable.
    Optimise plus ta macro avant
    0
  13. chriscece Messages postés 60 Statut Membre 14
     
    Merci beaucoup pour votre aide à tous.

    Eriic, je vois pas comment je peux optimiser, peux-tu m'aider? Et effectivement j'ai envoyé le fichier ou j'ai annulé la macro dans Worksheet.
    0
  14. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    ben déjà supprime toutes tes colonnes vides et fais :
    For Each Cel In F.Range("A2").CurrentRegion
    au lieu de For Each Cel In F.UsedRange
    Tu balaieras 500 cellules au lieu 16000
    0
  15. chriscece Messages postés 60 Statut Membre 14
     
    Alors, j'ai essayé de supprimer les colonnes vides, j'ai beau faire clic droit / supprimer, ça marche pas.

    Et si je mets ta formule et que je lance ma macro, ça ne fait plus rien.

    AU SECOURS
    0