ListBox / FileListBox

cs_Gendarmette Messages postés 104 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 14 janvier 2004 - 4 juin 2003 à 13:08
cs_johnelye Messages postés 1 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 août 2004 - 29 août 2004 à 16:44
J'ai le programme suivant (repêché sur le site):

Private Sub BtComparer_Click()

List3.Clear

Dim nam, nam2 As String
Dim n, i, j As Integer

n = List1.ListCount

For i = 0 To n - 1
List1.ListIndex = i
nam = File1.FileName
'Choisir les fichiers commençant par la lettre ...
File2.Pattern = Mid(nam, 1, 1) & "*.*"
m = File2.ListCount
For j = 0 To m - 1
File2.ListIndex = j
nam2 = File2.FileName
'MsgBox (StrComp(nam2, nam, 1) & " " & nam & " " & nam2)
'Compare les noms de fichier des deux repértoires
'Si un fichier apparait dans les 2 répertoires il est ajouté à List3If StrComp(nam2, nam, 1) 0 Then List3.AddItem nam: j 0: GoTo 20

Next j
20 File2.Pattern = "*.*": Next i
End Sub
Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Private Sub Dir2_Change()
File2.Path = Dir2.Path
File2.Pattern = "*.*"
End Sub

Le problème c ke je n'ai pas de FileListBox (File1, File2) mais des ListBox (List1, List2)
Comment modifier mon programme?

5 réponses

cs_Zoltan67 Messages postés 91 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 25 juin 2003 1
4 juin 2003 à 14:14
tu remplace file1 par list1, file2 par list2 et tu vires les file*.path = ... et file*.pattern=...
0
cs_Zoltan67 Messages postés 91 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 25 juin 2003 1
4 juin 2003 à 14:17
et file1.filename par list1.list(i)
et file2.filename par list2.list(j)

je crois que ca devrait être bon
0
cs_Zoltan67 Messages postés 91 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 25 juin 2003 1
4 juin 2003 à 14:22
Excuse moi, oublie mes 2 messages précédents et prend ce bout de code à la place du reste :

Private Sub BtComparer_Click()

List3.Clear

Dim nam, nam2 As String
Dim n, m, i, j As Integer

n = List1.ListCount

For i = 0 To n - 1
List1.ListIndex = i
nam = List1.List(i)
m = List2.ListCount
For j = 0 To m - 1
List2.ListIndex = j
nam2 = List2.List(j)

If StrComp(nam2, nam, 1) = 0 Then List3.AddItem nam
Next j
Next i
End Sub
0
cs_Gendarmette Messages postés 104 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 14 janvier 2004
4 juin 2003 à 14:38
Ton code fonctionne parfaitement!
Merci, beaucoup!
[Grey]Gendarmette/Grey
>:)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_johnelye Messages postés 1 Date d'inscription mardi 2 décembre 2003 Statut Membre Dernière intervention 29 août 2004
29 août 2004 à 16:44
En Complément a cette réponse:
Pour selectionner par code, un item de FileListBox utiliser plutot
List1.Selected(i) = True
En effet si la selection multiple est autorisée dans la liste, List1.ListIndex = i génère un Run-Time error '381' avec le texte de message: " Invalid property array index" Ce qui n'explique pas grand chose!.
J'ai perdu pas mal de temps avec cette erreur.

Experimenté avec une FileListBox mais doit aussi s'appliquer aux autres controle de listes: Listbox, combobox ..etc
0
Rejoignez-nous