PDA

Vollständige Version anzeigen : Code ändern


t_bern
10.03.2009, 14:12
hallo zusammen,

ich hab im internet einen code gefunden, der mir einen ordnerinhalt ausliest und mir hyperlinks in einer excelmappe erstellt.

die liste wird erzeugt und es ist auch fast alles perfekt, nur ich möchte mit der auflistung erst ab der zweiten zelle beginnen (also ab a2)

wie muss ich den code anpassen ?

danke für die hilfe Private Sub CommandButton1_Click()

Dim icount As Integer
Dim i, j As Integer
Worksheets(1).Columns(1).Clear



With Application.FileSearch
.NewSearch
.LookIn = "c:\"
'
.Filename = "*.*"
.SearchSubFolders = False
.Execute
icount = .FoundFiles.Count
For i = 1 To icount
Worksheets(1).Hyperlinks.Add anchor:=Worksheets(1).Cells(i, 1), Address:=.FoundFiles(i)
For j = Len(Cells(i, 1)) To 1 Step -1
If Cells(i, 1).Characters(j, 1).Text = "\" Then
Cells(i, 1) = Right(Cells(i, 1), Len(Cells(i, 1)) - j)
Exit For
End If
Next j
Next i
End With


End Sub

Backowe
10.03.2009, 14:31
Hi,

For i = 2 To icount

t_bern
10.03.2009, 14:35
hi jürgen,

er lässt mir einfach den ersten eintrag weg.
(das erste dokument fehlt)

ich bräuchte eine liste über alle dokumente ab der zweiten zelle.

gruß

IngGi
10.03.2009, 14:48
Hallo t_bern,

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> CommandButton1_Click()
&nbsp;
<span class="TOKEN">Dim</span> icount <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
<span class="TOKEN">Dim</span> i As Integer, j <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
Worksheets(1).Columns(1).Clear
&nbsp;
&nbsp;
&nbsp;
<span class="TOKEN">With</span> Application.FileSearch
.NewSearch
.LookIn = &quot;c:\&quot;
<span class="REM">'</span>
.Filename = &quot;*.*&quot;
.SearchSubFolders = <span class="TOKEN">False</span>
.Execute
icount = .FoundFiles.Count
<span class="TOKEN">For</span> i = 1 <span class="TOKEN">To</span> icount
Worksheets(1).Hyperlinks.Add anchor:=Worksheets(1).Cells(i + 1, 1), Address:=.FoundFiles(i)
<span class="TOKEN">For</span> j = Len(Cells(i + 1, 1)) <span class="TOKEN">To</span> 1 <span class="TOKEN">Step</span> -1
<span class="TOKEN">If</span> Cells(i + 1, 1).Characters(j, 1).Text = &quot;\&quot; <span class="TOKEN">Then</span>
Cells(i + 1, 1) = Right(Cells(i + 1, 1), Len(Cells(i + 1, 1)) - j)
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> j
<span class="TOKEN">Next</span> i
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
&nbsp;
&nbsp;
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span>&nbsp;</pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Wobei die Deklaration der Variablen i als Integervariable für bis zu 32767 Dateien in einem Ordner ausreicht. Ansonsten müsste die Variable als Longvariable deklariert werden.

Gruß Ingolf

Backowe
10.03.2009, 14:50
Hi,

sorry, meine erste Antwort war etwas unüberlegt! ;o)

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Private Sub</span> CommandButton1_Click()
&nbsp;
<span class="TOKEN">Dim</span> icount <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
<span class="TOKEN">Dim</span> i, j <span class="TOKEN">As</span> <span class="TOKEN">Integer</span>
Worksheets(1).Columns(1).Clear
&nbsp;
<span class="TOKEN">With</span> Application.FileSearch
.NewSearch
.LookIn = &quot;c:\&quot;
&nbsp;
.Filename = &quot;*.*&quot;
.SearchSubFolders = <span class="TOKEN">False</span>
.Execute
icount = .FoundFiles.Count
<span class="TOKEN">For</span> i = 1 <span class="TOKEN">To</span> icount
Worksheets(1).Hyperlinks.Add anchor:=Worksheets(1).Cells(i + 1, 1), Address:=.FoundFiles(i)
<span class="TOKEN">For</span> j = Len(Cells(i + 1, 1)) <span class="TOKEN">To</span> 1 <span class="TOKEN">Step</span> -1
<span class="TOKEN">If</span> Cells(i + 1, 1).Characters(j, 1).Text = &quot;\&quot; <span class="TOKEN">Then</span>
Cells(i + 1, 1) = Right(Cells(i + 1, 1), Len(Cells(i + 1, 1)) - j)
<span class="TOKEN">Exit For</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> j
<span class="TOKEN">Next</span> i
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)