[VBA] Parcourir une colonne avec boutons

Bonjour,

Je sollicite votre aide pour un bug que je n'arrive pas à corriger tout seul.

Dans le fichier joint il y a 2 onglets :

  • La base BDD avec une colonne contenant un N°ID (numérique ou pas / continue ou pas)
  • Une cellule nommée "ID_FICHE" contenant une liste déroulante avec 2 boutons < >

Je désirerai parcourir la liste de haut en bas (et de bas en haut) avec les 2 boutons.

Lorsque que l'on arrive en haut de la colonne (plage nommée Plg_ID_BDD) Le bouton UP doit disparaître et inversement avec le bouton Down quand on arrive a la dernière ligne.

J'ai passé le week-end à tester différentes solutions mais je n'arrive pas à corriger mon bug.

Merci d'avance pour l’âme charitable qui voudra bien prendre un peu de son temps pour m'expliquer ce qui cloche et comment optimiser ce script.

10outil-fiche-07.xlsm (27.58 Ko)

Bonjour,

De cette façon peut être ?

Dim Row_DerLig As Integer
Dim Val_IdFiche As Integer
Dim New_Row As Integer

Sub monte()

    New_Row = New_Row - 1

    If New_Row < 2 Then New_Row = 2

    If New_Row = 2 Then
        ActiveSheet.Shapes("BoutonUp").Visible = False
        ActiveSheet.Shapes("BoutonDown").Visible = True
    Else
        ActiveSheet.Shapes("BoutonDown").Visible = True
        ActiveSheet.Shapes("BoutonUp").Visible = True
    End If

    ActiveSheet.Range("ID_Fiche").Value = Worksheets("BDD").Range("A" & New_Row).Value
    Val_IdFiche = Worksheets("FORM_Consult").Range("ID_FICHE").Value

End Sub

Sub descend()

    Row_DerLig = Worksheets("BDD").Range("A65536").End(xlUp).Row

    New_Row = New_Row + 1

    If New_Row > Row_DerLig Then New_Row = Row_DerLig

    If New_Row = Row_DerLig Then

        ActiveSheet.Shapes("BoutonDown").Visible = False
        ActiveSheet.Shapes("BoutonUp").Visible = True

    Else

        ActiveSheet.Shapes("BoutonDown").Visible = True
        ActiveSheet.Shapes("BoutonUp").Visible = True

    End If

    ActiveSheet.Range("ID_Fiche").Value = Worksheets("BDD").Range("A" & New_Row).Value
    Val_IdFiche = Worksheets("FORM_Consult").Range("ID_FICHE").Value

End Sub

Bon sang mais c'est bien sûr !!!

C'est exactement ce que je voulais arriver à faire.

C'est la logique du

New_Row = New_Row - 1

que je n'ai pas réussi à trouver tout seul.

C'est tout bête, mais grâce à toi j'ai beaucoup appris sur la manière d'incrémenter une variable.

Un grand merci pour ton aide précieuse.

Bonjour,

Content de t'avoir aidé

Rechercher des sujets similaires à "vba parcourir colonne boutons"