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 :

Input Box - affichage lignes + compte


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut Input Box - affichage lignes + compte
    Bonjour,

    Dans mon tableau, colonne A : liste de noms.

    Je souhaiterais, via une Input Box, afficher les lignes correspondantes au choix effectué et également obtenir le nombre de lignes (à mon avis avec une MsgBox).


    Ex. Si 5 lignes avec le nom CAMO --> Uniquement les lignes CAMO doivent êtres affichées et message "5 interventions"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Bouton5_Cliquer()
             Static Ex As Long
        Dim Var As String
        Dim c As Range
        Var = InputBox("Entrer la référence")
        Set c = Range("A:A").Find(what:=Var)
        If Not c Is Nothing Then
                End If
    End Sub

    Est-il préférable d'avoir un InputBox ou un Combobox pour avoir la liste des nom dans une liste déroulante ?

    Des idées, merci.

    Bonne journée

  2. #2
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 484
    Par défaut
    Bonjour,
    Pour faire cela vous devez utiliser un boucle, et non pas la méthode Find simplement. Et charger un tableau par exemple. (Attention dans l'exemple la première adresse n'est pas vérifiée pour la sortie de boucle.)
    Voir la documentation Microsoft : Range.Find method (Excel) | Microsoft Learn

  3. #3
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    975
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 975
    Par défaut
    Bonjour, voici une solution:

    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
    Sub Bouton5_Cliquer()
        Dim Var As String
        Dim c As Range
        Dim LastRow As Long
        Dim Count As Long
     
        Var = InputBox("Entrer la référence")
     
        LastRow = Cells(Rows.Count, "A").End(xlUp).Row
     
        ' Appliquer le filtre sur la colonne A
        Rows(1).AutoFilter Field:=1, Criteria1:=Var
     
        ' Compter le nombre de lignes visibles (à l'exclusion de l'en-tête)
        Count = Application.WorksheetFunction.Subtotal(3, Range("A1:A" & LastRow)) - 1
     
        MsgBox Count & " interventions"
     
        ' Supprimer le filtre
        ActiveSheet.AutoFilterMode = False
    End Sub
    Un combobox serait mieux dans le sens où cela évite des erreurs da saisie mais ça demande un peu plus de travail.
    Il faut créer la macro pour alimenter le combobox et aussi la macro pour traiter la valeur fournie par le combobox.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut
    Merci.

    j'ai modifié mon code mais le compte n'est pas juste.

    Si j'ai 2 faois le même nom, les 2 lignes s’affichent correctement mais dans le compte il est indiqué 1

    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
    Sub Bouton2_Cliquer()
        Dim Var As String
        Dim c As Range
        Dim LastRow As Long
        Dim Count As Long
     
        Var = InputBox("Entrer la section")
     
        LastRow = Cells(Rows.Count, "B").End(xlUp).Row
     
     
        Rows(2).AutoFilter Field:=1, Criteria1:=Var
     
        ' Compter le nombre de lignes visibles (à l'exclusion de l'en-tête)
        Count = Application.WorksheetFunction.Subtotal(3, Range("B1:B" & LastRow)) - 1
     
        MsgBox Count & " interventions"
     
        ' Supprimer le filtre
        ActiveSheet.AutoFilterMode = False
    End Sub

    De plus, comment faire pour avoir les noms dans une liste déroulante ? Soit dans un Combobox ou InputBox ?

    Merci

  5. #5
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    975
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 975
    Par défaut
    Je ne vois pas où est le problème, chez moi ça fonctionne parfaitement. Si tu fournis un classeur avec des données non confidentielles je pourrai vérifier.

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut
    Je joins le classeur en annexe.

    J'ai essayé de modifier le codes car j'ai également des en-têtes..... donc, plus rien ne va.

    Possible d’avoir le contenu de la colonne "B" dans une liste déroulante ? (sans doublons) - Soit InputBox ou Combobox ?
    A VOIR.xlsm
    Merci

  7. #7
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    975
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 975
    Par défaut
    Voici avec les 2 méthodes, Combobox et Inputbox.

    A VOIR.xlsm

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut
    Je ne vois rien dans le ComboBox et L'input Box n'affiche pas le résultat et MSG "- 1 intervention"

  9. #9
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    975
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 975
    Par défaut
    Je pense que j'ai envoyé le mauvais classeur, voici le bon.

    A VOIR.xlsm

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut
    Super !

    Un tout grand merci.

    Bonne soirée.

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut
    Lorsque je mets le code sur un Combobox dans le UserForm, je ne vois pas la liste apparaître dans le menu déroulant.

    Cela est -il à cause du Combobox Activex qui se trouve sur la feuille ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     With ws.OLEObjects("ComboBox1").Object

    Est-il possible d'avoir la liste en ordre alphabétique dans le Combobox ?


    Merci.

    Belle journée.

  12. #12
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 484
    Par défaut
    Bonjour,
    Quelle est votre version d'Excel ? (Vous avez tout à gagner de l'indiquer dans votre signature par exemple).

    Cela nous permettra de nous adapter.

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut
    Bonjour,

    Excel 2016

  14. #14
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    975
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 975
    Par défaut
    [QUOTE=Olivierporcinet;12013030]Lorsque je mets le code sur un Combobox dans le UserForm, je ne vois pas la liste apparaître dans le menu déroulant.

    Cela est -il à cause du Combobox Activex qui se trouve sur la feuille ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     With ws.OLEObjects("ComboBox1").Object

    Il y a une raison particulière pour créer un userform avec juste un combobox alors que le combobox sur la feuille fait le job ?
    Et pourquoi mettre un inputbox pour faire la même chose que le combobox, avec en plus, le risque d'une erreur de saisie ?

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut
    J'ai en fait, un UserForm avec quelques boutons...... que je fais apparaître via un bouton "Affichage" .

    J'aimerais, dans celui-ci intégrer un Combobox avec liste déroulante alphabétique.

    (Au départ, je pensais via un InputBox mais c'est vrai, que pour la saisie, c'est plus facile via un Combobox).

    Merci.

  16. #16
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    975
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 975
    Par défaut
    Voici un exemple avec userform et listbox pour afficher les résultats.

    A VOIR (2).xlsm

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2010
    Messages : 362
    Par défaut
    Bonjour,

    Un super grand merci.

    C'est nickel.

    Bon week-end.

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

Discussions similaires

  1. supprimer des ligne en fonction de la valeur entrée en input box
    Par nawak83 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 31/12/2022, 07h09
  2. Input box pour affichage valeur
    Par jd717 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/10/2015, 13h28
  3. affichage ligne malgré 0 enregistrement
    Par jdhogue dans le forum Access
    Réponses: 20
    Dernier message: 02/11/2005, 17h03
  4. diferrence en cancel et "" dans input box
    Par shirya dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 29/09/2005, 19h30
  5. Contenu d'un champ tronqué dans mon input box
    Par Marmot dans le forum ASP
    Réponses: 2
    Dernier message: 27/10/2004, 13h30

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