Décaler la ligne vers le bas et lire la valeur avec un bouton [Résolu]

Signaler
-
 New_VBA_User -
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.

5 réponses

Messages postés
14901
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 décembre 2019
1197
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 ??

le bouton Next sert à descendre la ligne à chaque clic.
f894009
Messages postés
14901
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
16 décembre 2019
1197
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

Merci pour la réponse.