oui le faire avec VBA
comment a expliqué avec VBA ?
faire montre de expliquer
merci
Re...
Avec le classeur ouvert
Appuyer simultanément sur Alt+F11
Dans la fenêtre à gauche ==>double clic sur ThisWorkbook
Tu dois trouver dans la fenêtre de droite le code ci-dessous (S
ans les==> explications)
Option Explicit '==> Oblige la déclaration des variables
Private Sub Workbook_Open()
'==>procédure qui serra lancée à chaque ouverture du classeur
Dim i&
'==> déclaration de la variable i utilisée ci-dessous
With Sheets("BUNDESLIGA")
'==> Détermine qu'elle feuille est concernée par les instructions suivantes
.ComboBox1.Clear
' ==>Efface les données pouvant être présentes dans la liste déroulante (ici c'est un contrôle activeX "combobox")
For
i = 1 To 34
'==>on commence une boucle de 1 à 34,(i aura la valeur 1,2,3....,34 )
.ComboBox1.AddItem i
' On inscrit cette valeur dans le Combobox
Next
'==> suite de la boucle jusqu'à 34
End With
'==>Fin des instructions avec la feuille concernée
End Sub
'==> fin de la procédure
Ensuite dans la fenêtre à gauche ==>double clic sur BUNDESLIGA
Le code ci-dessous s'affiche dans la fenêtre de droite
Private Sub ComboBox1_Change()
' ==> ce code sera exécuté à chaque fois que la saisie dans liste déroulante(Combobox ) change.
If ComboBox1 = "" Or ComboBox1.Value > 34 Or ComboBox1.Value < 1 Then
' ==>Condition si la saisie est vide ou si elle est <1 ou >34
ComboBox1.Value = ""
'==> alors on efface ce qui est affiché dans la liste déroulante.
Application.Goto [a1], True '
==>et on affiche la feuille en haut de page.
Exit Sub
'==> si les conditions sont remplies on sort de la procédure et le code suivant ne serra pas exécuté.
End If
'==> fin des conditions ci-dessus
Application.Goto Range("a" & ComboBox1.Value * 11 - 9), True
'==>Si les conditions ne sont pas remplies, on calcule l'emplacement (ligne) qui doit être afficher en haut de page.
End Sub
'==> fin de la procédure
Voila…...
Bon courage