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 :

Connaitre le mois avec le numéro de semaine [XL-2000]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 156
    Points : 68
    Points
    68
    Par défaut Connaitre le mois avec le numéro de semaine
    bonjour a toutes et tous,

    je cherche a créer une macro qui pour "déduire" le mois de l'année en fonction du numéro de semaine.
    j'ai une partie de code que voici :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    'Dans ThisWorkbook
    Private Sub Workbook_Open()
        Macro1
    End Sub
     
    'Dans module1
    Sub Macro1()
     
    Select Case Range("P3").Value
        Case Is >= 1, Is <= 5
            Range("P1").Text = "Janvier"
     
        Case Is >= 6, Is <= 9
            Range("P1").Text = "Février"
     
        Case Is >= 10, Is <= 13
            Range("P1").Text = "Mars"
     
        Case Is >= 14, Is <= 18
            Range("P1").Text = "Avril"
     
        Case Is >= 19, Is <= 22
            Range("P1").Text = "Mai"
     
        Case Is >= 23, Is <= 26
            Range("P1").Text = "Juin"
     
        Case Is >= 27, Is <= 32
            Range("P1").Text = "Juillet"
     
        Case Is >= 32, Is <= 35
            Range("P1").Text = "Aout"
     
        Case Is >= 36, Is <= 39
            Range("P1").Text = "Septembre"
     
        Case Is >= 40, Is <= 44
            Range("P1").Text = "Octobre"
     
        Case Is >= 45, Is <= 48
            Range("P1").Text = "Novembre"
     
        Case Is >= 49, Is <= 53
            Range("P1").Text = "Décembre"
     
        Case Else
            Range("P1").Text = "Erreur"
    End Select
     
    End Sub
    assez basic me direz vous, c'est le seul moyen que j'ai trouvé.
    mais lors de la compilation il me dis que j'ai une erreur. débutant dans les macro excel, je me demande si je m'y prend bien, et si je tape ma macro bien la ou elle dois etre.
    pourriez vous m'aider a comprendre comment réaliser ce que je voudrais.

    je voudrais, si possible, que ce soit une routine qui s'exécute pour toute les feuilles de mon classeur

    merci par avance

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

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Remplace les range("P3").Text par Range("P3").Value


    Bon courage

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 156
    Points : 68
    Points
    68
    Par défaut
    merci, il ne me génère plus d'erreur

    mais ai je placé mon code dans les bonnes sections pour qu'il s'exécute sur toutes mes feuilles ?

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

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Ton code s'executera uniquement dans la feuille active

    Il faut faire une boucle sur toutes les feuilles du classeur pour faire ce que tu souhaites

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 156
    Points : 68
    Points
    68
    Par défaut
    a d'accord, et est il possible de l'exécuter sur modification d'une valeur d'une cellule sur la feuille active ?
    si oui, peut tu m'aiguiller stp

    merci

  6. #6
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    Je me permets, jfontaine a l'air déconnecté...
    Pour cela tui dois mettre ton code dans un module de feuille
    (Click droit sur l'onglet, ensuite voir code)
    Pour l'exemple, si la cellule P3 est modifiée, je te laisse ajouter le code voulu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    If Target.Address = "$P$3" Then
        'ton code
    End If
     
    End Sub

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

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Pour compléter la reponse de Fvandermeulen et afin d'eviter d'ecrire le code sur chaque feuille

    Tu creais une procedure qui recevra comme variable a feuille

    A mettre dans Workbook
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Sub Macro1(ByRef Feuil As Worksheet)
     
    Select Case Feuil.Range("P3").Value
        Case Is <= 5
     
            Feuil.Range("P1").Value = "Janvier"
     
        Case 6 To 9
     
            Feuil.Range("P1").Value = "Février"
     
        Case 10 To 13
            Feuil.Range("P1").Value = "Mars"
     
        Case 14 To 18
            Feuil.Range("P1").Value = "Avril"
     
        Case 19 To 22
            Feuil.Range("P1").Value = "Mai"
     
        Case 23 To 26
            Feuil.Range("P1").Value = "Juin"
     
        Case 27 To 32
            Feuil.Range("P1").Value = "Juillet"
     
        Case 33 To 35
            Feuil.Range("P1").Value = "Aout"
     
        Case 36 To 39
            Feuil.Range("P1").Value = "Septembre"
     
        Case 40 To 44
            Range("P1").Value = "Octobre"
     
        Case 45 To 48
            Feuil.Range("P1").Value = "Novembre"
     
        Case 49 To 53
            Feuil.Range("P1").Value = "Décembre"
     
        Case Else
            Feuil.Range("P1").Value = "Erreur"
    End Select
     
    End Sub
    A mettre dans chaque onglet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$P$3" Then
        Macro1 Me
    End If
     
    End Sub

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 156
    Points : 68
    Points
    68
    Par défaut
    bonjour,

    lorsque j'ajoute le code dans l'onglet avec mon case dans le thisWorkbook, j'ai un message lors de la compilation qui me dis :

    "Erreur de compilation : sub ou fonction non définie"

    et en le mettant dans un Module1, rien ne se passe.


    Autre test
    j'ai essayé une fonction simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    MsgBox "Vous venez de modifier la cellule " & Target.Address & _
            " (" & Target.Value & ")"
     
    End Sub
    mais mm cela rien ne se passe

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 156
    Points : 68
    Points
    68
    Par défaut
    le msgBox fonctionne, le problème venait du fait que les macro n'étaient pas active.

    sinon sa fonctionne bien merci a vous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/06/2007, 16h12
  2. Récupérer numéro de semaine courrante avec MySQL
    Par bobic dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2006, 20h11
  3. [Date] Retrouver le mois avec le num de la semaine
    Par romano dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 08/02/2006, 20h31
  4. Réponses: 2
    Dernier message: 06/01/2006, 22h55
  5. Réponses: 14
    Dernier message: 30/12/2005, 19h31

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