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 :

Option sur code vba déjà créé


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Par défaut Option sur code vba déjà créé
    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.

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Une question à la fois. Je n'ai pas ouvert ton fichier. Peux-tu préciser si ton textbox est dans une feuille de calculs ou dans un userform
    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…
    Dans un userform, tu places ce code dans l'événement Exit de la textbox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
        If Not TextBox1 Like ("##-##-####") And TextBox1 <> "" Then
            MsgBox "Saisir la date au format ""jj-mm-aaaa"""
            Cancel = True
        End If
    End Sub
    A adapter pour une textbox placée dans une feuille de calculs.

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    De plus je souhaiterai qu'après avoir cliqué sur le bouton OK, un message sur l’écran indique « Veuillez patienter, chargement en cour… »
    Tu as plusieurs exemples ici.
    Il suffit que tu mettes, avant chargement du code un "Nom de l'userform.show" pour afficher le message.
    A la fin de chargement du code, tu mets "Unload Nom de l'userform"
    Tu dois lancer le chargement de ton code dans Userform_Initialize ou Userform_Activate de la boîte de dialogue proposée.
    Besoin d'une explication ? Tu demandes.
    Pour le sablier, tu as l'option dans les propriétés de l'userform
    et tu le remets "= 0" en fin de chargement.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Par défaut
    J'ai une textboxdate dans une userform1.
    J'ai résolue le problème pour le message d'erreur graçe à votre aide cependant je voudrais rajouter du texte au message d'erreur mais que sa apparraissent de la maniére suivant:
    Saisir la date au format "jj-mm-aaaa"
    N'oubliez pas les tirets!!
    Ex:01-01-2008

    Je veux que sa apparaissent à la ligne, je connais le code "& Chr(10) &" mais n'arrive pas à l'assimiler pour le retour à la ligne automatique.

    De plus je ne peux pas ouvrir les fichiers zip(je suis à mon travail), j'ai donc essayé se que vous m'avez dit mais j'ai seulement rajouter dans mon bouton OK de ma userform1 (le bouton ok lance toute la programmation) les codes suivant pour mettre le curseur en sablier (sa sa marche sans pb) et faire apparaitre la userform où j'ai mis "chargement, veuillez patienter":

    CommandButtonOK.MousePointer = 11
    UserForm1.Hide
    UserForm10.Show

    Cependant un probléme se pose, c'est que la userform1 se ferme bien et la userform de chargement apparait mais il faut que je ferme cette derniére pour que toute ma programmation se mette en route.
    Moi je souhaité que pendant tous le temps ou le logiciel travaillé que la userform reste sur l'écran et disparaise dès lors qu'il est fini de travaillé.

    J'éspére avoir été le plus clair possible.
    Merci d'avance pour votre aide

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Msgbox "Saisir la date au format ""jj-mm-aaaa""" & vbcr _
               & "N'oubliez pas les tirets!!" & vbcr _
               & "Ex:01-01-2008"
    Comme je t'ai expliqué, pour que le message (sous forme d'userform) soit affiché le temps du chargement, ce chargement doit être lancé depuis l'userform.
    Dans le module standard :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub OuvrirUserform()
    Message.show 'où Message est le nom de l'userform
    End sub
     
    Sub ChargerLeCode()
        '... Le code qui doit s'exécuter
        '... pendant l'affichage du message
    End sub
    et dans l'événement Userform_Activate de l'userform Message :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub UserForm_Activate()
        Me.MousePointer = 11
        ChargerLeCode
        Me.MousePointer = 0
        Unload Message
    End sub
    Ainsi tu auras le sablier sur le message le temps de chargement de ton code.
    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 64
    Par défaut
    Je suis vraiment désolez mais sa va faire 3h que j'essaye se que vous me dite et je n'arrive pas a avoir le résultat voulu.
    Des fois sa marche quaziment mais sa entraine des petit problème pour faire apparaitre des message box avec des messages d'erreur.
    J'aimerai vraiment que vous jetiez un oeil à mes fichiers
    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")

    Il n'y a que 2 userform, l'une permet de saisir les dates et il y a la bouton Ok pour lancer le programme et l'autre c'est l'userform que je souhaite qui apparaisse lors du chargement.
    J'éspére vraiment que vous allez pouvoir m'aider.

    Merci d'avance

    Lien logiciel Excel ce n'est pas le même que dans le premier message)
    http://cjoint.com/?fopqethOdn

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

Discussions similaires

  1. [AC-2002] Erreur 91 sur code VBA
    Par volganne dans le forum VBA Access
    Réponses: 6
    Dernier message: 02/09/2010, 14h03
  2. [XL-2000] Aide sur Code VBA
    Par Dan21 dans le forum Excel
    Réponses: 3
    Dernier message: 08/02/2010, 14h38
  3. Problématique sur Code VBA graphique
    Par karim19 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 07/12/2009, 18h54
  4. [VBA]Conseil sur code VBA
    Par mat67000 dans le forum VBA Access
    Réponses: 15
    Dernier message: 22/03/2007, 11h23
  5. mot de passe sur code VBA
    Par Cupidon dans le forum VBA Access
    Réponses: 4
    Dernier message: 07/02/2007, 15h05

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