Pb de syntaxe?

Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
- - Dernière réponse : houloul
Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
- 6 juin 2003 à 15:21
Est-ce ke la syntaxe de cette ligne est correcte?

If oFile.Name(i) = oFile2(j) And oFile.DateLastModified(i) > oFile2.DateLastModified(j) Then...

Merci!
Afficher la suite 

20/21 réponses

Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
0
Merci
Est ce qu'il ne faudra pas mettre oFile.Name(i) = oFile2.name(j) ????
Je sais pas trop mais je propose ...
@+
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
Oui, c fait je m'en suis rendu compte.
Mais ça plante tjs à cette ligne et je comprends pas pkoi.
Merci!
Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
0
Merci
essaie de mettre entre paranthèse des arguments genre

(oFile.Name(i) = oFile2.name(j)) and (oFile.DateLastModified(i) > oFile2.DateLastModified(j)) Then...

???
@+
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
Non, ça marche tjs pas.
Il me met
Nombre d'arguments incorrect ou affectation de propriété incorrecte
pour oFile.Name
Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
0
Merci
ça te met koi comme erreur ?
@+
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
Il me dit que c l'affectation de propriété qui est incorrecte alors que + haut dans le code g la même propriété qui fonctionne parfaitement.
Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
0
Merci
Tu es sûr de ton i et de ton j ? tu as mis un espion pour etre sur de la valeur qu'ils prennent ?
simple remarque pour etre sûr.... ;)
@+
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
Je débute dc je ne suis sûre de rien =)
Les codes que j'utilise proviennent d'autres membres de vbfrance. Le i et le j aussi!
Et pis l'espion je c même pas ce ke c :-( ...
Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
0
Merci
Est ce que tu peux me mettre directement les deux blocs celui qui marche et celui qui te fait une erreur avec les déclaration de variable pour que je jette un coup d'oeil ?
@+
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
Attention c parti, bon courage!

'Lister tous les fichiers de 2 répertoire dans 2 ListBox (une par répertoire)

Public oFs As Scripting.FileSystemObject
Public oFolder As Scripting.Folder
Public oSubFolder As Scripting.Folder
Public oFile As Scripting.File
Public oFs2 As Scripting.FileSystemObject
Public oFolder2 As Scripting.Folder
Public oSubFolder2 As Scripting.Folder
Public oFile2 As Scripting.File

Private Sub BtQuitter_Click()

Form4.Hide
Form1.Show

End Sub

Private Sub BtStart_Click()

Dim sFolder As String
'Créer le FileSystemObject
Set oFs = CreateObject("Scripting.FileSystemObject")
'Définir le premier répertoire de départ
sFolder = "D:\Christine\Rep1"
'Rechercher les fichiers dans le répertoire de départ
Rechercher_Fichiers sFolder
'Rechercher les sous-répertoires et fichiers
Rechercher_Tout sFolder
'Afficher le nombre de fichier(s) trouvé(s)
'MsgBox List1.ListCount & " fichier(s) trouvé(s) " & "dans " & sFolder
Dim sFolder2 As String
'Créer le FileSystemObject
Set oFs2 = CreateObject("Scripting.FileSystemObject")
'Définir le second répertoire de départ
sFolder2 = "D:\Christine\Rep2"
'Rechercher les fichiers dans le répertoire de départ
Rechercher_Fichiers2 sFolder2
'Rechercher les sous-répertoires et fichiers
Rechercher_Tout2 sFolder2
'Afficher le nombre de fichier(s) trouvé(s)
'MsgBox List2.ListCount & " fichier(s) trouvé(s) " & "dans " & sFolder2

End Sub

Private Sub Rechercher_Fichiers(sFolder As String)

Set oFolder = oFs.GetFolder(sFolder)
'Parcourir les fichiers du répertoire et charger la listbox
For Each oFile In oFolder.Files
List1.AddItem oFile.Name
List4.AddItem oFile.DateLastModified
Next

End Sub

Private Sub Rechercher_Fichiers2(sFolder2 As String)

Set oFolder2 = oFs2.GetFolder(sFolder2)
'Parcourir les fichiers du répertoire et charger la listbox
For Each oFile2 In oFolder2.Files
List2.AddItem oFile2.Name
List5.AddItem oFile2.DateLastModified
Next

End Sub

Private Sub Rechercher_Tout(sFolder As String)

Dim sName As String
Set oFolder = oFs.GetFolder(sFolder)
'Parcourir les sous-répertoires du répertoire
For Each oSubFolder In oFolder.SubFolders
'Composer le nom du sous-répertoire
sName = sFolder & oSubFolder.Name & ""
'Rechercher les fichiers
Rechercher_Fichiers sName
'Rechercher les sous-répertoires et fichiers récursivement
Rechercher_Tout sName
Next

End Sub

Private Sub Rechercher_Tout2(sFolder2 As String)

Dim sName2 As String
Set oFolder2 = oFs2.GetFolder(sFolder2)
'Parcourir les sous-répertoires du répertoire
For Each oSubFolder2 In oFolder2.SubFolders
'Composer le nom du sous-répertoire
sName2 = sFolder2 & oSubFolder2.Name & ""
'Rechercher les fichiers
Rechercher_Fichiers2 sName2
'Rechercher les sous-répertoires et fichiers récursivement
Rechercher_Tout2 sName2
Next

End Sub

*************************************************

jusk'ici tout fonctionne

**************************************************
'Création de la ListBox contenant le répertoire au final

Private Sub BtComparer_Click()

