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 :

Projet d'aide au remplissage d'un formulaire à ComboBox multiples


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Autre
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Par défaut Projet d'aide au remplissage d'un formulaire à ComboBox multiples
    Pour commencer cette année 2019 je vous souhaite à toutes et à tous une excellente santé afin de pouvoir mener à bien vos projets !

    Je suis Infirmier Libéral et nouveau sur ce forum

    J'utilise depuis 25 ans Excel pour des fonctions de base de tableur. Ma version n'est pas toute jeune mais remplie son contrat

    Dans mon travail et bien que nous soyons au XXIe siècle, je suis accablé par de la paperasserie qui ne cesse d'augmenter, c'est à n'y rien comprendre...
    Une grande partie de mes facturations de soins se fait via la carte vitale et un TPE mais il arrive régulièrement que sois contraint d'envoyer des feuilles CERFA papier.

    Le remplissage manuel est généralement fastidieux et long et je ne suis jamais à l'abri d'une erreur et donc d'un retour de la sécurité sociale pour que je refacture... Vous ne pouvez pas imaginer à quel point cela est parasitaire !

    Quand j'avais un grand nombre de feuilles à remplir pour un patient donné, je m'étais fait un petit modèle WORD que je modifiais en vitesse pour impression.

    Mes besoins sont autres aujourd'hui car je dois réaliser un grand nombre de feuilles de soins papier pour me faire payer les soins d'une remplaçante. Alors voilà il y a quelques jours je me suis lancé dans la création d'un formulaire VBA en parallèle de mon classeur.
    Si j'ai bien réussi grâce à quelques tutos explicites le codage de ma première Combobox et le remplissage automatique de quelques lignes, dés la deuxième j'ai rencontré des difficultés et j'avoue que je ne m'en sors pas tout seul d'où ma présence ici (oui, en lisant quelques sujets sur les Combobox il était indiqué que le meilleur forum d'entraide était ici ).

    J'ai donc détaillé l'ensemble de mon projetNom : PFDS.jpg
