Aller au contenu

Parcourir un repertoire


Messages recommandés

Posté(e)

Bonjour à tous,

 

Voilà 3 jours que j'essai et je n'y arrive pas.

 

Je souhaite réaliser un programme qui parcours un répertoire que je choisirais dans lequel il y a des blocs .dwg.

Ce programme ouvre tous les fichiers du repertoire execute une commande dans chaque fichiers puis les referment.

 

Ayant en ma possession (que j'ai acheté) le bouquin de programmation VBA 2006 de Albert Thalheim, j'ai trouvé exactement ce que je voulais à la fin.

Seulement quand je charge son programme (pour essayer) j'ai le message suivant http://cjoint.com/?ghr6HZjaoR

Bref windows prépare autocad pour installer quelque chose?????????????????????

Mais comme autocad est ouvert ça ne marche pas.

Donc j'ai pris le bouquin puis j'ai fait du copiage et quand je lance mon programme il bug sur

CommonDialog............

 

Quelqu'un à une idée LUMINEUSE.

 

Merci

A+

 

Posté(e)

Salut,

Si j'ai bien compris, tu cherches à réaliser un programme d'automatisation de script.

Fais une recherche dans les forum avec "auto script", je pense que c'est ce que tu cherches à faire.

 

Si c'est pour le plaisir de réaliser ton programme, vu le message que tu as, il faudrait vraiment que tu mettes ton code ici, comme le suggère lili2006.

 

Par contre, vérifie que ton code est bien fait pour la version d'Autocad que tu as, car souvent il y a des différences.

 

Bon courage en tous les cas ! ;)

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Salut à tous,

Je vous remerci pour vos réponse

 

mais de rage hier soir j'ai tous recommencé en partant des bases et surtout de ce que je connaissait (c'est à dire pas grand chose ...peut être).

 

Mais je suis arrivé à faire un bout de code qui fonctionne maintenant il ne me reste plus qu'a faire une belle USERFORM et dévellopé d'autre options et je le mettrais en ligne.

 

Comme quoi j'ai voulu gagner du temps en prenant un programme déjà fait mais finalement j'en ai perdu.

 

Et puis c'est plus enrichissant de faire sois même.

 

Mais j'hésiterais à poser des questions plus précise à l'avenir si j'ai un problème.

 

MERCI

A+

Posté(e)
Et puis c'est plus enrichissant de faire sois même.

En effet !

Mais au bout d'un moment, pour avancer et ne pas se dégouter, il faut savoir demander de l'aide.

Et crois en mon expérience, de l'aide ici, tu en auras plus que nécessaire !

 

Bon courage !

Si vous êtes persuadés de tout savoir sur un sujet, c''est que vous en ignorez quelque chose...

Posté(e)

Re lili2006,

 

en effet je viens de relire mon post j'ai oublié le PAS

dans la dernière phrase.

 

»Mais j'hésiterais PAS à poser des questions plus précise à l'avenir si j'ai un problème.

 

A+

 

Posté(e)

bonjour,

 

voici ton bonheur j'avais fait ce p'tit prog pour lister un repertoire:

 

 Sub ListeFic1()

Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String

'récupère le nom du répertoire sélectionné
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path

If Chemin = "" Then
Exit Sub
End If


   Dim ScanFic As Office.FileSearch
   Dim NomFic  As Variant
   Dim Diag    As String
   Dim Nbr     As Long
   Dim I       As Long
   
   Set ScanFic = Application.FileSearch
   
   With ScanFic
       .NewSearch
       .LookIn = Chemin      ' adapter le nom du lecteur
       .SearchSubFolders = True
       .FileType = msoFilemsoFileTypeAllFiles
       Nbr = .Execute
       Diag = Format(Nbr, "0 ""fichiers trouvés""")
       
       I = 0
       For Each NomFic In .FoundFiles
           I = I + 1
           Sheets("Feuil1").Cells(I, 1).Value = NomFic ' adapter le nom de la feuille
       Next
       
       MsgBox Diag
       
   End With
       
End Sub
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String

'récupère le nom du répertoire sélectionné
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&)
On Error Resume Next
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path

If Chemin = "" Then
Exit Sub
End If

End Sub

 

J'espere qu'il te sera utile, il a été developpé sous excel mais je pense que tu pourras l'adapter pour autocad.

 

@plus

 

LB

Posté(e)

Bonjour à tous,

 

Merci lovecraft pour ton programme,

 

je vais l'essayer et vérifier ce que j'ai déjà fait pour adaptation voir correction.

 

A+

Posté(e)

Bonjour,

 

toutes mes amitiés à Toi, LoveCraft,

