Thema Datum  Von Nutzer Rating
Antwort
Rot Ordner und Dateinamen auslesen
29.11.2012 00:56:46 Christian
NotSolved

Ansicht des Beitrags:
Von:
Christian
Datum:
29.11.2012 00:56:46
Views:
1667
Rating: Antwort:
  Ja
Thema:
Ordner und Dateinamen auslesen

Hey Leute,

ich soll ein Vba Programm erstellen das Dateinamen ausliest, diese in eine excel Tabelle schreibt, mit Verlinkung. Zu dieser Datenreihe die sagen wir in Spalte B steht, sollen nun werte in die selbe reihe manuel hinzugefuegt werden. Das funktioniert alles Gut solange datein in den ordnern hinzugefuegt oder geloescht werden, jedoch habe ich folgende probleme:

-Das Verschieben von Dateien:

dadurch zerhaut es mir die ganze Datenbank

-Das Umbenennen von Dateien:

-Dateiname wird umgeschrieben jedoch werden die haendisch eingetragenen werte geloescht.

 

Hier mein CODE:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
Option Explicit
 
Private Declare Function SearchTreeForFile Lib "imagehlp.dll" ( _
 
ByVal RootPath As String, _
 
ByVal InputPathName As String, _
 
ByVal InputPathBuffer As String) As Long
 
Private Const MAX_PATH = 260
 
Public Sub Contract_Summary_Scope_of_Work()
 
Dim objFSO As Object, objFolder As Object
 
Dim objSubfolder As Object, colSubfolders As Object
 
Dim strPfad As String, strDatei As String
 
Dim strTemp As String * MAX_PATH
 
Dim lngRow As Long, lngReturn As Long, ialngIndex As Long
 
Dim avntFiles As Variant
 
Dim s As String
 
  
 
strPfad = "L:\AL_Sales\MELsales\2011 SALES\2011 Current Projects\" & [E3] & "\01-Contract Summary & Scope of Works\"
 
Set objFSO = CreateObject("Scripting.FileSystemObject")
 
Set objFolder = objFSO.GetFolder(strPfad)
 
Set colSubfolders = objFolder.Subfolders
 
Application.ScreenUpdating = False
 
With Worksheets("01-ContractSummaryScopeOfWork")
 
  
 
avntFiles = .Range(.Cells(1, 5), .Cells( _
 
.Rows.Count, 5).End(xlUp)).Value2
 
If IsArray(avntFiles) Then
 
For ialngIndex = UBound(avntFiles) To 10 Step -1
 
lngReturn = SearchTreeForFile(strPfad, _
 
avntFiles(ialngIndex, 1), strTemp)
 
If lngReturn = 0 Then .Rows(ialngIndex).delete
 
Next
 
End If
 
lngRow = 9
 
strDatei = Dir$("L:\AL_Sales\MELsales\2011 SALES\2011 Current Projects\" & [E3] & "\01-Contract Summary & Scope of Works\*.*")
 
Do Until strDatei = ""
 
  
 
lngRow = lngRow + 1
 
If .Cells(lngRow, 5).Value <> strDatei Then
 
.Rows(lngRow).Insert
 
  
 
.Cells(lngRow, 5).Value = strDatei
 
.Cells(lngRow, 7).Value = objFolder.Name
 
.Cells(lngRow, 5).Hyperlinks.Add Worksheets("01-ContractSummaryScopeOfWork").Cells(lngRow, 5), strPfad + strDatei, "Klicken, um zu öffnen."
 
.Cells(lngRow, 7).Hyperlinks.Add Worksheets("01-ContractSummaryScopeOfWork").Cells(lngRow, 7), strPfad, "Klicken, um zu öffnen."
 
End If
 
strDatei = Dir$
 
Loop
 
For Each objSubfolder In colSubfolders
 
strDatei = Dir$("L:\AL_Sales\MELsales\2011 SALES\2011 Current Projects\" & [E3] & "\01-Contract Summary & Scope of Works\" & objSubfolder.Name & "\*.*")
 
Do Until strDatei = ""
 
lngRow = lngRow + 1
 
If .Cells(lngRow, 5).Value <> strDatei Then
 
.Rows(lngRow).Insert
 
  
 
.Cells(lngRow, 5).Value = strDatei
 
.Cells(lngRow, 7).Value = objSubfolder.Name
 
  
 
.Cells(lngRow, 5).Hyperlinks.Add Worksheets("01-ContractSummaryScopeOfWork").Cells(lngRow, 5), objSubfolder.Path + "\" + strDatei, "Klicken, um zu öffnen."
 
.Cells(lngRow, 7).Hyperlinks.Add Worksheets("01-ContractSummaryScopeOfWork").Cells(lngRow, 7), objSubfolder.Path, "Klicken, um zu öffnen."
 
End If
 
  
 
strDatei = Dir$
 
Loop
 
Next
 
  
 
  
 
End With
 
Dim n As Integer
 
For n = 1 To lngRow
 
If Worksheets("01-ContractSummaryScopeOfWork").Range("E" & n + 9) <> "" Then
 
Worksheets("01-ContractSummaryScopeOfWork").Range("A" & n + 9) = n
 
End If
 
Next n
 
  
 
  
 
Set objFolder = Nothing
 
Set colSubfolders = Nothing
 
Set objFSO = Nothing
 
Application.ScreenUpdating = True
 
  
 
  
 
End Sub

Fuer jede hilfe bin ich unendlich dankbar, ich komme einfach nicht weiter.

Gruss chris


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Ordner und Dateinamen auslesen
29.11.2012 00:56:46 Christian
NotSolved