[VBA] Parcourir une colonne avec boutons < > Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
R
RSone
Nouveau venu
Nouveau venu
Messages : 8
Appréciation reçue : 1
Inscrit le : 22 septembre 2018
Version d'Excel : 2016

Message par RSone » 25 novembre 2019, 14:42

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.
Outil_fiche_07.xlsm
(27.58 Kio) Téléchargé 2 fois
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 25 novembre 2019, 15:36

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
1 membre du forum aime ce message.
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
R
RSone
Nouveau venu
Nouveau venu
Messages : 8
Appréciation reçue : 1
Inscrit le : 22 septembre 2018
Version d'Excel : 2016

Message par RSone » 25 novembre 2019, 15:59

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.
T
Theze
Passionné d'Excel
Passionné d'Excel
Messages : 4'019
Appréciations reçues : 306
Inscrit le : 26 janvier 2011
Version d'Excel : 2007/2019

Message par Theze » 26 novembre 2019, 14:46

Bonjour,

Content de t'avoir aidé :wink:
Il vaut mieux un qui sait que cent qui cherchent :wink:

Ce forum étant un lieu de partage, je n'accepte pas les messages privés !
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message