Option sur code vba déjà créé

akmer

XLDnaute Junior
Bonjour,
J’ai crée à un petit logiciel à l’aide de divers forums cependant je souhaiterais ajouter quelque options décritent ci-dessous.

Après avoir cliqué sur le bouton GO je souhaiterai que si les dates ne sont pas saisi sous le format suivant : jj-mm-aaaa, que un message d'erreur apparaisse, les tirets sont très important, si on met jj/mm/aaaa il faudra aussi que le message d'erreur apparaisse, de même si on saisie du texte…
Vous pourrez constater que un code existe déjà derrière les textboxdate mais ne répond pas totalement à ma demande, je souhaiterai que les codes apparaissent à cette endroit là cela permettrait de faire apparaitre un message d'erreur directement lors de la saisie.

De plus je souhaiterai (gen demande peut être beaucoup :) ), que après avoir cliqué sur le bouton OK qu’un message sur l’écran indique par exemple « Veuillez patienter, chargement en cour… » (avec si possible un petit sablier à coté ou que le pointeur de la souris se transforme en sablier)lors du chargement de tous les codes.
Je tiens à préciser qu’il ne faut pas que les textboxdate se vide car vous pourrez constatez qu'il y a un bouton sauvegarder qui en cliquant dessus permet de sauvegarder en faisan appel au contenu des 2 textboxdate pour le nom du fichier.

Je vous joint la base de donnée ainsi que le logiciel, il faut que vous modifiez dans les codes vba (derrière le bouton GO dans l’userform1) le répertoire où vous stockerez la base de données.

('connexion à la bdd et à la requête)
Set db = DBEngine.OpenDatabase("O:\ENGAGE\test\ENGAGE.mdb")

Et si vous résolvez mes problèmes pourriez vous me dire précisément où vous avez fait les modifications, car ce n’est pas le logiciel originale que je vous envoi et je voudrais savoir où faire les modifications par la suite sur le logiciel originale.

Merci d’avance pour votre aide.
Cordialement

Lien logiciel Excel :
http://cjoint.com/?fojQgFEuNy

Lien logiciel Access :
http://cjoint.com/?fojQNDCruP

Ps : je reconnais avoir posté des messages posant les mêmes questions mais sans avoir joint les fichiers, et étant débutant je ne comprends pas toutes les explications donc c’est pour sa que je crée un nouveau post pour que quelqu’un puisse me faire les modifications nécessaire directement sur mes codes Vba.
 

tototiti2008

XLDnaute Barbatruc
Re : Option sur code vba déjà créé

Bonjour,

Je crois que si tu n'as pas de réponse, c'est parce que tu veux qu'on fasse tout ton boulot à ta place.
Colle plutot les morceaux de code concernés, on te donnera des pistes pour les modifier, mais analyser le fonctionnement de toute ton application, c'est un peu lourd...:(
 

gilbert_RGI

XLDnaute Barbatruc
Re : Option sur code vba déjà créé

Bonjour

au clique sur Go

mettre ceci

Code:
dim date1 , date2
   date1 = Format(Me.TextBoxDate1, "dd-mm-yyyy")
    date2 = Format(Me.TextBoxDate2, "dd-mm-yyyy")

remplacez dans le code textbox1 et textbox2 par date1 et date2

les modifications sont remarquées

Code:
Private Sub CommandButtonOK_Click()
'************************************************
'modification ICI
    Dim Date1, Date2
    Date1 = Format(Me.TextBoxDate1, "dd-mm-yyyy")
    Date2 = Format(Me.TextBoxDate2, "dd-mm-yyyy")
 '************************************************

    Application.ScreenUpdating = False

    'Effacer texte + présentation dans la feuille données
    Sheets("Données").Select
    Cells.ClearContents
    Cells.NumberFormat = "General"
    Cells.Interior.ColorIndex = xlNone
    Cells.Borders.LineStyle = xlNone
    Call FusionCells(Range("A1:IV65536"), xlGeneral, xlBottom, False, False)

    'Effacer texte + présentation dans la feuille données
    Sheets("Etat des décisions").Select
    Cells.ClearContents
    Cells.NumberFormat = "General"
    Cells.Interior.ColorIndex = xlNone
    Cells.Borders.LineStyle = xlNone
    Call FusionCells(Range("A1:IV65536"), xlGeneral, xlBottom, False, False)

    'Effacer texte + présentation dans la feuille données
    Sheets("Comptabilisation automatique").Select
    Cells.ClearContents
    Cells.NumberFormat = "General"
    Cells.Interior.ColorIndex = xlNone
    Cells.Borders.LineStyle = xlNone
    Call FusionCells(Range("A1:IV65536"), xlGeneral, xlBottom, False, False)

    'on teste les 2 zones de texte pour savoir si elles sont renseignées
    'et si oui on fait le traitement
    If Not (TextBoxDate1 = "" Or TextBoxDate2 = "") Then
        Dim db As DAO.Database        'une base de données
        Dim rq As DAO.QueryDef        'une requête
        Dim rs As DAO.Recordset       'un jeu d'enregistrements (recordset)
        Dim c As Field                'un champ
        Dim i As Integer              'un compteur

        'connexion à la bdd et à la requête
   '************************************************
   'modification ICI

        'Set db = DBEngine.OpenDatabase("O:\ENGAGE\test\ENGAGE.mdb")
        Set db = DBEngine.OpenDatabase(ThisWorkbook.Path & "\ENGAGE.mdb")

    '************************************************


        Set rq = db.QueryDefs("11)état décision en rentrant parametre")

        'spécification des valeurs des paramètres
'************************************************
'modification ICI

        rq.Parameters(0).Value = Date1
        rq.Parameters(1).Value = Date2
'************************************************

        'accès aux données de la requête
        Set rs = rq.OpenRecordset

        'on se positionne à la cellule de départ
        Sheets("Données").Select
        Range("A7").Select

        'Boucle sur tous les enregistrements du jeu
        Do While Not rs.EOF
            'initialisation du compteur
            i = 0
            'Boucle sur tous les champs
            For Each c In rs.fields
                ActiveCell.Offset(0, i).Value = rs.fields(c.Name)
                i = i + 1
            Next
            ActiveCell.Offset(1).Select
            rs.MoveNext
        Loop

        Call titre
        Call soustitre
        Call AfficherData
        Call miseenpage
        Call Compta
        Call miseenpagecompta

        'fermeture de l'userform + réinitialisation
        'si laisse code ci dessous la date n'apparaitra pas automatiquement lors de la sauvegarde
        'TextBoxDate1 = ""
        'TextBoxDate2 = ""
        UserForm1.Hide

        'les 2 zones de texte ne sont pas renseignées, on affiche un message
    Else
        MsgBox "Saisie incomplète !", vbExclamation
    End If

    Sheets("Etat des décisions").Select
    Range("A2").Select
    Application.ScreenUpdating = False

End Sub

Salutations

RGI
 
Dernière édition:

Discussions similaires

Réponses
93
Affichages
2 K
Réponses
9
Affichages
172
Réponses
2
Affichages
121

Statistiques des forums

Discussions
312 337
Messages
2 087 392
Membres
103 536
dernier inscrit
komivi