A voir également:
- Lister les noms de fichiers d'un repertoire
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Les noms des animaux - Télécharger - Études & Formations
- Wetransfer gratuit fichiers lourd - Guide
- Impossible de supprimer un fichier - Guide
45 réponses
Bonjour,
Sous VB et VBA vous pouvez utiliser les objets de scripting !
Exemple :
Lupin
Sous VB et VBA vous pouvez utiliser les objets de scripting !
Exemple :
Sub ListeFichier Const ctePourLecture = 1 Const ctePourEcrire = 2 Const ctePourAjouter = 8 Dim objFSO, objDossier, objFichier, objResultat Dim Repertoire, NomFichierTxt On Error Resume Next Repertoire = "C:\Document\Excel" NomFichierTxt = "Resultat.txt" Set objFSO = CreateObject("Scripting.FileSystemObject") Set objDossier = objFSO.GetFolder(Repertoire) Set objResultat = objFSO.CreateTextFile((Repertoire & "\" & NomFichierTxt),ctePourEcrire) If (objDossier.Files.Count > 0) Then For Each objFichier In objDossier.Files If (InStr(1, objFichier.Name, ".xls", 1) > 0) Then objResultat.WriteLine objFichier.Name End If Next End If objResultat.Close Set objResultat = Nothing Set objDossier = Nothing Set objFSO = Nothing End Sub
Lupin
_julien_
Messages postés
56
Date d'inscription
lundi 31 mai 2004
Statut
Membre
Dernière intervention
31 juillet 2004
17
29 juin 2004 à 15:45
29 juin 2004 à 15:45
http://www.vbfrance.com/code.aspx?ID=19249
--
julien barbier
--
julien barbier
Utilisateur anonyme
21 oct. 2006 à 01:22
21 oct. 2006 à 01:22
Bonjour,
vous devez détailler plus précicément la nature des objets utilisés !
voici un exemple de code :
je ne m'explique toujours pas :
Const myRep = "edit_repertoire.Text"
et quel est le type de l'objet [ List_rep ] ?
Lupin
vous devez détailler plus précicément la nature des objets utilisés !
voici un exemple de code :
Private Sub btn_lister_Click() Dim monRep As Variant Dim ext As String, Ctr As Integer ext = "" monRep = Me.edit_repertoire.Value ext = Dir(monRep & "\*.doc") List_rep.Visible = True List_rep.DefaultValue = "" Do While ext <> "" Me.List_rep.AddItem ext ext = Dir Loop 'List_rep.ListStyle = fmListStyleOption End Sub '
je ne m'explique toujours pas :
Const myRep = "edit_repertoire.Text"
et quel est le type de l'objet [ List_rep ] ?
Lupin
Utilisateur anonyme
23 oct. 2006 à 15:51
23 oct. 2006 à 15:51
re :
je suis sous Access 2002 ( "Suite Office XP").
pour ce qui est des librairies supplémentaires, je vais jeter un
coup d'oeil ce soir, car la je ne suis pas sous le même environnement.
si vous vouliez bien identifier les objets que vous utiliser, je pourrai plus
vous donner mon opignon !!!
List_Rep : Zone de liste déroulante, Zone de liste, Zone de texte ... ?
edit_repertoire : Zone de liste déroulante, Zone de liste, Zone de texte ... ?
Lupin
je suis sous Access 2002 ( "Suite Office XP").
pour ce qui est des librairies supplémentaires, je vais jeter un
coup d'oeil ce soir, car la je ne suis pas sous le même environnement.
si vous vouliez bien identifier les objets que vous utiliser, je pourrai plus
vous donner mon opignon !!!
List_Rep : Zone de liste déroulante, Zone de liste, Zone de texte ... ?
edit_repertoire : Zone de liste déroulante, Zone de liste, Zone de texte ... ?
Lupin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Je recherche a faire la meme chose en vba sous access, mais les fonctions citée dans le lien précédent ne sont pas reconnues.
Si quelqu'un peut m'aider ,Merci :)
Je recherche a faire la meme chose en vba sous access, mais les fonctions citée dans le lien précédent ne sont pas reconnues.
Si quelqu'un peut m'aider ,Merci :)
Merci beaucoup de ta reponse,
mais j'ai trouvé un code plus simple sous vba:
With Application.FileSearch
.LookIn = "C:\dede"
.Filename = "*.*"
If .Execute > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "There were no files found."
End If
End With
Vus que le controle dirlistbox,drivelistbox sous vba n'existe pas, a ton avis faut t'il beaucoup de temps pour recréer un mini exploreur avec cette fonction et un treeview? (je ne connais pas les treeview, je sui entrain de me documenter dessus)
mais j'ai trouvé un code plus simple sous vba:
With Application.FileSearch
.LookIn = "C:\dede"
.Filename = "*.*"
If .Execute > 0 Then
MsgBox "There were " & .FoundFiles.Count & _
" file(s) found."
For i = 1 To .FoundFiles.Count
MsgBox .FoundFiles(i)
Next i
Else
MsgBox "There were no files found."
End If
End With
Vus que le controle dirlistbox,drivelistbox sous vba n'existe pas, a ton avis faut t'il beaucoup de temps pour recréer un mini exploreur avec cette fonction et un treeview? (je ne connais pas les treeview, je sui entrain de me documenter dessus)
re:
Non, ce fut d'ailleur l'un de mes TPs lors de mon 3e cours de VB,
créer un interface qui remplace la boite de dialogue [Ouvrir] et
[ Enregistrer sous ].
Lupin
Non, ce fut d'ailleur l'un de mes TPs lors de mon 3e cours de VB,
créer un interface qui remplace la boite de dialogue [Ouvrir] et
[ Enregistrer sous ].
Lupin
Bonjour :)
Ce week-end j'ai eu le temps de comprendre ce qu'était un treeview et comment globalement cela fonctionnait 'il.
En effet c'est pas tres compliqué.
Néanmoins je sui tombé sur une autre difficultée, certains repertoires ont un acces protégé (interdit a l'utilisateur que je suis).
Ainsi lorsque je souhaite obtenir l'arboloescence de ces derniers, cela bug et une erreur apparait, quelqu'un aurait une idée afin de contrer cela?
Merci d'avance :)
Ce week-end j'ai eu le temps de comprendre ce qu'était un treeview et comment globalement cela fonctionnait 'il.
En effet c'est pas tres compliqué.
Néanmoins je sui tombé sur une autre difficultée, certains repertoires ont un acces protégé (interdit a l'utilisateur que je suis).
Ainsi lorsque je souhaite obtenir l'arboloescence de ces derniers, cela bug et une erreur apparait, quelqu'un aurait une idée afin de contrer cela?
Merci d'avance :)
Bonjour,
Je cherche un peu à faire la même chose...seulement que moi l'utilisateur choisit le répértoire ou il faut lister les .doc ensuite j'aimerai pouvoir tout lister dans une listBox mais je sais aps trop comment faire...
Voici mon code :
ce qu'il faut déclarer en haut
mon bouton parcourir :
la fonction SelectFolder :
je rend visible mon bouton lister :
fonction de mon bouton lister (c'est la ou je bloque :S)
Si qqun pourrait m'aider ca serait vraiment sympa...
Je cherche un peu à faire la même chose...seulement que moi l'utilisateur choisit le répértoire ou il faut lister les .doc ensuite j'aimerai pouvoir tout lister dans une listBox mais je sais aps trop comment faire...
Voici mon code :
ce qu'il faut déclarer en haut
Option Compare Database Private Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type Public Enum NetWork WithNetworkFolders = 0 WithoutNetworkFolders = 2 End Enum Private Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, _ ByVal pszPath As String) As Long Private Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) _ As Long Const BIF_RETURNONLYFSDIRS = &H1 Const BIF_USENEWUI = &H40
mon bouton parcourir :
Private Sub btn_parcourir_Click() Me.edit_repertoire = SelectFolder("D:\", WithoutNetworkFolders) If IsNull(edit_repertoire) Or Len(edit_repertoire) = 0 Then btn_lister.Visible = False Else btn_lister.Visible = True End If End Sub
la fonction SelectFolder :
Public Function SelectFolder(Optional Folder As String = "" _ , Optional NetWorkFolders As NetWork = WithNetworkFolders _ ) As String Dim X As Long, bi As BROWSEINFO, dwIList As Long Dim szPath As String, wPos As Integer If Folder = "" Then Folder = CurrentProject.Path With bi .hOwner = hWndAccessApp .lpszTitle = "Sélectionnez votre dossier et cliquez sur OK" .ulFlags = BIF_RETURNONLYFSDIRS _ Or BIF_USENEWUI _ Or NetWorkFolders End With dwIList = SHBrowseForFolder(bi) szPath = Folder & Space$(512 - Len(Folder)) X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath) If X Then wPos = InStr(szPath, Chr(0)) SelectFolder = Left$(szPath, wPos - 1) Else SelectFolder = "" End If End Function
je rend visible mon bouton lister :
Private Sub edit_repertoire_Change() If IsNull(edit_repertoire.Text) Or Len(edit_repertoire.Text) = 0 Then btn_lister.Visible = False Else btn_lister.Visible = True End If End Sub
fonction de mon bouton lister (c'est la ou je bloque :S)
Private Sub btn_lister_Click() Dim ext As String Dim Ctr As Integer Const myRep = "edit_repertoire.Text" ' Voir s'il ne faut pas definir repertoire... ext = Dir(myRep & "*.doc") List_rep.Visible = True List_rep.DefaultValue = "" Do While ext <> "" List_rep.ControlSource = ext ext = Dir Loop List_rep.ListStyle = fmListStyleOption Next End Sub
Si qqun pourrait m'aider ca serait vraiment sympa...
Utilisateur anonyme
17 oct. 2006 à 00:56
17 oct. 2006 à 00:56
Bonjour,
je n'ai pas tout saisi faute de temps mais déjà il serait souhaitable de modifier la déclaration de la constante.
Const myRep = "edit_repertoire.Text"
ext = Dir(myRep & "*.doc")
la constante semble pointer sur un objet VB et on y lit la propriété "Text", la constante ne peut varier lors de l'éxécution
du programme, ce serait plutôt :
Dim myRep As String
myRep = "edit_repertoire.Text"
ext = Dir(myRep & "*.doc")
Lupin
je n'ai pas tout saisi faute de temps mais déjà il serait souhaitable de modifier la déclaration de la constante.
Const myRep = "edit_repertoire.Text"
ext = Dir(myRep & "*.doc")
la constante semble pointer sur un objet VB et on y lit la propriété "Text", la constante ne peut varier lors de l'éxécution
du programme, ce serait plutôt :
Dim myRep As String
myRep = "edit_repertoire.Text"
ext = Dir(myRep & "*.doc")
Lupin
Bonjour,
pour le moment Access ne m'a pas généré d'erreur à ce niveau la...
mais il ne trouve pas la propriété : ListStyle
En VBA ca n'existe pas et je suis un peu coincé...y'a-t-il un autre moyen avec une boucle et un indice qui s'incrémente ? qqch comme ca...?
Merci d'avance.
Meilleures salutations.
pour le moment Access ne m'a pas généré d'erreur à ce niveau la...
mais il ne trouve pas la propriété : ListStyle
En VBA ca n'existe pas et je suis un peu coincé...y'a-t-il un autre moyen avec une boucle et un indice qui s'incrémente ? qqch comme ca...?
Merci d'avance.
Meilleures salutations.
Bonjour,
pour le moment Access ne m'a pas généré d'erreur à ce niveau la...
mais il ne trouve pas la propriété : ListStyle
En VBA ca n'existe pas et je suis un peu coincé...y'a-t-il un autre moyen avec une boucle et un indice qui s'incrémente ? qqch comme ca...?
Merci d'avance.
Meilleures salutations.
pour le moment Access ne m'a pas généré d'erreur à ce niveau la...
mais il ne trouve pas la propriété : ListStyle
En VBA ca n'existe pas et je suis un peu coincé...y'a-t-il un autre moyen avec une boucle et un indice qui s'incrémente ? qqch comme ca...?
Merci d'avance.
Meilleures salutations.
Bonjour,
pour le moment Access ne m'a pas généré d'erreur à ce niveau la...
mais il ne trouve pas la propriété : ListStyle
En VBA ca n'existe pas et je suis un peu coincé...y'a-t-il un autre moyen avec une boucle et un indice qui s'incrémente ? qqch comme ca...?
Merci d'avance.
Meilleures salutations.
pour le moment Access ne m'a pas généré d'erreur à ce niveau la...
mais il ne trouve pas la propriété : ListStyle
En VBA ca n'existe pas et je suis un peu coincé...y'a-t-il un autre moyen avec une boucle et un indice qui s'incrémente ? qqch comme ca...?
Merci d'avance.
Meilleures salutations.
J'ai essayé comme ceci mais sans résultat...
Personne n'a une idée svp ? je commence à desespérer :'(
Private Sub btn_lister_Click() Dim ext As String Const myRep = "edit_repertoire.Text" ' Voir s'il ne faut pas definir repertoire... ext = Dir(myRep & "*.doc") List_rep.RowSource = "" 'Do While ext <> "" 'List_rep.RowSource = List_rep.RowSource & ext & ";" 'ext = Dir Loop 'List_rep.ListStyle = fmListStyleOption End Sub
Personne n'a une idée svp ? je commence à desespérer :'(
Merci pour votre réponse...
mais pour info les propriétés additems et lifestyle sont propriétaire à VB et non à VBA cela n'existe pas...donc c'est pour ca que je cherche un autre moyen de le faire...
Merci d'avance.
mais pour info les propriétés additems et lifestyle sont propriétaire à VB et non à VBA cela n'existe pas...donc c'est pour ca que je cherche un autre moyen de le faire...
Merci d'avance.
Utilisateur anonyme
23 oct. 2006 à 13:18
23 oct. 2006 à 13:18
Bonjour,
le code soumis dans mon dernier post a été généré et testé sous
VBA d'access. Pour ce qui est de la méthode AddItem, elle est
bel et bien présente sous VBA, je l'utilise depuis longtemps ...
Lupin
le code soumis dans mon dernier post a été généré et testé sous
VBA d'access. Pour ce qui est de la méthode AddItem, elle est
bel et bien présente sous VBA, je l'utilise depuis longtemps ...
Lupin
Ah...c'est bizarre ca car chez moi elle est inconnue...
Quelle est la version d'Access que vous utilisez ? Y'a-t-il une librairie à activer ou un dll ???
De mon coté je suis en Access 2000...
Merci d'avance.
Quelle est la version d'Access que vous utilisez ? Y'a-t-il une librairie à activer ou un dll ???
De mon coté je suis en Access 2000...
Merci d'avance.
Oki aucun problème
Merci bcp de consacrer un peu de temps pour moi :)
Sinon pour les 2 objets :
List_Rep : Zone de liste
edit_repertoire : Zone de texte
Merci d'avance.
Merci bcp de consacrer un peu de temps pour moi :)
Sinon pour les 2 objets :
List_Rep : Zone de liste
edit_repertoire : Zone de texte
Merci d'avance.
Utilisateur anonyme
24 oct. 2006 à 02:03
24 oct. 2006 à 02:03
re:
Alors j'ai peut-être ajouté cette référence :
Microsoft Visual Basic For Applications Extensibility 5.3
Sinon, j'ai le standard :
Visual Basic For Applications
Microsoft Access 10.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
J'ai refais le test avec une zone de liste pour [ List_Rep ] et ça
fonctionne encore chez moi !
Lupin
Alors j'ai peut-être ajouté cette référence :
Microsoft Visual Basic For Applications Extensibility 5.3
Sinon, j'ai le standard :
Visual Basic For Applications
Microsoft Access 10.0 Object Library
Microsoft DAO 3.6 Object Library
OLE Automation
J'ai refais le test avec une zone de liste pour [ List_Rep ] et ça
fonctionne encore chez moi !
Lupin
16 juin 2010 à 09:58
c propre et sans bavure
25 juin 2010 à 16:05
19 août 2011 à 11:37
29 sept. 2011 à 23:38
4 oct. 2011 à 16:47
Merci bien