List3.Clear
Dim i, j As Integer
i = 0
j = 0
Do While i <= List1.ListCount - 1
Do While j <= List2.ListCount - 1
If oFile.Name(i) <> oFile2.Name(j) Then
List3.AddItem oFile.Name(i)
List3.AddItem oFile2.Name(j)
List6.AddItem oFile.DateLastModified(i)
List6.AddItem oFile2.DateLastModified(j)
List1.RemoveItem oFile.Name(i)
List2.RemoveItem oFile2.Name(j)
List4.RemoveItem oFile.DateLastModified(i)
List6.RemoveItem oFile2.DateLastModified(j)
ElseIf oFile.Name(i) = oFile2.Name(j) And oFile.DateLastModified(i) > oFile2.DateLastModified(j) Then
List3.AddItem oFile.Name(i)
List6.AddItem oFile.DateLastModified(i)
List1.RemoveItem oFile.Name(i)
List4.RemoveItem oFile.DateLastModified(i)
List2.RemoveItem oFile2.Name(j)
List5.RemoveItem oFile2.DateLastModified(j)
i = i - 1
Else
List3.AddItem oFile2.Name(j)
List6.AddItem oFile2.DateLastModified(j)
List2.RemoveItem oFile2.Name(j)
List5.RemoveItem oFile2.DateLastModified(j)
List1.RemoveItem oFile.Name(i)
List4.RemoveItem oFile.DateLastModified(i)
j = j - 1
End If

j = j + 1
Loop

i = i + 1
Loop

End Sub

**************************************************

et la ça plante au niveau de if et endif...

**************************************************
Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
0
Merci
Rajoute un enf if juste avant le tiens du genre :
j= j-1
end if
end if

car tu as 2 boucles if avec un seul end if alors estce que ça vient de ça ?

on va y arriver.... ;-)
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
Ahhhhhhhhhhh!
C tjs pas ça!
Le prob est tjs le meme: affectation de propriété incorrecte aux lignes
If oFile.Name(i)...
et
ElseIf oFile.Name(i)...
Ca m'enerve, je suis trop proche du but!
Messages postés
223
Date d'inscription
samedi 24 mars 2001
Statut
Modérateur
Dernière intervention
24 juin 2007
0
Merci
Kheu! Kheu ?

Pauline Delacroix
Hospice des Lilas
9 Rue du parc
31004 Toulouse CEDEX 8
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
Oui Mémère?
Penses-tu pouvoir résoudre mon problème?
Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
0
Merci
As tu essayé de retirer oFile.DateLastModified(i) > oFile2.DateLastModified(j) pour voir si c'est de cette argument ou de l'autre que cala vient ?
@+
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
J'ai supprimé ts les "2" dans tous les oFile2 (puisque i correspond à la List1 et j à la List2)
Il n'y a plus d'erreur de propriété mais maintenant (tjs à la ligne If oFile.Name...) ça plante en disant qu'un objet est requis.
Messages postés
139
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
3 juillet 2003
0
Merci
Salut,
je comprends pas ce que tu fais en fait dans la parti entre if et end if.

Tu index avec i et j des variables de type scripting.file (ofile, file...) alors que je m'attendais a ce que tu index avec i et j les elements de tes list (1 et 2) genre list1.removeitem i ou encore list1.item(i) etc...

tu peus expliquer un peu l'algo que tu veux voir tourner, tu sais un prog c'est vraiment une histoire d'algo, si l'algo est clair dans ta tete le code sera clair, enfin peut etre l'est t il dans ta tete miss :)

A+

,.~*`'^~.(^. :question) .^),.~^'`*~.
Messages postés
104
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
14 janvier 2004
0
Merci
En fait g 2 codes différents :le premier avec les oFile et tout ça qui permet de lister le contenu d'un rep et l'autre avec les i et j que g repêché ici et ke g essayé d'adapter suivant le premier.
Normalement les oFile représentent les éléments de la liste enfin je crois.
Et m****.
Je rame complètement!
Messages postés
139
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
3 juillet 2003
0
Merci
Dans la premiere partie tu utilises tes oFile si tu veux pour charger les list box
mais pour la derniere parti c'est les list que tu scrutes tu ne dois plus utiliser les oFile mais le contenu des listes exclusivement :

'Création de la ListBox contenant le répertoire au final

Private Sub BtComparer_Click()
List3.Clear
Dim i, j As Integer
i = 0
j = 0
Do While i <= List1.ListCount - 1
Do While j <= List2.ListCount - 1
If List1.List(i) <> List2.List(j) Then
List3.AddItem List1.List(i)
List3.AddItem List2.List(j)
List6.AddItem List4.List(i)
List6.AddItem List5.List(j)
List1.RemoveItem i
List2.RemoveItem j
List4.RemoveItem i
List6.RemoveItem j
ElseIf List1.List(i) = List2.List(j) And List4.List(i) > List5.List(j) Then
List3.AddItem List1.List(i)
List6.AddItem List4.List(i)
List1.RemoveItem i
List4.RemoveItem i
List2.RemoveItem j
List5.RemoveItem j
i = i - 1
Else
List3.AddItem List2.List(j)
List6.AddItem List5.List(l)
List2.RemoveItem j
List5.RemoveItem j
List1.RemoveItem i
List4.RemoveItem i
j = j - 1
End If
End If
j = j + 1
Loop
i = i + 1
Loop
End Sub

Tu vois ce que je veux dire?
++ décourage pas miss, t sur la voie

SpY
,.~*`'^~.(^. :question) .^),.~^'`*~.
Messages postés
39
Date d'inscription
mercredi 24 juillet 2002
Statut
Membre
Dernière intervention
23 juin 2003
0
Merci
Pareil j'arrive à la meme chose... pour moi ça marche donc ça devrait fonctionner pour toi....
@+