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 formulaire VBA avec condition de liste et d'ajout [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Spécialiste Agirculture de Précision
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Spécialiste Agirculture de Précision
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 9
    Points
    9
    Par défaut Problème formulaire VBA avec condition de liste et d'ajout
    Bonjour,

    Il y a quelques jours j’ai ouvert puis fermer un post sur un tableau d’intervention de techniciens SAV au sein d’une entreprise qui possède plusieurs succursales en VBA sur Excel.
    A présent voulais faire un formulaire qui sera mis à disposition sur le serveur SAV commun de l’entreprise afin de remplir mon tableau fait précédemment. Mais forcément cela ne se passe pas comme prévu et n’ayant pas trop de connaissance en VBA =s

    C’est pour cela que je demande votre aide afin que je puisse comprendre mes erreurs tout faisant en sorte que cela fonctionne.

    Explication :
    Je souhaiterais que lorsqu’une personne ouvre le fichier Excel « ajout_d_intervention.xlsm » cette personne est en face d’elle un tableau de formulaire comme celui ci-dessous. Une fois afficher la personne le rempli en fonction des informations qu’elle possède, puis en validant je reçois un mail afin d’être mis au courant qu’il y a eu une ligne d’ajouter à mon tableau.


    Mais j’ai des problèmes au niveau :

    - De l’affichage du « UserForm » dans le tableau Excel :
    Lorsqu’une personne ouvre le fichier Excel, celui-ci affiche directement et clairement le formulaire. A savoir il a été créé directement à partir de l’éditeur VBA d’Excel.

    - Des conditions de liste du formulaire :
    Lorsque la personne sélectionne une base dans le formulaire, je voudrais que les noms des chefs d’atelier de cette base s’affichent dans la seconde liste "demandeur". Mais je voudrais que cette liste soit uniquement crée en VBA.

    - Affichage d’un message d’avertissement en fonction du contenue :
    Je voudrais que si la personne sélectionne « Guidage GPS », un message « msgBox » s’affiche en avertissement avec un bouton « OK » mais il ne doit pas s’afficher si c’est « Climatisation ».

    - De l’envoi du mail :
    Lorsque le formulaire est rempli, la personne fait « Envoyer », et en même temps cette action m’envoie un Email me disant qu’il y a une nouvelle intervention.

    - De l’ajout de ligne dans le tableau récapitulatif :
    Une fois l’envoi fait, ma ligne s’ajoute bien dans le tableau, mais actuellement si j’ajoute une autre demande, celle-ci écrase celle entré précédemment. En gros je n’ai qu’une seule ligne qui se crée au lieu de les ajouter les une en dessous des autres.


    Voici mon 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
    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
    Option Explicit
    Dim Ws As Worksheet
     
    'Pour le formulaire
    Private Sub UserForm_Initialize()
     
     
        'Date du jour
        Labeldate.Caption = Format(Date, "dd/mm/yyyy")
     
     
        'Liste déroulante base
        TypeBox.ColumnCount = 1
        TypeBox.List() = Array("Climatisation", "Guidage GPS")
     
     
        'Avertissement si Guidage GPS dans Typebox
        If TypeBox = "Guidage GPS" Then
            MsgBox "Il faut la présence d'un technicien de la base avec l'intervenante", vbOKOnly
        End If
     
        'Liste déroulante base
        BaseBox.ColumnCount = 1
        BaseBox.List() = Array("AN", "HE", "CH", "VE", "FO", "NA", "FG", "MZ", "ML", "CO", "DA")
     
     
        'Liste déroulante des demandeurs en fonction des bases
        If BaseBox.Value = "AN" Then
            DemandeurBox.Value = "demandeur 1"
            DemandeurBox.Value = "demandeur 2"
        End If
     
     
     
        'Liste déroulante Payant ou Cession
        PCBox.ColumnCount = 1
        PCBox.List() = Array("Payant", "Cession")
     
     
    End Sub
     
     
    'Bouton Envoyer
    Private Sub EnvoyerButton_Click()
        Dim Der_Ligne As Integer
     
        'Message d'avertissement avant envoi + envoi de la demande si clic sur oui
        If MsgBox("Confirmez-vous l'envoi d'une intervention ?", vbYesNo, "Demande de confirmation") = vbYes Then
     
            Der_Ligne = Sheets("Clients").Range("a65536").End(xlUp).Row + 3 'Place la nouvelle intervention après la dernière ligne de tableau non vide
     
            Range("J" & Der_Ligne).Value = BaseBox
            Range("K" & Der_Ligne).Value = DemandeurBox
            Range("B" & Der_Ligne).Value = PCBox
            Range("C" & Der_Ligne).Value = Code_ClientBox
            Range("D" & Der_Ligne).Value = NomBox
            Range("E" & Der_Ligne).Value = InterlocuteurBox
            Range("F" & Der_Ligne).Value = AdresseBox
            Range("G" & Der_Ligne).Value = TelBox
            Range("H" & Der_Ligne).Value = MaterielBox
            Range("I" & Der_Ligne).Value = ObservationBox
        End If
    End Sub
     
     
    'Bouton Quitter
    Private Sub QuitterButton_Click()
        Unload Me
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par Pierre8585 Voir le message
    Bonjour,

    Explication :
    Je souhaiterais que lorsqu’une personne ouvre le fichier Excel « ajout_d_intervention.xlsm » cette personne est en face d’elle un tableau de formulaire comme celui ci-dessous. Une fois afficher la personne le rempli en fonction des informations qu’elle possède, puis en validant je reçois un mail afin d’être mis au courant qu’il y a eu une ligne d’ajouter à mon tableau.


    - De l’affichage du « UserForm » dans le tableau Excel :
    Lorsqu’une personne ouvre le fichier Excel, celui-ci affiche directement et clairement le formulaire. A savoir il a été créé directement à partir de l’éditeur VBA d’Excel.
    Dans l'Explorateur de Projet, tu fais un clic-droit sur l'icône "ThisWorkBook" qui correspond à ton classeur et tu fais afficher le code. Tu choisis Workbook dans la liste déroulante de gauche, et open dans la liste déroulante de droite, et tu devrais avoir un gabarit de procédure à emplir. Tu t'organises pour avoir quelque chose de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        UserForm1.show
    End Sub
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Spécialiste Agirculture de Précision
    Inscrit en
    Mars 2015
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Spécialiste Agirculture de Précision
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2015
    Messages : 29
    Points : 9
    Points
    9
    Par défaut
    Merci Clementmarcotte de ton explication, j'avais bien vu des choses là dessus mais pas aussi bien expliqué. Du coup j'ai vu mon erreur à ce sujet.

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

Discussions similaires

  1. numérotation en vba avec condition
    Par nrdz83 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2010, 20h06
  2. Problème ouverture Etat avec condition
    Par Titiii25 dans le forum IHM
    Réponses: 5
    Dernier message: 05/01/2010, 11h07
  3. Problème de dépassement avec le package Listing
    Par Faith's Fall dans le forum Mise en forme
    Réponses: 2
    Dernier message: 04/08/2007, 18h44
  4. Problème formulaire POST avec SSO
    Par niluge22 dans le forum Servlets/JSP
    Réponses: 9
    Dernier message: 23/07/2007, 17h35
  5. Réponses: 13
    Dernier message: 08/02/2007, 17h05

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