Affichages : 392
Taille : 226,6 Ko

    J'ai toujours fait en sorte d'apprendre les choses par moi même mais je manque cruellement de temps alors pour cette fois je suis venu solliciter un coup de main pour mener à bien ce projet qui me fera gagner de la tranquillité.
    Je vous laisse une copie de mon classeur si vous voulez y jeter un coup d'oeil.
    Toute aide sera la bienvenue, je désespère un peu de me libérer de cela rapidement...
    Je vous remercie.PFDS.xlsm

    Bonne journée à vous toutes et tous.

    PS : Aucune donnée patient réelle dans le fichier.

  2. #2
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Bonjour,

    Si j'ai bien réussi grâce à quelques tutos explicites le codage de ma première Combobox et le remplissage automatique de quelques lignes, dés la deuxième j'ai rencontré des difficultés et j'avoue que je ne m'en sors pas tout seul d'où ma présence ici
    Peux-tu expliciter ces difficultés ? Une erreur ? si oui laquelle et a quel ligne ?
    Certaines personnes (dont je fais parti) n'ouvrent pas les pièce jointes (cf post en épinglé) pour avoir plus de réponse je te conseille de copier directement dans ton message les codes associés à tes combobox (avec les balises code de préférence)

  3. #3
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour le fil, bonjour le forum,

    N'ayant la "balézitude" des Masters de ce forum, j'ai osé ouvrir ton fichier et j'ai commencé à y travaillé dessus. Je t'enverrai lorsque ce sera plus abouti...

  4. #4
    Membre habitué
    Homme Profil pro
    Autre
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Par défaut
    Citation Envoyé par Thautheme Voir le message
    Bonjour le fil, bonjour le forum,

    N'ayant la "balézitude" des Masters de ce forum, j'ai osé ouvrir ton fichier et j'ai commencé à y travaillé dessus. Je t'enverrai lorsque ce sera plus abouti...
    Merci beaucoup Thautheme
    Effectivement pas de code vicieux donc c'est très sympa de ta part de te coller àce projet que j'espère avoir correctement décrit..

    J'ai aidé tellement de personnes via des fora sur d'autres sujets sur lesquels je suis plus calé que j'apprécie sincèrement de trouver un peu d'aide à mon tour.

    Bonne soirée

  5. #5
    Expert confirmé
    Homme Profil pro
    Responsable des études
    Inscrit en
    Juillet 2014
    Messages
    2 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable des études
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2014
    Messages : 2 680
    Par défaut
    Là les soucis commencent : En sélectionnant le patient dans la ComboBox 1, les données administratives sont décalées et je me retrouve avec un seul numéro et qui plus est pas dans la bonne case :/
    Qu'entends-tu par décaler ? As-tu fait des changements dans ton code( a part l'ajout du la sub combobox2_change) ?


    Quand je sélectionne la remplaçante dans la ComboBox 2, aucune donnée administrative s'affiche.
    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
    Private Sub ComboBox2_Change()
     
        Dim Ligne As Long
     
        Dim K As Integer
     
        If Me.ComboBox2.ListIndex = -1 Then Exit Sub
     
        Ligne = Me.ComboBox2.ListIndex + 2
     
        TextBox7 = Ws.Cells(Ligne, "B")
     
        For K = 7 To 7
     
            Me.Controls("TextBox" & K) = Ws.Cells(Ligne, K)
     
        Next K
     
    End Sub
    Est-ce normal que ta boucle K commence et fini à 7 ? c'est peut être pour ça que rien ne s'affiche

    idem dans la sub UserForm_Initialize:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        For K = 7 To 7
     
            Me.Controls("TextBox" & I).Visible = True
     
        Next K
    boucle sur K de 7 à 7 et affichage de la textbox I

  6. #6
    Membre habitué
    Homme Profil pro
    Autre
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Par défaut
    Bonjour Halaster.

    Quand je parle de décalage sur a première sélection Combobox 1 une fois que j'ai rentré le code de la Combobox 2, je me retrouve avec les données de la Textbox 4 dans la Textbox 2 et les données des Textbox 2, 3, 5, 6 disparaissent...

    Concernant ma boucle K je vérifie cela, merci.

  7. #7
    Membre habitué
    Homme Profil pro
    Autre
    Inscrit en
    Janvier 2019
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Janvier 2019
    Messages : 16
    Par défaut
    Citation Envoyé par halaster08 Voir le message
    Bonjour,
    Peux-tu expliciter ces difficultés ? Une erreur ? si oui laquelle et a quel ligne ?
    Certaines personnes (dont je fais parti) n'ouvrent pas les pièce jointes (cf post en épinglé) pour avoir plus de réponse je te conseille de copier directement dans ton message les codes associés à tes combobox (avec les balises code de préférence)
    Tout d'abord merci halaster08 de t'intéresser à mon sujet.
    Je comprends ton inquiétude légitime face aux macros.
    Voici donc la première partie du code utilisé, celui-ci me permettant de définir le patient par la ComboBox 1 et de remplir automatiquement les Textbox 2 à 6 automatiquement avec les infirmations administratives du patient :

    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
    Option Explicit
     
    Dim Ws As Worksheet
     
     
    'Pour le formulaire
     
    Private Sub UserForm_Initialize()
     
    'Pour la date de la feuille de soin
     
        TextBox1 = Date
     
    'Code Combobox1 Patient
     
    Dim J As Long
     
        Dim I As Integer
     
        ComboBox1.ColumnCount = 1 'Pour la liste déroulante Nom & Prénom du Patient
     
        ComboBox1.List() = Array()
     
        Set Ws = Sheets("Patients") 'Correspond au nom de votre onglet dans le fichier Excel
     
        With Me.ComboBox1
     
                For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
     
                .AddItem Ws.Range("A" & J)
     
            Next J
     
        End With
     
        For I = 1 To 6
     
            Me.Controls("TextBox" & I).Visible = True
     
        Next I
     
    End Sub
     
    'Pour les Données Patients
     
    Private Sub ComboBox1_Change()
     
        Dim Ligne As Long
     
        Dim I As Integer
     
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
     
        Ligne = Me.ComboBox1.ListIndex + 2
     
        TextBox2 = Ws.Cells(Ligne, "B")
     
        For I = 2 To 6
     
            Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I)
     
        Next I
     
    End Sub
    Cette partie fonctionnant bien, je me suis attelé à rentrer du code pour la deuxième section concernant le nom et le numéro administratif de la remplaçante :

    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    Option Explicit
     
    Dim Ws As Worksheet
     
     
    Private Sub TextBox6_Change()
     
    End Sub
     
    'Pour le formulaire
     
    Private Sub UserForm_Initialize()
     
    'Pour la date de la feuille de soin
     
        TextBox1 = Date
     
    'Code Combobox1 Patient
     
    Dim J As Long
     
        Dim I As Integer
     
        ComboBox1.ColumnCount = 1 'Pour la liste déroulante Nom & Prénom du Patient
     
        ComboBox1.List() = Array()
     
        Set Ws = Sheets("Patients") 'Correspond au nom de votre onglet dans le fichier Excel
     
        With Me.ComboBox1
     
                For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
     
                .AddItem Ws.Range("A" & J)
     
            Next J
     
        End With
     
        For I = 1 To 6
     
            Me.Controls("TextBox" & I).Visible = True
     
        Next I
     
    'Code Combobox1 Remplaçante
     
    Dim L As Long
     
        Dim K As Integer
     
        ComboBox2.ColumnCount = 1 'Pour la liste déroulante Nom & Prénom de la remplaçante
     
        ComboBox2.List() = Array()
     
        Set Ws = Sheets("Remplaçante") 'Correspond au nom de votre onglet dans le fichier Excel
     
        With Me.ComboBox2
     
                For L = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
     
                .AddItem Ws.Range("A" & L)
     
            Next L
     
        End With
     
        For K = 7 To 7
     
            Me.Controls("TextBox" & I).Visible = True
     
        Next K
     
    End Sub
     
    'Pour les Données Patients
     
    Private Sub ComboBox1_Change()
     
        Dim Ligne As Long
     
        Dim I As Integer
     
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
     
        Ligne = Me.ComboBox1.ListIndex + 2
     
        TextBox2 = Ws.Cells(Ligne, "B")
     
        For I = 2 To 6
     
            Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I)
     
        Next I
     
     
    End Sub
     
    'Pour les Données Remplaçante
     
    Private Sub ComboBox2_Change()
     
        Dim Ligne As Long
     
        Dim K As Integer
     
        If Me.ComboBox2.ListIndex = -1 Then Exit Sub
     
        Ligne = Me.ComboBox2.ListIndex + 2
     
        TextBox7 = Ws.Cells(Ligne, "B")
     
        For K = 7 To 7
     
            Me.Controls("TextBox" & K) = Ws.Cells(Ligne, K)
     
        Next K
     
    End Sub
    Là les soucis commencent : En sélectionnant le patient dans la ComboBox 1, les données administratives sont décalées et je me retrouve avec un seul numéro et qui plus est pas dans la bonne case :/
    Quand je sélectionne la remplaçante dans la ComboBox 2, aucune donnée administrative s'affiche.

    J'ai donc du mal à bien dissocier ces deux ComboBox de leurs données respectives.

    J'espère que cela pourra aider, merci encore.

Discussions similaires

  1. Aide au remplissage de formulaire
    Par Alex-1501 dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 18/05/2016, 13h45
  2. Réponses: 2
    Dernier message: 11/12/2007, 23h18
  3. [Struts] pré-remplissage d'un formulaire
    Par touriste44 dans le forum Struts 1
    Réponses: 10
    Dernier message: 27/10/2005, 12h16
  4. Réponses: 3
    Dernier message: 24/10/2005, 11h32
  5. Réponses: 32
    Dernier message: 22/09/2005, 10h40

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