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 :

Question sur les nombres - Integer négatifs


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2024
    Messages : 3
    Par défaut Question sur les nombres - Integer négatifs
    Bonjour,
    Je cherche à mettre une condition pour des nombres entiers, pour faire en sorte de prendre en compte les mois précédents du mois en cours. Avec une petite spécificité évidemment : si le mois est inférieur à 1, il faut lui ajouter 12.
    Donc si le mois en cours est 1 (Janvier), le mois précédent 0, auquel j'ajoute 12 (Décembre), le précédent à celui-ci -1, auquel j'ajoute 12 (Soit 11 > Novembre).

    Avec ce code, la première partie fonctionne et me renvoie bien 1, 0 , -1, mais quand je fais la suite, les nombres inférieurs à 1 sont mis à zéro.

    Voici le code que j'utilise.

    Avez-vous une idée de ce qui pourrait bloquer ? Le forma Integer intègre bien les nombres négatifs, non ?

    Merci d'avance pour vos lumières :-)

    Aujourdhui = Date
    Mois = Month(Aujourdhui)
    An = Year(Aujourdhui)
    AnUn = Year(Aujourdhui)
    AnDeux = Year(Aujourdhui)
    AnTrois = Year(Aujourdhui)

    Dim MoisUn, MoisDeux, MoisTrois As Integer

    Mois = Mois - 1
    MoisUn = Mois - 1
    MoisDeux = Mois - 2
    MoisTrois = Mois - 3

    MsgBox "MoisUn " & MoisUn & " - MoisDeux " & MoisDeux & " - MoisTrois " & MoisTrois

    If MoisUn < 1 Then MoisUn = MoisUn + 12 And AnUn = An - 1
    If MoisDeux < 1 Then MoisDeux = MoisDeux + 12 And AnDeux = An - 1
    If MoisTrois < 1 Then MoisTrois = MoisTrois + 12 And AnTrois = An - 1

    MsgBox "MoisUn " & MoisUn & " - MoisDeux " & MoisDeux & " - MoisTrois " & MoisTrois

  2. #2
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 516
    Par défaut
    Bonjour,
    Utilisez plutôt DateSerial pour ce type de calcul, l'incrémentation se fera toute seule.

    Référence Microsoft : Fonction DateSerial (Visual Basic pour les applications) | Microsoft Learn

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Salut,

    Pourquoi réinventer la roue (en moins bien) ?
    DateSerial, DateAdd, DateDiff, c'est fait pour ca.

  4. #4
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2024
    Messages : 3
    Par défaut
    Citation Envoyé par Valtrase Voir le message
    Bonjour,
    Utilisez plutôt DateSerial pour ce type de calcul, l'incrémentation se fera toute seule.

    Référence Microsoft : Fonction DateSerial (Visual Basic pour les applications) | Microsoft Learn
    Merci beaucoup pour vos retours. Je vais regarder ça :-)
    Très bonne fin de journée,
    Hugues.

  5. #5
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 579
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim Aujourdhui  as date,an As Integer,AnUn  As Integer, AnDeux As Integer, AnTrois As Integer
    Aujourdhui = Date
    an = Year(Aujourdhui)
    AnUn = an + 1
    AnDeux = AnUn + 1
    AnTrois = AnDeux + 1
     
    Dim Mois  As Integer,MoisUn As Integer, MoisDeux As Integer, MoisTrois As Integer
    Mois = Month(Aujourdhui)
    MoisUn = Month(DateSerial(an, mois - 1, 1))
    MoisDeux = Month(DateSerial(an, MoisUn - 1, 1))
    MoisTrois = Month(DateSerial(an, MoisDeux - 1, 1))
     
    MsgBox "MoisUn " & MoisUn & " - MoisDeux " & MoisDeux & " - MoisTrois " & MoisTrois

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 524
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 524
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MoisUn = Month(DateSerial(an, mois - 1, 1))
    Il y a peut être un peut plus lisible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MoisUn = Month(DateAdd("m", -1, an))

  7. #7
    Candidat au Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2024
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2024
    Messages : 3
    Par défaut
    Merci beaucoup :-)

Discussions similaires

  1. Réponses: 4
    Dernier message: 29/01/2015, 19h00
  2. [Débutant] [C#] Question sur les threads et le nombre de calculs
    Par Pawda dans le forum C#
    Réponses: 2
    Dernier message: 07/02/2013, 23h39
  3. Question bête sur les nombre à virugle
    Par zebulon94 dans le forum Général Python
    Réponses: 34
    Dernier message: 03/02/2009, 15h13
  4. Réponses: 11
    Dernier message: 01/05/2007, 00h15
  5. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11

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