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 :

Problème de date VBA


Sujet :

Macros et VBA Excel

Mode arborescent

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant
    Inscrit en
    Juin 2019
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : Canada

    Informations professionnelles :
    Activité : Consultant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2019
    Messages : 39
    Par défaut Problème de date VBA
    Bonjour,

    Je suis à élaborer un logiciel de gestion budgétaire pour mon entreprise avec Excel VBA sur office 365 business pro.

    J'avance avec succès jusqu'à ce que je rencontre ce problème. L'un de mes formulaire répartie des montants sur 12 mois (prévisions budgétaire). Tout les paramètres fonctionnent sauf 1, soit la date du premier jour de chaque mois. ex : 2019-01-01, 2019-01-02, etc.

    Au début cela fonctionnait et tout à coup ça ses mit à planter. Ex : 2019-01-01, 05/06/2019, 06/01/2019, etc. Seulement la première date est OK puis c'est n'importe quoi.

    J'ai fait affaire avec un conseiller sur Microsoft community. Nous avons tenté plusieurs solutions de format de date, désinstaller office 365 et réinstaller, de même avec la suite office, copier sur un nouveau fichier. Bref rien n'a fonctionné. Pourtant, le conseiller avait mon classeur et de son côté tout fonctionnaient.

    Sa conclusion est que mon classeur est peut-être corrompu. Pourtant tout mes autres formulaires fonctionnent et je n'ai rien importé et tout conçu manuellement.

    Voici les codes concerné :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    'Date
    Private Sub txtdate_AfterUpdate()
    On Error GoTo Message
    Me.txtdate = Format(CDate(Me.txtdate), "yyyy-mm-dd")
    Exit Sub
     
    Message:
    MsgBox ("Vous avez entr? le mauvais format de date !")
    Me.txtdate = ""
    End Sub
     
    'Date de paiement
    Private Sub txtdatefin_AfterUpdate()
    On Error GoTo Message
    Me.txtdatefin = Format(CDate(Me.txtdatefin), "yyyy-mm-dd")
    Exit Sub
     
    Message:
    MsgBox ("Vous avez entr? le mauvais format de date !")
    Me.txtdatefin = ""
    End Sub
     
    'Bouton budg?ter
    Private Sub budg?ter_Click()
    Dim x As Integer
    Dim paiementmens As Double
     
    If Me.txttype < 0 Or Me.montant = "" Or Me.p?riode < 0 Or Me.cat?gorie < 0 Or Me.souscat < 0 Then
        MsgBox ("Il manque des informations !")
     
    Else
        'V?rifier si la date de paiement est inscrite
        If Me.txtdatefin <> "" Then
            x = DateDiff("m", Me.txtdate, Me.txtdatefin)
            paiementmens = CDbl(Me.montant) / x '<-- Calcul des mensualit?s qu'il reste ? payer entre ces 2 dates
     
            Do Until x = 0
     
                If Sheets("pr?visions").Range("ar76") <> "" Then
                Sheets("pr?visions").ListObjects(1).ListRows.Add
                End If
     
                'Trouver la derni?re ligne
                dlt = Sheets("pr?visions").Range("ar10000").End(xlUp).Row
     
                Sheets("pr?visions").Range("ar" & dlt) = Me.txtdate
                Sheets("pr?visions").Range("as" & dlt) = Me.txttype
                Sheets("pr?visions").Range("at" & dlt) = paiementmens
                Sheets("pr?visions").Range("au" & dlt) = Me.cat?gorie
                Sheets("pr?visions").Range("aw" & dlt) = Me.souscat
                Sheets("pr?visions").Range("ay" & dlt) = Me.txtdescription
     
                Me.txtdate = DateAdd("m", 1, Me.txtdate) '<-- Ajout d'un mois en plus ? la date de d?part
                x = x - 1 '<-- D?compte du nombre de fois qu'il faut faire la boucle
     
            Loop
        End If
                Me.txtdate = ""
                Me.txttype = ""
                Me.montant = ""
                Me.p?riode = ""
                Me.txtdatefin = ""
                Me.cat?gorie = ""
                Me.souscat = ""
                Me.txtdescription = ""
     
        ThisWorkbook.RefreshAll
        ThisWorkbook.Save
     
    End If
    End Sub
    Voici le formulaire
    Nom : formulaire.png
Affichages : 2722
Taille : 45,1 Ko

    En terminant je me suis inspiré d'un vidéo et naturellement sur le vidéo cela fonctionnait.

    Avez-vous une solution autre que tout recommencé
    Images attachées Images attachées  

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

Discussions similaires

  1. [WD-MAC 2011] Problème fonction Date VBA Word
    Par calimhiro dans le forum VBA Word
    Réponses: 3
    Dernier message: 30/12/2012, 14h20
  2. Problème de date Vba excel
    Par larosse dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/11/2009, 18h33
  3. [VBA-E]problème de date
    Par plante.douce dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/04/2006, 14h06
  4. [VBA-E]problème de date
    Par plante.douce dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/04/2006, 23h08
  5. [VBA-E]problème de date dans une requete
    Par isa21493 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 24/02/2006, 11h45

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