Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Adaptation code VBA Excel 07 pourExcel 97

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

libellule85

XLDnaute Accro
Bonjour tout le monde,
Ne maitrisant pas beaucoup VBA j'ai trouvé sur le net un code pour liste déroulante en cascade que j'ai adapté et qui fonctionne parfaitement sous Excel 07 (code que je joins ci-dessous). Par contre j'ai essayé sous Excel 97 et celà ne fonctionne pas. Je me tourne donc vers vous pour savoir quels modifications je dois apporter pour que celui-ci fonctionne également sous Excel 97.

Sur la feuille Choix :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$B$2" Then
    UserForm1.Show 0
  End If
End Sub

Et sur l'userform1 :
Code:
Private Sub UserForm_Initialize()
  Set f = Sheets("Listing")
  Set MonDico = CreateObject("Scripting.Dictionary")
  For Each c In Range(f.[A2], f.[A65000].End(xlUp))
    If c.Value <> "" Then MonDico.Item(c.Value) = c.Value
  Next c
  Me.ComboBox1.List = MonDico.items
  SendKeys "{F4}"
End Sub
Private Sub ComboBox1_Change()
  Set f = Sheets("Listing")
  i = 0
  Me.ComboBox2.Clear
  For Each c In Range(f.[A2], f.[A65000].End(xlUp))
   If c = Me.ComboBox1 Then
       Me.ComboBox2.AddItem
       Me.ComboBox2.List(i, 0) = c.Offset(, 1).Value
       Me.ComboBox2.List(i, 1) = c.Offset(0, 2).Value
       Me.ComboBox2.List(i, 2) = c.Offset(0, 3).Value
       Me.ComboBox2.List(i, 3) = c.Offset(0, 4).Value
       Me.ComboBox2.List(i, 4) = c.Offset(0, 5).Value
       Me.ComboBox2.List(i, 5) = c.Offset(0, 6).Value
       Me.ComboBox2.List(i, 6) = c.Offset(0, 7).Value
       Me.ComboBox2.List(i, 7) = c.Offset(0, 8).Value
       i = i + 1
   End If
  Next c
  Me.ComboBox2.SetFocus
  SendKeys "{F4}"
End Sub
Private Sub ComboBox2_Change()
   If Me.ComboBox2.ListIndex > -1 Then
     ActiveCell = Me.ComboBox1
     ActiveCell.Offset(2) = Me.ComboBox2
     ActiveCell.Offset(3) = Me.ComboBox2.Column(1)
     ActiveCell.Offset(4) = Me.ComboBox2.Column(2)
     ActiveCell.Offset(5) = Me.ComboBox2.Column(3)
     ActiveCell.Offset(6) = Me.ComboBox2.Column(4)
     ActiveCell.Offset(7) = Me.ComboBox2.Column(5)
     ActiveCell.Offset(8) = Me.ComboBox2.Column(6)
     End If
   Unload Me
End Sub

Merci pour votre aide
 
- 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
10
Affichages
661
Réponses
5
Affichages
910
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…