XL 2016 SpinButton et Plage Nommée

  • Initiateur de la discussion Initiateur de la discussion AlphaOne
  • 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 !

AlphaOne

XLDnaute Junior
Bjr le forum,
Étant novice en VBA, je cherche a créer un code qui me permettrai dans une cellule B3 de faire défiler une plage nommé (disons "Liste") a l'aide d'un SpinButton ?
Possible ?
Bye
 
Bonjour AlphaOne, danielco,

Le code du SpinButton :
VB:
Private Sub SpinButton1_Change()
Dim s As Shape
[B3].Select
For Each s In Me.Shapes
    If s.TopLeftCell.Address = ActiveCell.Address Then s.Delete
Next
If SpinButton1 = 0 Then Exit Sub
[Liste].Cells(SpinButton1).CopyPicture
Paste
ActiveCell.Activate
End Sub
A+
 

Pièces jointes

Pour faire fonctionner la toupie dans l'autre sens utiliser :
VB:
Private Sub SpinButton1_Change()
Dim s As Shape
[B3].Select
For Each s In Me.Shapes
    If s.TopLeftCell.Address = ActiveCell.Address Then s.Delete
Next
SpinButton1.Max = [Liste].Count
If SpinButton1 = SpinButton1.Max Then Exit Sub
[Liste].Cells(SpinButton1.Max - SpinButton1).CopyPicture
Paste
ActiveCell.Activate
End Sub
 

Pièces jointes

Avec mes fichiers précédents on remarquera que si l'on exécute la commande Coller par Ctrl+V la dernière image copiée se colle sur la cellule active.

Pour éviter ce collage il faut vider le presse-papiers :
VB:
Private Sub SpinButton1_Change()
Dim s As Shape
[B3].Select
For Each s In Me.Shapes
    If s.TopLeftCell.Address = ActiveCell.Address Then s.Delete
Next
SpinButton1.Max = [Liste].Count
If SpinButton1 = SpinButton1.Max Then Exit Sub
[Liste].Cells(SpinButton1.Max - SpinButton1).CopyPicture
Paste
ActiveCell.Activate
[A1].Copy [A1] 'vide le presse-papiers
End Sub
 

Pièces jointes

Hello Goose,
Merci mais peut-on faire sans les formats avec du VBA ?
Comme l'a dit danielco dans ce cas pas besoin de VBA mais bon :
VB:
Private Sub SpinButton1_Change()
[B3].Select
SpinButton1.Max = [Liste].Count
ActiveCell = ""
If SpinButton1 < SpinButton1.Max Then ActiveCell = [Liste].Cells(SpinButton1.Max - SpinButton1)
End Sub
A+
 

Pièces jointes

J'avais fait l'inversion entre le post #3 et le post #4 mais puisque vous n'en voulez pas :
VB:
Private Sub SpinButton1_Change()
[B3].Select
SpinButton1.Max = [Liste].Count
If SpinButton1 Then ActiveCell = [Liste].Cells(SpinButton1) Else ActiveCell = ""
End Sub
 

Pièces jointes

- 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

Discussions similaires

Réponses
17
Affichages
470
Retour