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 :

Fonction "MonthName(Month(Date) - 1)" en janvier [XL-365]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    TSE
    Inscrit en
    Octobre 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : TSE
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 32
    Par défaut Fonction "MonthName(Month(Date) - 1)" en janvier
    Bonjour,

    J'aurais besoin d'aide pour solutionner une problematique concernant la fonction "MonthName(Month(Date) - 1)" au mois de janvier.

    En effet dans ma macro utilise cette fonction pour m'assurer que la macro en question n'a pas déjà été lancé dans le mois en cours, on travail avec un décalage d'un mois par rapport au mois actuel.

    La problématique est qu'a priori VBA ne comprend pas que, au mois de janvier, MonthName(Month(Date) - 1), soit Janvier -1, correspond a décembre.

    Ci dessous le code:

    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
    Sub Generate()
     
    'Copie des valeurs de la feuille Compilation vers la feuille Facturation par mois
    Sheets("Facturation par mois").Activate 'sur la feuille Facturation par mois
    If ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, -2).Value = MonthName(Month(Date) - 1) And IsEmpty(ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0)) = True Then
     
     
        'Sélection des cellules a copier
        Sheets("Compilation").Select
        Range("N53:R53").Select
        Selection.Copy
        Sheets("Facturation par mois").Select
     
        'Identification de la cellule de destination
        ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Select
     
            'Vérification si la cellule de destination n'est pas fusionné
            If ActiveCell.MergeCells = True Then
            ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Offset(2, 0).Select
            End If
     
        'Copie des valeurs
        Selection.PasteSpecial Paste:=xlPasteValues
     
        'Sauvegarde du classeur
        ThisWorkbook.Save
     
        'Message d'erreur si facturation du mois en cours déjà généré
        Else: MsgBox "Facturation du mois de " & MonthName(Month(Date) - 1) & " déjà générée."
     
    End If
     
    End Sub
    Merci de votre aide.

    Cordialement

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    peux-tu nous montrer la fonction ? Dans ton code tu ne fais que l'utiliser

  3. #3
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 211
    Par défaut
    Hello,

    ben oui, MonthName de 0 c'est une erreur :-)
    voici le bon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonthName(Month(DateAdd("m",-1,Date)))

  4. #4
    Membre averti
    Homme Profil pro
    TSE
    Inscrit en
    Octobre 2012
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : TSE
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2012
    Messages : 32
    Par défaut
    Parfait, merci de votre aide.

    Ci dessous le code corrigé:

    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
    Sub Generate()
     
    'Copie des valeurs de la feuille Compilation vers la feuille Facturation par mois
    Sheets("Facturation par mois").Activate 'sur la feuille Facturation par mois
    If ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, -2).Value = MonthName(Month(DateAdd("m", -1, Date))) And IsEmpty(ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0)) = True Then
     
     
        'Sélection des cellules a copier
        Sheets("Compilation").Select
        Range("N55:R55").Select
        Selection.Copy
        Sheets("Facturation par mois").Select
     
        'Identification de la cellule de destination
        ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Offset(1, 0).Select
     
            'Vérification si la cellule de destination n'est pas fusionné
            If ActiveCell.MergeCells = True Then
            ActiveSheet.Range("E" & ActiveSheet.Rows.Count).End(xlUp).Offset(2, 0).Select
            End If
     
        'Copie des valeurs
        Selection.PasteSpecial Paste:=xlPasteValues
     
        'Sauvegarde du classeur
        ThisWorkbook.Save
     
        'Message d'erreur si facturation du mois en cours déjà généré
        Else: MsgBox "Facturation du mois de " & MonthName(Month(DateAdd("m", -1, Date))) & " déjà générée."
     
    End If
     
    End Sub

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

Discussions similaires

  1. Evaluation de la fonction quote
    Par Toitoine dans le forum Lisp
    Réponses: 2
    Dernier message: 05/05/2007, 19h13
  2. [Fonction] Quote et guillemet dans un textarea
    Par ddelec24 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 11/03/2007, 15h51
  3. Fonction Quoted printable qui ne fonctionne pas.
    Par leCcsympas dans le forum C
    Réponses: 3
    Dernier message: 13/01/2007, 18h54
  4. Inverse de la fonction QUOTE() ?
    Par __fabrice dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 13/07/2006, 10h39

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