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 :

Agrandissement msg box


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut Agrandissement msg box
    Bonjour

    Je suis un débutant en VBA.
    J'ai réalisé une macro qui permet de rechercher un texte dans une colonne cela fonctionne.
    Mais étant donné que mon tableau a au moins 1000 lignes,
    lorsque quelqu'un tape les premières lettres d'un mot la message box
    ne peut pas afficher tout les résultats
    comment faire????pour voir tous les résultats

    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
    Sub RecherchePhrases()
    'Programme de recherche de phrases suivant critere de saisie
     
    Dim nom, c, msg
    Dim recherche As String
    Dim NombrePhrasesTrouvées As Integer
    NombrePhrasesTrouvées = 0
     
    'Affichage du inputbox pour saisie
    nom = Trim(Application.InputBox("Taper un nom", "Recherche"))
    'N'execute pas la rechereche si on clique sur Annuler ou si aucune saisie
    If nom = False Or nom = "" Then
      Exit Sub
    End If
    'Active la feuille nommé Tabelle1
     Sheets("Tabelle1").Activate
     
    'Effectue la recherche dans la plage cellule nommé tableau
    For Each c In range("tableau")
        If c.Value Like "*" & nom & "*" Then
         'Incremente le nombre de phrases trouvés
          NombrePhrasesTrouvées = NombrePhrasesTrouvées + 1
         'texte trouvé suivant la saisie
           recherche = c.Value
         'fait une liste des phrases correspondantes a la saisie
           msg = msg & recherche & vbTab & vbCrLf
         End If
    Next
         'Affiche tout le resultat
          MsgBox NombrePhrasesTrouvées & " phrase(s) trouvé(s)    " _
          & Chr(10) & Chr(10) & msg, vbInformation, "Resultat de " & "[" & nom & "]"
     
    End Sub
    Fichiers attachés Fichiers attachés

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    Je pense qu'il faut que tu passes par un UserForm, un TextBox pour la saisie, un CommandButton pour valider et une ListBox pour voir le résultat de la recherche.

  3. #3
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut
    merci
    mais j´ai essayé avec le bouton TXbuttonbar mais j´arrive pas à le faire fonctionner
    Vous ne saurai pas comment faire

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par patbou Voir le message
    bonjour,

    je pense qu il faut que tu passe par un userform , un textbox pour la saisie , un commandbutton pour valider et une listbox pour voir le résultat de la recherche
    Par quel bout as-tu donc commencé à appliquer cette sage recommandation ? (code ?)

  5. #5
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut
    c´est le bouton TXButtonBar

  6. #6
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Commencer par déclarer le types des variables. Par exemple :
    sont des Variants. Alors qu'il serait plus sage de faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim nom As String, c As Range, msg As String
    Il y a un exemple dans l'aide pour la fonction Find. Pour connaître toutes les valeurs trouvées, il y a FindNext. Il y a aussi un début de solution dans la FAQ. Tu n'as qu'à adapter le code... Word et Excel ont tout deux des objets Range (pas tout à fait les mêmes) qui ont une méthode Find et FindNext qui agissent de la même façon.

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Par défaut
    Bonjour

    je pense aussi qu'il faudrait utiliser un userform avec un listbox ou listview

    et pour le code utilise findnext, chose facile à faire et que tu trouveras dans l'aide d'excel par exemple voila l'exemple de l'aide appliqué à ton cas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Set recherche = range("tableau").Find(nom, lookin:=xlValues)
        If Not recherche Is Nothing Then
            firstAddress = recherche.Address
            Do
                listbox1.additem recherche.value
                Set recherche = range("tableau").FindNext(recherche)
            Loop While Not recherche Is Nothing And recherche.Address <> firstAddress
        End If
    sinon pour les userforms je t'invite à voir les tutos sur cette pages :

    http://silkyroad.developpez.com/

    plus précisement :
    http://silkyroad.developpez.com/VBA/UserForm/

    et

    http://silkyroad.developpez.com/VBA/ControlesUserForm/

    bonne chance

  8. #8
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut
    Oui merci
    mais ca resoud pas mon problème
    vous me dite utiliser un userform
    mais j´arrive pas à líncorporer dans la macro

  9. #9
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Août 2007
    Messages : 117
    Par défaut
    déja tu commence par ajouter un userform dans ton projet
    "insertion" puis "userform"

    dans ton explorateur de projet tu vera une icone userform et Userform1 double click dessus, ton userform s'affichera

    normalement une fenetre "boite à outil" s'affiche, (affichage puis boite aa outil)
    sur cette fenetre tu as plusieur controles que tu peux placer ds le userform en les survolant t'aura le nom de ses controles

    tu ajoutes donc un textbox, un bouton ,un label et un listbox qui par defaut s'appelent :
    textbox1, commandbutton1, listbox1 et label1

    double click sur le bouton normalement tu as une feuille de code avec l'evenement click de ton bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Sub CommandButton1_Click()
     
    End Sub
    insere ton code dedans
    et fait ces modifs :

    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
     
    'Programme de recherche de phrases suivant critere de saisie
     
    Dim nom as string
    Dim NombrePhrasesTrouvées As Integer
    NombrePhrasesTrouvées = 0
     
    'Affichage du inputbox pour saisie
    nom = Trim(Textbox1.value)
    'N'execute pas la rechereche si on clique sur si aucune saisie
    If textbox1 = "" Then
      Exit Sub
    End If
    'Active la feuille nommé Tabelle1
     Sheets("Tabelle1").Activate
     
    'Effectue la recherche dans la plage cellule nommé tableau
    Set recherche = range("tableau").Find(nom, lookin:=xlValues)
        If Not recherche Is Nothing Then
            firstAddress = recherche.Address
            Do
     NombrePhrasesTrouvées = NombrePhrasesTrouvées + 1
                listbox1.additem  recherche.value
                Set recherche = range("tableau").FindNext(recherche)
            Loop While Not recherche Is Nothing And recherche.Address <> firstAddress
        End If
     
          label1.caption= NombrePhrasesTrouvées & " phrase(s) trouvé(s)"
     
    End Sub

    essayes et dis nous si cela marche

    une precision ajoute un bouton recherche ds ta feuille avec la macro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    sub afficheRecherche
     
    load userform1
     
    end sub

  10. #10
    Membre averti
    Inscrit en
    Août 2008
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 16
    Par défaut remerciement
    Je vous remercie tous
    j´ai pris la dernière solution de youn avec une explication très compréhensives pour un débutant
    avec le dernier code c´est possible de l´améliorer si l´utilisateur a trouve sa phrase et qu´il clique dessus es possible d´afficher le nombre de phrase voir fichier exel
    merci encore

Discussions similaires

  1. Msg Box d'avertissement
    Par pooi1 dans le forum IHM
    Réponses: 1
    Dernier message: 08/07/2007, 15h56
  2. Apparition d'une msg box à choix multiple
    Par Hydex dans le forum IHM
    Réponses: 5
    Dernier message: 25/05/2007, 08h21
  3. Requete création de table sans msg box
    Par louroulou dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 27/06/2006, 16h04
  4. Msg Box requete action
    Par Sam 069 dans le forum Access
    Réponses: 3
    Dernier message: 28/04/2006, 09h25
  5. Msg box "Ne plus afficher ce message"
    Par b_steph_2 dans le forum Access
    Réponses: 5
    Dernier message: 01/02/2006, 11h10

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