je ne garantis pas que le VBA Excel soit parfaitement compatible avec AutoCad

pas les mêmes bibliothèques !

en revanche, le programme suivant a été fait pour AutoCad,

 

sans rancune, LoveCraft :red:

 

amicalement

 

Option Explicit

 

Private Declare Function GetOpenFileName Lib "comdlg32.dll" _

Alias _

"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

 

Private Type OPENFILENAME

lStructSize As Long

hwndOwner As Long

hInstance As Long

lpstrFilter As String

lpstrCustomFilter As String

nMaxCustFilter As Long

nFilterIndex As Long

lpstrFile As String

nMaxFile As Long

lpstrFileTitle As String

nMaxFileTitle As Long

lpstrInitialDir As String

lpstrTitle As String

flags As Long

nFileOffset As Integer

nFileExtension As Integer

lpstrDefExt As String

lCustData As Long

lpfnHook As Long

lpTemplateName As String

End Type

Dim OpenFile As OPENFILENAME

Dim lReturn As Long

Dim sFilter As String

 

Public Sub Explorateur()

 

OpenFile.lStructSize = Len(OpenFile)

sFilter = "Tous Fichiers (*.*)" & Chr(0) & "*.*" & Chr(0)

OpenFile.lpstrFilter = sFilter

OpenFile.nFilterIndex = 1

OpenFile.lpstrFile = String(257, 0)

OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1

OpenFile.lpstrFileTitle = OpenFile.lpstrFile

OpenFile.nMaxFileTitle = OpenFile.nMaxFile

OpenFile.lpstrInitialDir = "C:\"

OpenFile.lpstrTitle = "Choix du Fichier ..."

OpenFile.flags = 0

lReturn = GetOpenFileName(OpenFile)

If lReturn = 0 Then

MsgBox "Annulation Utilisateur"

Else

MsgBox "Fichier Choisi : " & Trim(OpenFile.lpstrFile)

End If

'Me.Hide

End Sub

 

Sub ChoisirFichier()

Explorateur

Dim texte As String

texte = Left(OpenFile.lpstrFile, InStr(1, OpenFile.lpstrFile, Chr(0)) - 1)

End Sub

 

tu as compris que le prog à envoyer par Alt+F8 c'est

ChoisirFichier,

le reste c'est de la mise en forme

Posté(e)

oops,

 

je viens te présenter mes excuses Patrick_35;

 

mais je viens souvent de la barre "dernière réponse tous forums"

et, dans ce cas, l'affichage se trouve sur le dernier message

et, cette fois-ci je n'ai pas remonté l'historique des réponses diffusées,

et, tel le sanglier moyen j'ai copié-collé ce que j'avais en archives.

 

je ferai plus attention la prochaine fois, promis.

 

amicalement

Posté(e)

Salut Didier

Je connais ton savoir vivre et ta délicatesse.

Ce n'est pas à toi que ce reproche est destiné.

 

Tu apportes une réponse qui peut compléter ce qui a été indiqué. Au contraire, ton intervention est la bienvenue.

 

Amicalement

Les Lisps de Patrick

Le but n'est pas toujours placé pour être atteint, mais pour servir de point de mire.

Joseph Joubert, 1754-1824

Posté(e)

Bonjour à Tous,

 

EXCUSE Patrick_35 mais je te remercis pour tes liens bien evidemment et pour ta réponse.

 

J'ai mis le lien en favoris.

 

je ferais plus attention la prochaine fois quand je remercierais de n'oublier personne.

 

Sans rancunes j'espere?

 

Pour didier:

 

je vais essayer tous de suite.

Merci.

 

A+

Posté(e)

didier:

 

Je viens d'essayer ton code de programme, c'est exactement ce que je recherche, la boite de dialogue qui s'ouvre pour la recherche d'un repertoire est parfaite. Elle est différente de celle que moi j'obtiens qui est moin pratique que celle obtenu avec ton code.

 

Par contre (et j'esperes ne pas être penible) je souhaites selectionner un repertoire, or dans ton code on peut selectionner que un fichier , comment je peux faire?

 

Merci

 

http://cjoint.com/?gjuKBoeBj7

 

A+

 

Posté(e)

Bonsoir,

 

Merci didier de la remarque... ;)

c'est un code que j'avais dans mes archives, Je l'avais fait avec fred e completer avec des p'tits recup sur le net. a l'epoque je m'en servait pour recuperer le chemin des fichiers d'un repertoire afin de pour effectuer des scripts sous excel. (d'ou ma confusion)

autrement j'espere ue tu te sent bien sur ton ile.....

 

@plus

 

LB

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité