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 :

Finalisation de ma textbox recherche


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
    Mécanicien avion
    Inscrit en
    Février 2018
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Mécanicien avion

    Informations forums :
    Inscription : Février 2018
    Messages : 193
    Par défaut Finalisation de ma textbox recherche
    Bonjour

    Je me retourne vers vous car que n’arrive pas à finaliser ma textbox recherche

    Quand je tape entrer, j’aimerais que si il y a écrit «*bonjours*» dans 2 cases, cela soit la première des 2 qui soit sélectionné et pas la dernière.

    De plus j’aimerais que quand il n’y a rien d’écrit dans ma textbox les cases repasse toutes verte

    Et pour finir que mon msgbox s’affiche que si il ne trouve rien dans ma colonne.

    Merci de votre aide

    Voilà mon code vba:

    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
    Option Compare Text
     
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
        If KeyCode = 13 Then
     
            Application.ScreenUpdating = False
     
            Range("B3:B40").Interior.ColorIndex = 2
     
     
                For ligne = 3 To 40
                If Cells(ligne, 2) Like "*" & TextBox1 & "*" Then
                    Cells(ligne, 2).Interior.ColorIndex = 43
                    ActiveSheet.Cells(ligne, 2).Select
                    ActiveWindow.ScrollRow = Selection.Row / 2
                End If
            Next
            MsgBox ("Aucun résultat ne correspond à votre recherche !"), vbOKOnly + vbCritical, "RECHERCHE INTROUVABLE"
        End If
    End Sub

  2. #2
    Membre éprouvé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2017
    Messages : 91
    Par défaut
    Ce code devrait correspondre à ton besoin

    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
     
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim bTrouve As Boolean
     
    If KeyCode = 13 Then
     
        Application.ScreenUpdating = False
        bTrouve = False
     
        Range("B3:B40").Interior.ColorIndex = 2
     
     
        For ligne = 40 To 3 Step -1
            If Cells(ligne, 2) Like "*" & TextBox1 & "*" Then
                Cells(ligne, 2).Interior.ColorIndex = 43
                ActiveSheet.Cells(ligne, 2).Select
                ActiveWindow.ScrollRow = Selection.Row / 2
                bTrouve = True
            End If
        Next
        If Not bTrouve Then
            MsgBox ("Aucun résultat ne correspond à votre recherche !"), vbOKOnly + vbCritical, "RECHERCHE INTROUVABLE"
        End If
    End If
     
    End Sub

  3. #3
    Membre confirmé
    Homme Profil pro
    Mécanicien avion
    Inscrit en
    Février 2018
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Mécanicien avion

    Informations forums :
    Inscription : Février 2018
    Messages : 193
    Par défaut
    Nickel, vous êtes super

    Dernière question, quand il y a rien dans la case il faut que je tape entrer pour que tout repasse vert....
    Est-il possible que ça soit automatique ?

    Du genre si rien dans la case = couleur verte

  4. #4
    Membre éprouvé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2017
    Messages : 91
    Par défaut
    Ajouter cela au début

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim bTrouve As Boolean
    
    if TextBox1 ="" then
    Range("B3:B40").Interior.ColorIndex = 43
    end if
    
     
    If KeyCode = 13 Then

  5. #5
    Membre confirmé
    Homme Profil pro
    Mécanicien avion
    Inscrit en
    Février 2018
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Mécanicien avion

    Informations forums :
    Inscription : Février 2018
    Messages : 193
    Par défaut
    Une fois de plus au top la réponse, j’avais juste pas mit au bon endroit....

    Je vais être penible mais j’aimerais que cela fonctionne nickel

    En plus du vert quand il y a rien dans la case, est il possible de revenir à la ligne 3

    Et quand je tape une deuxième fois entrer, est il possible que ce soit la 2eme case avec écrit «*bonjour*» qui ce sélectionne et ainsi de suite ?

    Encore merci

  6. #6
    Membre éprouvé
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2017
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2017
    Messages : 91
    Par défaut
    Alors essaie ce code

    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
     
    Dim strValue As String
    Dim nbEnter As Long
     
    Private Sub TextBox1_Change()
     
    If TextBox1 = "" Then
        Range("B3:B40").Interior.ColorIndex = 43
        Range("B3").Select
        nbEnter = 0
        strValue = ""
    End If
     
    End Sub
     
    Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    Dim bTrouve As Boolean
    Dim nbValeurTrouvee() As Long
     
    If KeyCode = 13 Then
     
        If strValue = TextBox1.Value Then
            nbEnter = nbEnter + 1
        Else
            nbEnter = 1
            strValue = TextBox1.Value
        End If
     
        Application.ScreenUpdating = False
        bTrouve = False
     
        Range("B3:B40").Interior.ColorIndex = 2
     
        ReDim nbValeurTrouvee(0)
        For ligne = 3 To 40
            If Cells(ligne, 2) Like "*" & TextBox1 & "*" Then
                Cells(ligne, 2).Interior.ColorIndex = 43
                ReDim Preserve nbValeurTrouvee(UBound(nbValeurTrouvee) + 1)
                nbValeurTrouvee(UBound(nbValeurTrouvee)) = ligne
                ActiveWindow.ScrollRow = Selection.Row / 2
                bTrouve = True
            End If
        Next
     
        If Not bTrouve Then
            MsgBox ("Aucun résultat ne correspond à votre recherche !"), vbOKOnly + vbCritical, "RECHERCHE INTROUVABLE"
            Range("B3").Select
        Else
            ActiveSheet.Cells(nbValeurTrouvee(Application.Min(nbEnter, UBound(nbValeurTrouvee))), 2).Select
        End If
    End If
     
    End Sub

Discussions similaires

  1. [Débutant] Textbox + recherche
    Par Tiguy1995 dans le forum C#
    Réponses: 11
    Dernier message: 16/11/2017, 10h52
  2. TextBox recherche DYNAMIQUE dans un DataGridView
    Par Saten dans le forum Windows Forms
    Réponses: 25
    Dernier message: 12/08/2016, 13h58
  3. [Toutes versions] TextBox Recherche Dynamique
    Par fabrice57100 dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/09/2012, 20h26
  4. textbox recherche et datagrid
    Par luxman dans le forum VB.NET
    Réponses: 51
    Dernier message: 16/03/2011, 20h34
  5. Textbox Rechercher Une Valeur
    Par Sting dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/08/2007, 15h37

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