2 boutons équivalent au SPIN

  • Initiateur de la discussion Initiateur de la discussion Asmoden
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Asmoden

Guest
Bonsoir le forum,

Voilà j'ai un petit projet qui demande d'intégrer sur un UF deux boutons, un qui incrémente les lignes d'un tableau pour les afficher sur l'UF et l'autre qui décrémente les lignes.

Pour faire simple, j'ai un tableau de résultat, donc quand je clique sur le bouton de gauche, cela remonte à la ligne du dessus en la sélectionnant pour afficher les données (çà c'est pas le souci je sais faire)
et l'autre ben il descend d'une ligne.

Mon problème réside dans la limitation des champs, on ne peut pas remonté plus haut que la ligne 11 donc quand on arrive à la ligne 11 si on clique encore sur le bouton de gauche, il faut aller sélectionner la dernière ligne du tableau remplie.

De même avec le bouton droit qui permet de descendre, une fois tout en bas du tableau, il faut sélectionner la ligne 11.

Bref créer une sorte de boucle de sélection.

Pourriez-vous m'aider SVP?

Mon projet est pour début de semaine, et il s'agit d'un élément que je n'arrive pas à mettre en place.

Merci!!!!
 
Re : 2 boutons équivalent au SPIN

Bonsoir,
Bonsoir said 🙂
Et si tu faisais passer le code de tes boutons qui sélectionnent tes lignes peut-être que cela pourrait aider à résoudre le pb plus rapidement, j'ai cru comprendre que c'était urgent.
A+
kjin
 
Re : 2 boutons équivalent au SPIN

oki oki

alors le code des boutons je mets que celui d'un des deux car c'est de l'identique quasiment il me semble. Merci!

Code:
Rem Attribute VBA_ModuleType=VBAFormModule
Option VBASupport 1
Option Explicit 'oblige à déclarer toutes les variables


Private Sub CommandButton3_Click()

'Initialisation des variables
Dim x As Long 'déclare la variable x
Dim i_row As Long
Dim i As Integer

i_row = Selection.Cells.Row
i = Range("C65536").End(xlUp).Row

   
'Tant que la ligne sélectionnée est supérieure à 11
'on remonte de ligne en ligne Sinon on se positionne
'sur la dernière ligne

If i_row > 11 Then

For x = 1 To 3 'boucle sur 3 éléments
   
   With Controls("TextBox" & x)
   
   .Text = Sheets("Résultat Recherche").Cells(i_row - 1, x)
   
   End With
    
    Next x
    

Else
     
    i_row = Range("C65536").End(xlUp).Row
     
    Cells(i_row, 3).EntireRow.Select
       
   For x = 1 To 3 'boucle sur 3 éléments
   
   With Controls("TextBox" & x)
   
   .Text = Sheets("Résultat Recherche").Cells(i_row - 1, x)
   
    End With
    
    Next x
    
End If

Selection.Offset(-1, 0).Select

End Sub
 
Dernière modification par un modérateur:
Re : 2 boutons équivalent au SPIN

Re,
Juste qq questions :
- à l'ouverture du formulaire les textbox doivent-elles être vides ou doivent t-elles afficher les valeurs de la ligne actuellement sélectionnée
- comment s'effectue la première sélection de lignes
A+
kjin
 
Re : 2 boutons équivalent au SPIN

Alors, Il faut qu'à l'ouverture, les textbox affiche les valeurs de la ligne actuellement sélectionnée

La sélection n'est pas encore en place 🙁 il faut que la première sélection se fasse sur la ligne 11
 
Re : 2 boutons équivalent au SPIN

Re,
Alors peut-être comme ceci
Code:
Option Explicit
Dim Lign As Long, Derlign As Long, x As Long

Private Sub CommandButton1_Click() 'bouton -
Lign = Lign - 1
If Lign < 11 Then Lign = Derlign
    For x = 1 To 3
        With Controls("TextBox" & x)
        .Text = Sheets("Résultat Recherche").Cells(Lign, x)
        End With
    Next x
    
End Sub

Private Sub CommandButton2_Click() 'bouton +
Lign = Lign + 1
If Lign > Derlign Then Lign = 11
    For x = 1 To 3
        With Controls("TextBox" & x)
        .Text = Sheets("Résultat Recherche").Cells(Lign, x)
        End With
    Next x
    
End Sub

Private Sub UserForm_Initialize()
Derlign = Range("C65536").End(xlUp).Row
    For x = 1 To 3
        With Controls("TextBox" & x)
        .Text = Sheets("Résultat Recherche").Cells(11, x)
        End With
    Next x

End Sub
A+
kjin
 
Re : 2 boutons équivalent au SPIN

Bonjour Kjin, Le forum,

Le code marche parfaitement merci!

Par contre existerait-il un moyen d'accélerer la vitesse d'exécution?

Car le click là doit être assez lent pour naviguer sur les lignes, peut-on accélerer ceci?

Merci!!!
 
Dernière modification par un modérateur:
Re : 2 boutons équivalent au SPIN

Re le Forum,

Je voualsi de plus permettre à l'utilisateur de diminuer l'UF afin qu'il puisse si il le désire le laisser en arrière plan pour travailler sur un autre fichier excel et non pas être obliger de le fermer pour travailler sur autre chose

Est-ce possible?

Merci encore
 
Re : 2 boutons équivalent au SPIN

Petit souci concernant le code, lorsque je clique sur le bouton 2 pour descendre d'une ligne il part du début du tableau et non de la ligne 11 visiblement il initialise pas correctement pour cette partie de code une idée peut-être?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
892
O
Réponses
7
Affichages
3 K
OfficeNoob
O
S
Réponses
4
Affichages
719
sebastaupole
S
R
  • Question Question
Réponses
6
Affichages
2 K
B
Réponses
3
Affichages
2 K
B
S
Réponses
4
Affichages
2 K
stage_ferrit
S
Retour