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 :

Mise au point UserForm [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Par défaut Mise au point UserForm
    Bonjour à tous,
    J'ai un fichier de 615 lignes qui constitue ma source appelée "Adhérents" et j'ai construit un UserForm de recherche avec l'aide d'un tuto Excel dont je vous joins le code:
    J'ai 2 soucis :
    1) La recherche ne s'effectue pas sur l'ensemble de ma source: si le nom Prénom est inconnu cela me sort une erreur, mais dans mon cas , il n'y a pas d'erreur les champs ne sont simplement pas remplis. Au delà de la ligne 386 cela ne fonctionne plus
    2) Je voudrais qu'à l'ouverture de mon formulaire le curseur se positionne immédiatement et automatiquement dans la TextBoxRecherche.

    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
    Private Sub TextBoxRecherche_AfterUpdate()
        On Error GoTo 1
        If WorksheetFunction.CountIf(Sheets("Adhérents").Range("A:A"), Me.TextBoxRecherche.Value) = 0 Then
            MsgBox "Adhérent Inconnu, Veuillez saisir le Nom Prénom", vbInformation + vbOKOnly, "Adhérent non trouvé"
        End If
        With Me
            .TextBoxNomPrénom = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 1, 0)
            .TextBoxNumLic = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 4, 0)
            .TextBoxTypeLic = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 5, 0)
            .TextBoxTel = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 2, 0)
            .TextBoxMail = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 3, 0)
            .TextBoxFédé = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 11, 0)
            .TextBoxSaison = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 12, 0)
            .TextBoxFct = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 13, 0)
            .TextBoxGrp = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 14, 0)
            .TextBoxAdresse = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 8, 0)
            .TextBoxCP = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 9, 0)
            .TextBoxVille = Application.WorksheetFunction.VLookup(CStr(Me.TextBoxRecherche), Sheets("Adhérents").Range("Source"), 10, 0)
        End With
    1
    End Sub
    et

    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
    Private Sub Btneffacer_Click()
        TextBoxNomPrénom = ""
        TextBoxNumLic = ""
        TextBoxTel = ""
        TextBoxMail = ""
        TextBoxFédé = ""
        TextBoxTypeLic = ""
        TextBoxSaison = ""
        TextBoxFct = ""
        TextBoxGrp = ""
        TextBoxAdresse = ""
        TextBoxCP = ""
        TextBoxVille = ""
        TextBoxRecherche = ""
    End Sub

  2. #2
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Par défaut
    Bonjour à tous,
    Je viens de solutionner mon soucis numéro 1 : La source était mal déclarée: lorsque je sélectionne la case qui définit la cellule active, il existe aussi l'étendue de la source que je me suis empressé de modifier et:
    CA MARCHE PARFAITEMENT.
    Mais il me reste le soucis numéro 2: le positionnement du curseur à l'ouverture du formulaire.

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 385
    Par défaut
    Bonjour,

    C'est la propriété TabIndex qui indique dans quel ordre vont s'activer les éléments.
    Si tu veux que le curseur soit positionné sur TextBoxRecherche, alors affecte la valeur 0 à sa propriété TabIndex.
    Tu peux le faire soit en code, soit en mode création du Userform, dans la fenêtre Propriété.

    Nom : Capture.JPG
Affichages : 70
Taille : 15,9 Ko

    Si tu fais une tabulation, le curseur ira sur le contrôle ayant la TabIndex à 1, puis 2, puis 3, etc.
    Tu peux ainsi paramétrer les propriétés TabIndex de chaque contrôle pour pouvoir tabuler comme tu le souhaites.

  4. #4
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations forums :
    Inscription : Octobre 2007
    Messages : 223
    Par défaut
    Bonjour
    Si vous cherchez les renseignements d’une personne ( par un matricule ) pour les afficher dans un formulaire ( Cp, Ville … )
    Voici une piste à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub TextBoxRecherche_AfterUpdate()
    On Error GoTo ErrorHandler
    TextBoxVille = WorksheetFunction.VLookup(TextBoxRecherche, Sheets("Adhérents").Range("A:E"), 3, 0)
    TextBoxCP = WorksheetFunction.VLookup(TextBoxRecherche, Sheets("Adhérents").Range("A:E"), 4, 0)
    Exit Sub
    ErrorHandler:
        Me.TextBoxRecherche = ""
        Me.TextBoxCP = ""
    End Sub
    NB : Range("A:E"), 3, 0) : A:E la plage de recherche, 3 est le numéro de la colonne dans la plage

  5. #5
    Membre confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2017
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Mars 2017
    Messages : 69
    Par défaut
    Bonjour à tous,
    merci pour vos conseils je suis très content, tout fonctionne parfaitement. (et rapidement)
    Merci à vous 2 !

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

Discussions similaires

  1. Mise au point => static, inline et consorts
    Par progfou dans le forum C
    Réponses: 14
    Dernier message: 16/03/2006, 17h46
  2. Mise au point d'un bon algo
    Par cryptorchild dans le forum Langage
    Réponses: 3
    Dernier message: 08/10/2005, 18h04
  3. Petite mise au point avec gluUnProject.
    Par fatpat94 dans le forum OpenGL
    Réponses: 1
    Dernier message: 27/07/2005, 16h40
  4. [Mise au point] dhcp
    Par Ernest dans le forum Développement
    Réponses: 5
    Dernier message: 07/10/2004, 18h56
  5. Questions de mise aux points
    Par nicoo dans le forum DirectX
    Réponses: 5
    Dernier message: 11/05/2004, 15h01

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