Décaler la ligne vers le bas et lire la valeur avec un bouton

Résolu/Fermé
New_VBA_User - 26 août 2019 à 10:48
 New_VBA_User - 26 août 2019 à 15:46
Bonjour,

Lorsque je tape manuellement un texte dans un texbox1 j’aimerai trouver la valeur tapée de textbox1 dans la feuille Excel avec un bouton « Find » et en appuyant sur un autre bouton « Next » j’aimerai lire la valeur de ligne de dessous et afficher la valeur dans le textbox1.

J’arrive à trouver la valeur qui est tapé dans le textbox 1 manuellement et sélectionné la ligne, mais je ne sais pas comment lire la ligne du bas en appuyant sur le bouton suivant et affiché la valeur.
Je pense qu'il faut décaler la ligne vers le bas, mais comment?

J’utilise le code suivant

Private Sub CommandButton_Find_Click()

Dim nom As Range

With ThisWorkbook.Sheets("Sheet1")
For Each nom In .Range("A2:A" & .[A6000].End(xlUp).Row) ' lis la val. présent dans le texte box et sélectionne la ligne
If nom = Me.TextBox1.Value Then
.Cells(nom.Row, "A").Select ' sélectionne la ligne dans la colonne A
End If

Next nom

End With

End Sub
__________________________________________________________________________________
Private Sub CommandButtonNext_Click()

?????? ‘Je ne sais pas comment faire.

End Sub

Merci de votre aide rapide.
A voir également:

1 réponse

f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
26 août 2019 à 15:19
Bonjour,

Ce bouton next ne doit servir que si vous saisissez un nom dans la textbox ou descendre de un a chaque click apres avoir trouve la cellule = textbox ??
0
New_VBA_User
26 août 2019 à 15:26
le bouton Next sert à descendre la ligne à chaque clic.
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
26 août 2019 à 15:42
Re,

Une facon de faire, avec quelque modif pour recherche plus rapide et tests divers

Dim ligne As Long       'variable "public" dans cette page de code

Private Sub CommandButton_Find_Click()
    Dim nom As Range

    With ThisWorkbook.Sheets("Sheet1")
        If Application.CountIf(.Columns(1), TextBox1) > 0 Then      'nom existe??
            Nb = Application.CountIf(.Columns(1), TextBox1)           ' nombre de fois ce nom
            If Nb = 1 Then      'une seule fois dans la colonne
                lig = 1
                ligne = .Columns(1).Find(TextBox1, .Cells(lig, 1), , xlWhole).Row       'recherche ligne du nom
            Else        'x fois dans la colonne
                MsgBox "Attention: ce nom " & TextBox1 & " est " & Nb & " fois dans la colonne!!!"
            End If
        Else
            MsgBox "Attention: ce nom " & TextBox1 & " n'existe pas!!!"
        End If
    End With
End Sub

Private Sub CommandButtonNext_Click()
    ligne = ligne + 1
    TextBox1 = Worksheets("Sheet1").Cells(ligne, 1)     'ligne suvante
End Sub
0
New_VBA_User
26 août 2019 à 15:46
Merci pour la réponse.
0