Adaptation code VBA Excel 07 pourExcel 97

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
 

Statistiques des forums

Discussions
311 741
Messages
2 082 055
Membres
101 882
dernier inscrit
XaK_