Dim dat As Variant
Dim zeile As Long
'Das Array "spalten" enthält alle Spalten für die dieser Code hier gilt.
Dim spalten As Variant
'Die Variable "gültig" wird verwendet um zu prüfen ob der Code von einer gültigen Spalte aufgerufen wurde.
Dim gültig As Boolean
'Es werden jetzt alle Spalten die betroffen sind in das Array "spalten" eingetragen.
spalten = Array(5, 6)
'Code wird nur ausgeführt wenn die oben definierte Spalte aktiviert ist.
For a% = 0 To UBound(spalten)
If ActiveCell.Column = spalten(a%) Then
gültig = True
Exit For
End If
Next a%
If gültig = False Then
Cancel = True
Exit Sub
End If
'Dateifilter festlegen, letztes Argument gibt an ob Mehrfachauswahl erlaubt ist (True)
'oder nicht (dann aus False ändern).
dat = Application.GetOpenFilename("Exceldateien (*.xls), *.xls, Textdateien (*.txt), *.txt, Grafikdateien (*.jpg;*.bmp;*.gif), *.jpg;*.bmp;*.gif", , , , True)
'Prüfen ob zumindest eine Datei markiert wurde, wenn nicht hier Abbrechen
If Not IsArray(dat) Then
Cancel = True
Exit Sub
End If
'Die aktuelle Zeile ermitteln und den darin bereits enthaltenen Text löschen.
zeile = ActiveCell.Row
Tabelle1.Cells(zeile, ActiveCell.Column) = ""
'Übergebene Dateinamen in die definierte Zelle eintragen.
For a% = 1 To UBound(dat)
Tabelle1.Cells(zeile, ActiveCell.Column) = Tabelle1.Cells(zeile, ActiveCell.Column) & Dir(dat(a%))
If a% < UBound(dat) Then Tabelle1.Cells(zeile, ActiveCell.Column) = Tabelle1.Cells(zeile, ActiveCell.Column) & "<>"
Next a%
'Dadurch wird das übliche Doppelklick-Ereignis verhindert, wenn es
'ausgeführt werden soll True auf False ändern oder Zeile komplett löschen.
Cancel = True