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 :

vba excel, appeler les modules


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant E-Learning
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Points : 36
    Points
    36
    Par défaut vba excel, appeler les modules
    Bonjour

    Suite à un retour sur ce forum concernant mon code que je n'arrivais pas a structurer correctement, j'ai repris la structure en incluant des modules (c'est une première pour les sous-routines). Hélas, si je suis là, c'est que cela ne fonctionne pas et je ne comprends pas où est mon erreur. Ca doit être idiot comme erreur, mais j'essaye de comprendre l'intégration de ma routine à mon code et j'aurai besoin de vous pour m'expliquer.
    Merci beaucoup pour votre aide et votre temps.
    Nat
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 627
    Points : 991
    Points
    991
    Par défaut
    Hello,

    votre description du problème est trop vague. Vous avez des 10aines de sub et de function mais vous ne dites pas ce qui ne fonctionne pas, du coup c'est assez difficile de vous aider.
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant E-Learning
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Points : 36
    Points
    36
    Par défaut
    effectivement, excuser moi, c'est les appelles des macros qui ne fonctionnent pas. Lorsque vous cliquez sur une des lignes de la feuille accueil ou si vous utiliser le formulaire de recherche en cliquant sur le plongeur vert en haut de la colonne H et que vous y entrer un numéro de patient existant ou non, le formulaire de Saisie devrait s'ouvrir (rempli si le patient est présent (avec les infos de la feuille complet (Public Sub ChargerDonneesDepuisComplet) ou vide (juste avec le mois, l'année et le n° de patient rentrer) et de la on rempli le formulaire et les données doivent être enregistrer dans accueil et complet ou dans accueil et consultation selon les optionbutton choisi et de nouveau en appelant les modules adéquats.
    Vous verrai que dès l'ouverture, je bloque sur le premier module appelé.


    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
    Public Sub OuvrirFormulaire(patientNumber As String)
        Dim wsComplet As Worksheet
        Dim wsConsultation As Worksheet
        Dim wsAccueil As Worksheet
        Dim findRowComplet As Range
        Dim findRowConsultation As Range
        Dim findRowAccueil As Range
    
        ' Initialisation des feuilles
        Set wsComplet = ThisWorkbook.Sheets("complet")
        Set wsConsultation = ThisWorkbook.Sheets("Consultation")
        Set wsAccueil = ThisWorkbook.Sheets("accueil")
        
        ' Rechercher le patient dans "complet"
        Set findRowComplet = wsComplet.columns(6).Find(What:=patientNumber, LookIn:=xlValues, LookAt:=xlWhole)
        If Not findRowComplet Is Nothing Then
            ChargerDonneesDepuisComplet wsComplet, findRowComplet.Row, Me
    
    
    
        End If
    Merci beaucoup
    Nat

  4. #4
    Membre éprouvé Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 627
    Points : 991
    Points
    991
    Par défaut
    Re,

    sans aller beaucoup plus loin, ChargerDonneesDepuisComplet wsComplet, findRowComplet.Row, Me envoi 3 arguments et la procédure Sub ChargerDonneesDepuisComplet(ws As Worksheet, rowIndex As Long) n'en attend que 2 ! Le nombre doit être équivalent (voire inférieur quand il y a des données optionnelles)
    Pourquoi ajoutez vous "Me" à chaque appel de procédure ?
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant E-Learning
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Points : 36
    Points
    36
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    'charger les données de la feuille complet
    Public Sub ChargerDonneesDepuisComplet(wsComplet As Worksheet, patientRow As Long, ByRef frm As Object)
        With frm
            .txtmois.Value = wsComplet.Cells(patientRow, 1).Value
            .txtan.Value = wsComplet.Cells(patientRow, 2).Value
            .oburgent.Value = (wsComplet.Cells(patientRow, 3).Value = "Urgence")
            .obelectif.Value = (wsComplet.Cells(patientRow, 3).Value = "Electif")
            .obconsultohb.Value = (wsComplet.Cells(patientRow, 3).Value = "Consultation Hyperbare")
            .obconsultplonge.Value = (wsComplet.Cells(patientRow, 3).Value = "Consultation Plongée")
            .cmbstatus.Value = wsComplet.Cells(patientRow, 4).Value
            .obambu.Value = (wsComplet.Cells(patientRow, 5).Value = "AMBU")
            .obhosp.Value = (wsComplet.Cells(patientRow, 5).Value = "HOSP")
    Parce que j'ai 3 argument dans mes sous-routine?

  6. #6
    Membre éprouvé Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 627
    Points : 991
    Points
    991
    Par défaut
    Ben si 3 arguments dans la "sous-routine" l'appel doit en contenir 3 aussi.

    Ca fonctionne maintenant ?
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Consultant E-Learning
    Inscrit en
    Avril 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant E-Learning
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2013
    Messages : 62
    Points : 36
    Points
    36
    Par défaut
    non, là, je n'ai rien changer à ce que j'ai envoyé en pièce jointe, au cas où, j'ai essayé d'enlever le ,me, mais j'ai bien 3 argument. Maintenant, je peux peut-être écrire mes sous-routine autrement? je ne sais pas.

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 974
    Points : 29 003
    Points
    29 003
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je n'ai regardé que l'appel à la procédure nommée ChargerDonneesDepuisComplet
    Vous avez en réalité deux procédures portant le même nom. L'une avec deux arguments qui se trouve dans le formulaire Saisie et l'autre avec trois se trouve dans le module ModGestionPatients
    Comme la ligne qui invoque la procédure ChargerDonneesDepuisComplet se trouve dans le formulaire Saisie, il est normal que vous ayez ce message d'erreur

    Il y a d'autres erreurs comme par exemple une procédure nommée EnregistrerDonneesPatient qui est invoquée mais n'existe pas.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Membre éprouvé Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 627
    Points : 991
    Points
    991
    Par défaut HS
    Hello Philippe, de retour de vacances ?
    JièL
    Membre des AMIS
    Anti Macro Inutilement Superfétatoire

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 974
    Points : 29 003
    Points
    29 003
    Billets dans le blog
    53
    Par défaut
    Bonjour Jièl,
    Hello Philippe, de retour de vacances ?
    Absolument
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Membre habitué
    Avatar de frunch
    Homme Profil pro
    Développeur / comptable
    Inscrit en
    Janvier 2022
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur / comptable

    Informations forums :
    Inscription : Janvier 2022
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    Bonjour à tous,
    @nattalia,
    Je t'ai envoyé un message privé, mais çà fonctionne pas non plus sur ce forum je parie.
    j'ai compris que tu recherchais à afficher les données de ta ligne cliquée dans le formulaire.
    Je l'ai fait récemment, mais avec un code différent.
    Voilà le code de ma feuille cliquée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim ws1 As Worksheet, tb1 As ListObject
        Dim drn%, lig%
        Application.ScreenUpdating = False
        Set ws1 = Sheets("Test")
        Set tb1 = ws1.ListObjects("Tabl1")
        drn = tb1.ListRows.Count + 1 'fin tableau
        lig = Target.Row
        If Not Intersect(Target, ws1.Range("C2:D" & drn)) Is Nothing Then
            Saisie.Show
        End If
        Application.ScreenUpdating = True
    End Sub
    Et le code que j'ai rajouté dans l'initialize du formulaire Saisie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub UserForm_Initialize()
        Dim ws1 As Worksheet, tb1 As ListObject, lig%
        Application.ScreenUpdating = False
        Set ws1 = Sheets("Test")
        Set tb1 = ws1.ListObjects("Tabl1")
        lig = ActiveCell.Row
        Me.txtnumero.Value = ws1.Cells(lig, 6).Value
        'MsgBox lig & " " & Me.txtnumero.Value
        For i = 1 To tb1.ListRows.Count
            If tb1.DataBodyRange(i, 6).Value = CSng(Me.txtnumero.Value) Then
                Me.txtnom.Value = tb1.DataBodyRange(i, 7).Value
            End If
        Next i
    Voilà le lien du fichier.
    Aprés tu peux mettre ton champ txtnuméro en combobox et ajouter l'événement change de fàçon à remplir automatiquement tous les autres.
    Cdt

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 272
    Points : 355
    Points
    355
    Par défaut
    Citation Envoyé par frunch Voir le message
    Bonjour à tous,

    Voilà le lien du fichier.
    Cdt
    Bonjour,
    L'accès à ce fichier nécessite une autorisation? (avec fourniture de l'adresse mail perso!!!!!!)
    C'est bien un forum de partage, non?
    Bonne journée

  13. #13
    Membre habitué
    Avatar de frunch
    Homme Profil pro
    Développeur / comptable
    Inscrit en
    Janvier 2022
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur / comptable

    Informations forums :
    Inscription : Janvier 2022
    Messages : 156
    Points : 192
    Points
    192
    Par défaut
    Bonjour,
    C'est un lien google, le fichier passe pas.

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 272
    Points : 355
    Points
    355
    Par défaut
    Re-,
    En utilisant cjoint.com, ça aurait pu le faire également...

  15. #15
    Membre habitué
    Avatar de frunch
    Homme Profil pro
    Développeur / comptable
    Inscrit en
    Janvier 2022
    Messages
    156
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur / comptable

    Informations forums :
    Inscription : Janvier 2022
    Messages : 156
    Points : 192
    Points
    192

Discussions similaires

  1. [VBA Excel] Ordonner les tabulations dans un formulaire
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/06/2006, 14h41
  2. [VBA Excel] Forcer les majuscules
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 27/06/2006, 13h12
  3. [VBA][Excel]Récupérer les valeurs du graphe...
    Par Samourai dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2006, 11h51
  4. [VBA][Excel] appel de fonction
    Par DonKnacki dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 20/12/2005, 11h53
  5. VBA Excel : Appel d'un userform à l'aide d'une variable
    Par pierrot657 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 02/06/2005, 00h08

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