Code a améliorer si c'est possible !?

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 !

Novice avance !?

XLDnaute Occasionnel
bonjour
voici mon code que j'aimerais bien améliorer avec votre aide si c'est possible !?

le code a amélioré est en bleu...j'aimerais alimenter la listbox grâce à une boucle !?


Private Util(8)
______________________________________________________________

Private Sub UserForm_Initialize()
Util(0) = "SST1"
Util(1) = "SST2"
Util(2) = "SST3"
Util(3) = "SST4"
Util(4) = "SST5"
Util(5) = "SST6"
Util(6) = "SST7"
Util(7) = "SST8"
Util(8) = "SST9"
For i = 0 To 8
With ComboBox1
.AddItem Util(i)
End With
Next
ComboBox1.ListIndex = 0

End Sub


______________________________________________________________

Private Sub Calendar1_Click()
Label1.Caption = "Modification des UO de la ligne " & ListBox1.Value & " " & ComboBox1.Value & " en date du " & Calendar1.Value
End Sub
_______________________________________________________________

Private Sub ComboBox1_Change()
Label1.Caption = ""
ListBox1.Clear
End Sub
_______________________________________________________________

Private Sub CommandButton1_Click()

Dim choix As Variant
choix = ComboBox1.Value
If choix = "SST1" Then
ListBox1.List() = Sheets("Base_Ref").Range("L2:L36").Value
Sheets(choix).Activate
Range("A1").Select
End If
If choix = "SST2" Then
ListBox1.List() = Sheets("Base_Ref").Range("L37:L62").Value
Sheets(choix).Activate
Range("A1").Select
End If
If choix = "SST3" Then
ListBox1.List() = Sheets("Base_Ref").Range("L63:L89").Value
Sheets(choix).Activate
Range("A1").Select
End If
If choix = "SST4" Then
ListBox1.List() = Sheets("Base_Ref").Range("L90:L91").Value
Sheets(choix).Activate
Range("A1").Select
End If
If choix = "SST5" Then
ListBox1.List() = Sheets("Base_Ref").Range("L92:L95").Value
Sheets(choix).Activate
Range("A1").Select
End If
If choix = "SST6" Then
ListBox1.List() = Sheets("Base_Ref").Range("L96:L100").Value
Sheets(choix).Activate
Range("A1").Select
End If
If choix = "SST7" Then
ListBox1.List() = Sheets("Base_Ref").Range("L101:L102").Value
Sheets(choix).Activate
Range("A1").Select
End If
If choix = "SST8" Then
ListBox1.List() = Sheets("Base_Ref").Range("L103:L105").Value
Sheets(choix).Activate
Range("A1").Select
End If
If choix = "SST9" Then
ListBox1.List() = Sheets("Base_Ref").Range("L106:L107").Value
Sheets(choix).Activate
Range("A1").Select
End If


End Sub
______________________________________________________________

Private Sub CommandButton3_Click()
Unload Me
End Sub


merci par avance
bonne journée🙄
 
Re : Code a améliorer si c'est possible !?

Salut Novie avance,

Déjà un petit truc, sur le début de ton code
Code:
Private Sub UserForm_Initialize()
For L = 0 to 8
  Util(L)= "SST" & L+1
  With ComboBox1
    .AddItem Util(L)
  End With
Next
ComboBox1.ListIndex = 0
End Sub

A+
 
Re : Code a améliorer si c'est possible !?

bonjour novice avance

Private Sub UserForm_Initialize()
For i = 0 To 8
ComboBox1.AddItem "SST" & CSTR(I+1)
Next
ComboBox1.ListIndex = 0
End Sub

Private Sub CommandButton1_Click()

Dim choix As integer ' pour ne prendre que 2 caracteres
choix = val(right(ComboBox1.Value,1)) ' Ne prendre que la valeur numérique

select case choix

case 1 : ListBox1.List() = Sheets("Base_Ref").Range("L2:L36").Value
case 2 : ListBox1.List() = Sheets("Base_Ref").Range("L37:L62").Value
case 3 : ListBox1.List() = Sheets("Base_Ref").Range("L63:L89").Value
case 4 : ListBox1.List() = Sheets("Base_Ref").Range("L90:L91").Value
case 5 : ListBox1.List() = Sheets("Base_Ref").Range("L92:L95").Value
case 6 : ListBox1.List() = Sheets("Base_Ref").Range("L96:L100").Value
case 7 : ListBox1.List() = Sheets("Base_Ref").Range("L101:L102").Value
case 8 : ListBox1.List() = Sheets("Base_Ref").Range("L103:L105").Value
case 9 : ListBox1.List() = Sheets("Base_Ref").Range("L106:L107").Value
end select
Sheets(combobox1.value).select
Range("A1").Select

End Sub

edit : bonjour bruno 😉
 
Dernière édition:
Re : Code a améliorer si c'est possible !?

Merci

mais autant pour moi désolé je n'ai pas précisé que que SST1 à SST9 ont été modifié pour le mettre en ligne sur ce forum
SST1 correspond au nom d'un sous-traitant et ainsi de suite

donc par exemple
SST1 = FRED
SST2 = DAVID
SST3 = PHILIPPE
SST4 = LOIC
SST5 = JVC
SST6 = KODAK
SST7 = STEPH
SST8 = QUENTIN
SST9 = NOEL

donc c bien le code en bleu que j'aimerais améliorer
 
Re : Code a améliorer si c'est possible !?

Bonjour a tous,

Le code de Wilfried ne te satisfait pas? Car il est difficile de faire plus court.

Tout de meme, juste pour le fun, le meme code avec quelques lignes différentes :
Code:
[COLOR=seagreen]'permet de ne pas tenir compte des majuscule/minuscule[/COLOR]
Option Compare Text
 
Private Sub CommandButton1_Click()
With Sheets("Base_Ref")
    Select Case Combobox1.Value
        Case "fred": ListBox1.List() = .Range("L2:L36").Value
        Case "david": ListBox1.List() = .Range("L37:L62").Value
        Case "philippe": ListBox1.List() = .Range("L63:L89").Value
        [COLOR=seagreen]'Case ...
[/COLOR]    End Select
End With
Application.Goto Sheets(Combobox1.Value).Range("a1")
End Sub

@+
 
- 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

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
Réponses
3
Affichages
665
  • Question Question
Microsoft 365 Code VBA
Réponses
10
Affichages
861
Retour