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 :

Curseur positionnant visuellement la semaine courante [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Points : 89
    Points
    89
    Par défaut Curseur positionnant visuellement la semaine courante
    Bonjour,

    Est-ce que quelqu'un aurait une idée pour faire en sorte qu'en ouvrant un tableau excel, un curseur se place directement sur la semaine courante ?

    Je m'explique, imaginons que j'ai un classeur avec le nombre de semaines de l'année sur une même ligne (par exemple la 2), je voudrais créer un curseur, sur la ligne 1 par exemple, qui se mette automatiquement sur la semaine en cours quand j'ouvre mon classeur.

    Sachant que la semaine en cours est la semaine de l'année, nous sommes donc aujourd'hui en semaine 36

    Est-ce possible ? Ce serait plus par un calcul ou je dois passer par une macro ?

    Merci

    CurseurSemaine.xlsx
    Images attachées Images attachées  

  2. #2
    Membre expérimenté Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Points : 1 665
    Points
    1 665
    Par défaut
    Bonjour, alors, en gros, voici comment je ferais:

    Tout d'abord, définir les semaines et les identifier juste par leur numéro
    puis leur appliquer un format qui dirait donc semaine xx (donc fans format cell mettre : "semaine "##)
    pour la rangée supérieure , on met juste une formule qui dirait en substance
    =IF(B2=WEEKNUM(NOW());"ê";"")
    et puis on formatte cette rangée avec la police de caractere Wingdings

    je sais pas si je me suis bien fait compris sinon, juste demande ;o)
    Alleï Bonjour chez vous!

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Points : 412
    Points
    412
    Par défaut
    Sinon sans passer par Wingdings, tu peux insérer directement dans ta formule Excel ce caractère "↓"

    Tu pourrais également mettre ton curseur dans toute ta plage en ligne 1 et jouer avec la mise en forme conditionnelle :
    → Dans ta ligne 1 : tu écris ↓ dans toutes les cellules qui t'intéressent
    → Tu sélectionnes toute cette plage de cellule (toujours en ligne 1), tu passes en police blanche
    → Tu ajoutes une mise en forme conditionnelle à l'aide de : "Utiliser une formule pour déterminer..."
    → Tu vérifies que la cellule active est bien "B1" dans ta sélection "B1:XX1" et tu écris la formule : "=B2="Semaine " & NO.SEMAINE(AUJOURDHUI())"
    → le format associé sera simplement "police en noir"


    Du coup, ils seront toujours là mais en blanc et seul le bon curseur passera en noir.

    Cela fonctionne très bien chez moi. Je te donne cette façon pour que tu choisisses celle que tu veux, elle n'est pas mieux que celle proposée par mayekeul

    PS : la formule donnée par mayekeul risque de ne pas fonctionner si ton Excel est en français, utilise la formule NO.SEMAINE (qui est la version française de WEEKNUM)

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut heu
    Bonjour
    sinon par macro
    il y a ceci par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub cursor_position()
        With Range("A1", Cells(1, 53))
            .Value = ""
            .Font.Name = "Wingdings"
        End With
        Num= Format(Date, "ww", , vbFirstFourDays)
        Set cel = Range("B2", Cells(2, 53)).Find("Semaine " & num)
        If Not cel Is Nothing Then  cel.Offset(-1, 0).Value = "ê"
       End Sub
    tu n'a plus qu'a appeler "cursor_position" dans le open du workbook
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Membre régulier Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Points : 89
    Points
    89
    Par défaut
    Merci à tous pour vos réponses !

    mayekeul, je n'ai pas très bien compris mais je vais essayer ta solution, même si pour l'instant j'ai retenu celle de patricktoulon, vu que ça fait exactement ce que je veux ^^

    Quentin merci mais je ne veux qu'une seule flèche dans mon classeur, si je blinde trop, mon chef va me tuer

    En tout cas merci à tous, problème résolu !

    Patrick, je ne comprends pas la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not cel Is Nothing Then  cel.Offset(-1, 0).Value = "ê"
    Pourrais-tu me l'expliquer stp ?

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    tout dabors pourquoi poser la question if

    parceque la fonction find genere une erreur si la valeur n'est pas trouvée

    ensuite traduction de (If Not cel Is Nothing Then cel.Offset(-1, 0).Value = "ê")en francais

    si cel n'est pas rien alors la cellule ligne -1 et meme colonne ="ê"

    cel
    etant la variable représentant la cellule trouvée avec le parmetre "semaine " & num" dans la fonction find

    -1 est appliqué a l'index de ligne de cel

    il m'est difficile d'etre plus clair c'est d'une simplicité
    peut etre un exemple alors

    OK exemple :
    a suposser que j'ai une cellule avec dedans ecrit "toto" la cellule B3 par exemple
    et que je veux mettre "titi" juste au dessus

    je vais faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set cel=range("A3",cells(3,15)).find("toto")'va rechercher "toto" de A3 jusqu' a la 15 colonne sur la meme ligne 
     
    'si cel n'est pas rien la meme cllule  1 ligne au dessus et la meme colonne ="titi"
    if not cel is nothing then cel.offset(-1,0)="titi"
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Membre régulier Avatar de backx3
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2014
    Messages : 173
    Points : 89
    Points
    89
    Par défaut
    C'est parfaitement clair merci beaucoup !

    Tu gères

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

Discussions similaires

  1. remplir un comboBox avec les dates de la semaine courante et glissante
    Par k6971 dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 25/05/2007, 10h11
  2. Date de Lundi de la semaine courante
    Par bonano dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 29/03/2007, 08h41
  3. Réponses: 2
    Dernier message: 21/03/2007, 15h27
  4. Réponses: 6
    Dernier message: 31/08/2006, 01h32
  5. [MySQL] Contenu dynamique suivant le numéro de la semaine courante
    Par mitch99 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 20/05/2006, 21h38

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