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 :

recherche de n° semaine par rapport a une date


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2011
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Février 2011
    Messages : 60
    Points : 44
    Points
    44
    Par défaut recherche de n° semaine par rapport a une date
    Bonjour tout le monde
    n'étant pas un pro du vba, je rame un peu sur le sable...
    j'ai un fichier exel avec des onglets par semaine (S01,S02...) Comment pui-je ouvrir le bon onglet correspondant à une date donnée (ex: 19/01/12 m'ouvre S03).
    Si quelqu'un à le sésame de mon problème ???
    Merci d'avance

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Février 2009
    Messages
    334
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 334
    Points : 253
    Points
    253
    Par défaut
    Bonjour gilou,
    voici :
    NO.SEMAINE(numéro_de_série,[type_retour])
    soit si ta date est en A1
    =NO.SEMAINE(A1;2)

  3. #3
    Membre émérite
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 816
    Points : 2 954
    Points
    2 954
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Pourquoi pas comme ceci :
    Date saisie en B3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim NomOnglet As String, NumSem As Integer
    NumSem = Format(Range("B3"), "ww", vbMonday, vbFirstFourDays)
    If NumSem < 10 Then
        NomOnglet = "S0" & NumSem
    Else
        NomOnglet = "S" & NumSem
    End If

  4. #4
    Membre éprouvé Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Points : 929
    Points
    929
    Par défaut
    Bonjour,

    Dans un premier temps tu peux lire ceci
    C'est un excellent tutoriel sur la gestion des dates en VBA.

    Il y'est fourni un fonction d’extraction du n° de semaine à partir d'une date. (ci dessous):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Public Function Semaine(LaDate As Variant) As Variant
    '---------------------------------------------------------------------------------------
    ' Procedure : Semaine
    ' Date      : vendredi 21 décembre 2007 13:56
    ' Auteur    : Maxence Hubiche (mhubiche@club-internet.fr -  06.18.61.14.35)
    ' Objet     : Renvoie le numéro de la semaine pour le calendrier français
    ' Spec      : Cette fonctino empèche le débordement en semaine 53, en mettant les jours
    '               de la semaine 53 en semaine 1
    ' Retour    : Renvoie un Byte (n° de la semaine) ou Null si l'argument n'était pas une
    '               date
    '---------------------------------------------------------------------------------------
    '
        Dim bytTemp As Byte
        If IsDate(LaDate) Then
            bytTemp = CByte(DatePart("ww", LaDate, vbMonday, vbFirstFourDays)) Mod 53
            If bytTemp = 0 Then bytTemp = 1
            Semaine = bytTemp
        Else
            Semaine = Null
        End If
    End Function
    Ensuite pour ton problème il te suffit d'ouvrir l'onglet dont le nom se termine par le bon n° de semaine. La fonction right associée à la fonction CInt de conversion string -> int devrait faire l'affaire.

    Bonne journée.

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Points : 9 402
    Points
    9 402
    Par défaut
    bonjour,

    Ci dessous une piste pour trouver le numéro de la semaine en utilisant la différence de semaine entre la date et le premier jour de l'année
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox DateDiff("ww", DateSerial(2012, 1, 1), DateSerial(2012, 4, 19)) + 1

  6. #6
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Essai ceci pour voir si ça convient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Sub ActiverFeuille()
     
        Dim LaDate As Date
     
        LaDate = #2/29/2012#
     
        Worksheets("S" & Format(DatePart("ww", LaDate, 0, 2), "0#")).Activate
     
    End Sub
    Hervé.

Discussions similaires

  1. requete par rapport a une date et un id distinct
    Par alexkickstand dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 23/05/2007, 15h40
  2. Réponses: 7
    Dernier message: 22/11/2006, 09h14
  3. calcul en mois par rapport a une date
    Par azde7015 dans le forum Access
    Réponses: 12
    Dernier message: 22/03/2006, 09h50
  4. AGREGAT PAR RAPPORT A UNE DATE
    Par Chap$ dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/03/2004, 10h32
  5. Supprimer un fichier par rapport a une date
    Par NewB dans le forum Linux
    Réponses: 2
    Dernier message: 25/06/2003, 13h44

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