IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

macro pour selectionner des cellules


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut macro pour selectionner des cellules
    Bonjour a tous. J'ai besoin d'aide pour construire une macro en excel.
    moi j'ai une table avec 5 colonnes : Nom, Prenom, annee_naiss, debut_traitement, fin_traitement.

    moi je voudrais faire une macro qui chaque fois que j'ouvre le fichier, lance une macro qui permet de mettre en rouge tous les traitement qui finit à la date d'aujourd'hui.

    comment je peux faire ça?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Il n'y a pas de notion de jours fériés ?
    La macro sera bien ouverte tous les jours ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    592
    Détails du profil
    Informations personnelles :
    Âge : 74
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 592
    Points : 730
    Points
    730
    Par défaut
    Il n'y a pas besoin de macro :

    - dans une cellule de ta feuille tu ajoute "=aujourdhui" cela te permet d'avoir la date du jour dans ta feuille

    - tu mets une mise en forme conditionnelle sur les cellules que tu souhaites

  4. #4
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    Bonjour,

    pour que ta macro se lance à l'ouverture du fichier, place ton code dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Sub Workbook_Open()
    pour comparer avec la date du jour, utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If feuil.Cells(i, 5) = Now() Then
        feuil.Range(Cells(i, 1), Cells(i, 5)).Interior.ColorIndex = 3
    End If
    Avec colorindex=3 pour remplir en rouge.

  5. #5
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour Daniela PPz78 zandru le forum

    dans ThisWorkbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Explicit
    Private Sub Workbook_Open()
    Call Macro1
    End Sub
    dans un module standard ta macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
    Sub Macro1()
    Dim c As Range
    For Each c In Range("e1:e" & Range("e65536").End(xlUp).Row)
    If c = Date Then c.Interior.ColorIndex = 3
    Next
    End Sub
    attention je considere que tu sauvegarde ton fichier sur cette feuille
    autrement il faut preciser le nom de la feuille ou son numero merci pour l info zandru a+

  6. #6
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    Leatitia, pourquoi appeler macro1 à partir de woorkbook_open au lieu d'insérer le code directement dedans ?
    Citation Envoyé par laetitia Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    Call Macro1
    End Sub
    Il manque la definition de date, qui ne renvoi pas la date du jour mais défini la date systeme, il faut utiliser .

    PS : n'oubli pas les balise CODE

  7. #7
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut
    je pas bien compris ce que je dois faire
    mon probleme est que j'ai une table

    NOM PRENOM DATE_NAISC DATE_DEBUT DATE_FIN
    x t 12/05/1983 15/02/2007 25/02/2007
    e p 05/05/1983 31/01/2008 15/02/2008
    r o 14/05/1986 15/01/2009 10/02/2009
    t b 02/04/1985 16/01/2009 12/02/2009

    ce que je voudrais est que si je ouvre excel aujourd'hui (le 12/02/2009), je voudrais que la 4eme ligne devien rouge.
    si je l'ouvre demain aucune ligne devien rouge.

    comment je peux faire ça?

    Citation Envoyé par zandru Voir le message
    Leatitia, pourquoi appeler macro1 à partir de woorkbook_open au lieu d'insérer le code directement dedans ?


    Il manque la definition de date, qui ne renvoi pas la date du jour mais défini la date systeme, il faut utiliser .

    PS : n'oubli pas les balise CODE

  8. #8
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    rebonjour le fil le forum un exemple a adapter

  9. #9
    Membre confirmé Avatar de zandru
    Homme Profil pro
    Ingénieur conception mécanique
    Inscrit en
    Mars 2008
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur conception mécanique
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2008
    Messages : 507
    Points : 551
    Points
    551
    Par défaut
    ce code devrait fonctionner, s'il est insérer dans le code de "thisworkbook":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Workbook_Open()
        For i = 1 To 99 'fin de ta liste
            If feuil.Cells(i, 5) = Now() Then
                feuil.Range(Cells(i, 1), Cells(i, 5)).Interior.ColorIndex = 3
            End If
        Next
    End Sub
    A tester et à adapter à tes besoins...

  10. #10
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut
    MERCIIIIIIIIII marche super bien...

    Citation Envoyé par laetitia Voir le message
    bonjour Daniela PPz78 zandru le forum

    dans ThisWorkbook

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Option Explicit
    Private Sub Workbook_Open()
    Call Macro1
    End Sub
    dans un module standard ta macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Option Explicit
    Sub Macro1()
    Dim c As Range
    For Each c In Range("e1:e" & Range("e65536").End(xlUp).Row)
    If c = Date Then c.Interior.ColorIndex = 3
    Next
    End Sub
    attention je considere que tu sauvegarde ton fichier sur cette feuille
    autrement il faut preciser le nom de la feuille ou son numero merci pour l info zandru a+

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Citation Envoyé par zandru Voir le message
    Leatitia, pourquoi appeler macro1 à partir de woorkbook_open au lieu d'insérer le code directement dedans ?
    Parce qu'à l'ouverture d'un classeur il faut, pour le systère, un "certain temps" aux feuilles pour "exister".
    Ainsi ton code pourrait-il ne pas s'exécuter. Dans Thisworkbook, on peut placer toutes les commandes concernant l'application ou le classeur (Application.ScreenUpdating, Application.DisplayAlerts, etc. ou les événements concernant le classeur, appel de macro se trouvant dans un module standard...) alors qu'une macro traitant les données d'une feuille ne doit pas s'y trouver.
    Et d'ailleurs on a assez de place pour les mettre ailleurs
    Ce conseil provient d'un constat.
    Bonne journée

    Edit
    Pendant que j'y suis : Call LaMacro ne sert à rien

  12. #12
    Membre régulier
    Inscrit en
    Septembre 2006
    Messages
    446
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2006
    Messages : 446
    Points : 89
    Points
    89
    Par défaut
    J'ai une autre question sur ce sujet. si au lieu de souligner en rouge seulement le traitement qui termine ou moment que je ouvre le ficher, je voudrais souligner tous les traitement dejà terminé, donc toutes les dates du passé. comment je peux faire?

    Edit
    je suis arrivé... il suffit de faire :


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. macro pour selectionner la premiere cellule vide de mon tableau
    Par trickzer dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 09/01/2018, 21h38
  2. [XL-2007] Réalisation d'un macro pour fusionner des cellules sous conditions
    Par yannickcochard dans le forum Excel
    Réponses: 9
    Dernier message: 19/05/2015, 01h31
  3. [XL-2007] Macro pour colorier des cellules en fonction de données
    Par stephane12 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/05/2014, 07h51
  4. Réponses: 7
    Dernier message: 22/03/2011, 18h00
  5. [Formule]Macro pour masquer des formules dans une cellule
    Par Hellx dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/04/2007, 08h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo