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 :

Projets de fenêtre automatique


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 13
    Points : 62
    Points
    62
    Par défaut Projets de fenêtre automatique
    Bonjour,

    C'est la premières fois que je me lance dans un forum.
    J'ai pioché toutes ma connaissance en VBA pour excel dans ce forum, alors merci a tous ...

    J'ai une question un peut soft concernant la recherche dans une listbox, mais que je n'arrive pas as résoudre:

    En fait j'ai un ta de question lol ...

    je commence par le début : J'ai une textbox de recherche et je veut affiché le résultat dans une listbox (Facile)

    Sa ce complique => ... mais, je veut que la textbox de recherche prenne en compte plusieurs colonnes (case a cocher dans userform) et prenne en compte que les mots entiers ( car très très longues liste en vue )

    Un extrait du code de la textbox de recherche :

    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
    dercol = ActiveSheet.UsedRange.Columns.Count
    If dercol > 17 Then dercol = 17
    derligne = Range("A65536").End(xlUp).Row
    '-------------------------------------------------------------------------
    '--------------test les checkbox ----------------------------------------------
     
    If Rech <> "" Then
     
    For i = 1 To dercol
     
    If Me.Controls("Cr" & i).Value = True Then
     
            If dercol > 9 Then dercol = 9
     
            ListBox1.ColumnCount = 9
            ListBox1.ColumnWidths = "70;20;100;100;100;100;100;100;100"
     
    a = 0
            For ligne = 2 To derligne
     
                         If Cells(ligne, i) Like "*" & Rech & "*" Then          
     
                   ListBox1.AddItem Cells(ligne, 1)
                  ' ---alimenter le tableau Tbllist -----------------------
                  Tbllist(ii) = ligne
                   ii = ii + 1              
     
                            For z = 2 To dercol
     
                     Select Case Cells(2, z).Value
     
                    Case Is = "long"
                                ListBox1.List(a, z) = Cells(ligne, z)
                    Case Is = "auto"
                                ListBox1.List(a, z) = Cells(ligne, z)
                    Case Is = "liste"
                                ListBox1.List(a, z) = Cells(ligne, z)
                    Case Is = ""
                                ListBox1.List(a, z) = Cells(ligne, z)
                    Case Is = "noir"
                                ListBox1.List(a, z) = Cells(ligne, z)
                    Case Is = "tél"
                                ListBox1.List(a, z) = Format(Cells(ligne, z), "00 00 00 00 00")
                    Case Is = "postale"
                               ListBox1.List(a, z) = Format(Cells(ligne, z), "00 000")
                    Case IsDate(Cells(2, z))
                               ListBox1.List(a, z) = Cells(ligne, z)
     
                    End Select
     
                    If Cells(2, z).HasFormula = True Then ListBox1.List(a, z) = Cells(ligne, z)
     
                    Next z
     
                    a = a + 1                
     
                  End If
            Next ligne
     
    End If
    Next i
    Merci pour vos réponse
      0  1

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    difficile de t'aider, quel est le problème exact que tu rencontres sur tes souhaits ?
    est-ce que ce code fonctionne sans erreur pour le moment (même s'il ne renvoie pas de résultat) ?

    du coup, j'ai pour le moment réagencé un peu ton code ... il est impossible de recréer ton fichier pour tester, on a même pas de descriptif ni le code complet que tu nous montres (exemple : c'est quoi ton Tbllist ??)

    par ailleurs, tu sous-entend un resultat composé de nombreuses occurrences, ce qui signifie que la source contient pas mal de cellules
    de plus, tu veux des critères de recherches tels que "mots entiers"
    ==> regarde pour utiliser la méthode Find qui sera beaucoup plus rapide (mais nécessitera de gérer les cas où il n'y a pas de résultat)

    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
    dercol = Application.WorksheetFunction.Min(17, ActiveSheet.UsedRange.Columns.Count)
    derligne = Range("A" & Rows.Count).End(xlUp).Row
     
    '-------------------------------------------------------------------------
    '--------------test les checkbox ----------------------------------------------
     
    If Rech <> "" Then
        For i = 1 To dercol
            If Me.Controls("Cr" & i).Value = True Then
                dercol = Application.WorksheetFunction.Min(9, ActiveSheet.UsedRange.Columns.Count)
                ListBox1.ColumnCount = 9
                ListBox1.ColumnWidths = "70;20;100;100;100;100;100;100;100"
                a = 0
                For ligne = 2 To derligne
                    If Cells(ligne, i) Like "*" & Rech & "*" Then
                        ListBox1.AddItem Cells(ligne, 1)
                        ' ---alimenter le tableau Tbllist -----------------------
                        Tbllist(ii) = ligne
                        ii = ii + 1
                        For Z = 2 To dercol
                            Select Case Cells(2, Z).Value
                                Case "long", "auto", "liste", "", "noir", IsDate(Cells(2, Z)), HasFormula
                                    ListBox1.List(a, Z) = Cells(ligne, Z)
     
                                Case "tél"
                                    ListBox1.List(a, Z) = Format(Cells(ligne, Z), "00 00 00 00 00")
     
                                Case "postale"
                                    ListBox1.List(a, Z) = Format(Cells(ligne, Z), "00 000")
     
                            End Select
                        Next Z
                        a = a + 1
                    End If
                Next ligne
            End If
        Next i
    End If
    Ps important : évite de travailler sur des Activesheet ou sur des Range qui ne sontpas rattachée à leur feuille ... ça peut jouer des vilains tours (VBA utilisera dans ce cas la feuille active)
    Ps facultatif (quoique) : il est important de bien indenter (mettre en relief) ton code comme je l'ai fais ... ça facilite la lecture de ta structure de code
      0  0

  3. #3
    Membre du Club

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 13
    Points : 62
    Points
    62
    Par défaut Fenêtre automatique
    fenetre automatique 2015.xlsmPièce jointe 178440

    Bonjour, et merci pour vôtre réponse Joe.levrai

    Si-joint le classeur dans sont entier.

    Le but de ce classeurs est de l'enregistré en tant que macro complémentaire et de l'utilisé avec plusieurs base ou liste de données différentes
    C'est pour ça que dans le code, il n'y as pas de feuille nommées
    Je prend note de vos conseilles

    Le code tourne assez bien tel qu'il est , a part un petit bug quand la dernière colonne et grisé
    On est un peut limité en nombre ( je ne peux pas créer plus que 17 textbox dans l'USF et la listbox est limité a 9 colonnes ainsi que le nombres de lignes ! )

    Si vous avez une solution je suis preneur.
    ça n'arrive pas tout les jours d'avoir une feuille de calcule avec plus de 15 000 lignes
    Mais pour mon cas oui ! et sa mouline quand on veut faire une recherche

    c'est vrai qu'EXCEL n'est pas une base de données.

    Voila. je met ce petit classeur qui peut être bien utile avec son petit mode d’emploi
    Et soyer indulgent (je ne suis pas informaticien, juste un bidouilleur d'EXCEL)
      0  1

  4. #4
    Membre du Club

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 13
    Points : 62
    Points
    62
    Par défaut Mes questions actuelle pour finir mon projets :
    => Peut-on faire des recherches par mot entiers ?

    J'avais pensé mettre un minuteur sur la textbox de recherche
    de façon que la boucle ne ce fasse pas a chaque frappe de lettre
    mais à un tout petit temps qui enclenche la recherche du mot.... (A médité !)



    => La recherche d'une lettre et d'un nombre ne marche pas ?

    => La recherche d'un mot clés d'un champ suivi d'un autres mot clés d'un autre champ ne marche pas !


    => En fait 90% de mes questions sont tournée sur la recherche et c'est un peut le but de ce classeur

    Très utile pour recherché un rouleau,une courroie,un tapie,un roulement,un nom,une adresse,les tirages du loto !! ext... plusieurs critères de recherche,ce classeur ce veut polyvalent

    Merci pour le temps que vous m'accordé
    Excel une passion !
      0  1

Discussions similaires

  1. [Débutant] Rafraichir une fenêtre automatiquement sans qu'elle ait besoin du focus
    Par archipel dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/10/2012, 11h50
  2. Win CE redimentionner les fenêtres automatiquement
    Par Husqvarna dans le forum Windows Mobile
    Réponses: 2
    Dernier message: 28/08/2008, 08h48
  3. comment ajouter à mon projet des fenêtres pop up?
    Par DJOUA François dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 29/08/2007, 13h15
  4. Fermeture de fenêtre automatique
    Par xave dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/01/2007, 13h14
  5. Projet de traitement automatique d'image
    Par sonsons dans le forum Images
    Réponses: 8
    Dernier message: 25/01/2007, 12h37

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