Kategorie: VBA
Excel – Geöffnete Dateien gezielt auslesen – VBA
In Excel habe ich mehrere Dateien geöffnet. Zwischen diesen möchte ich über einen Listbox-Dialog wählen und die Inhalte sämtlicher Tabellenblätter einlesen können.
Der Code wird in den Excel Videos # 389 und # 390 erläutert.
Code im Modul:
Option Explicit
Sub FormAufrufen()
frmAufruf.Show
End Sub
Code des Formulars:
Option Explicit
Private Sub cmdAbbruch_Click()
Unload Me
End Sub
Private Sub cmdOK_Click()
Dim wksAufruf As Worksheet
Dim wkbAufruf As Workbook
Dim wksActive As Worksheet
Dim i As Integer
Dim lngLetzteZeile As Long
On Error GoTo ErrorHandler
Set wksActive = ThisWorkbook.Worksheets(„Zusammenfassung“)
Set wkbAufruf = Workbooks(lstDateien.Value)
i = 1
lngLetzteZeile = wksActive.Cells(Rows.Count, 1).End(xlUp).Row
For Each wksAufruf In wkbAufruf.Worksheets
wksActive.Cells(lngLetzteZeile + i, 1).Value = wksAufruf.Name
wksActive.Cells(lngLetzteZeile + i, 2).Value = Application.WorksheetFunction.Sum(wksAufruf.Range(„A:A“))
wksActive.Cells(lngLetzteZeile + i, 3).Value = wkbAufruf.Name
i = i + 1
Next wksAufruf
Set wksAufruf = Nothing
Set wkbAufruf = Nothing
Set wksActive = Nothing
Unload Me
Exit Sub
ErrorHandler:
MsgBox „Sie haben wohl keine Datei ausgewählt.“, vbInformation, „Datei wählen“
Exit Sub
End Sub
Private Sub UserForm_Initialize()
Dim wkb As Workbook
For Each wkb In Workbooks
lstDateien.AddItem wkb.Name
Next wkb
Set wkb = Nothing
End Sub
Anschließend besteht die Aufgabe, zwischen den geschlossenen Dateien in einem Verzeichnis wählen zu können. Dafür muss das Verzeichnis vorab ausgelesen werden, um über die Listbox angeboten werden zu können. To be continued…
Erstellung der ListBox mit den Dateinamen
Videolink: http://youtu.be/BRkp9JPcvN0
Auswertung der Tabellenblätter der ausgewählten Arbeitsmappe
Videolink: http://youtu.be/YEKY7n26G20
Excel VBA – Dateieigenschaften verändern
Über VBA können die Eigenschaften einer Arbeitsmappe verändert werden. Die Eigenschaften müssen zum Teil manuell gefüllt werden (Firma, Schlüsselwörter, Kategorie), zum Teil setzen diese sich bei der Arbeit mit der Mappe automatisch zusammmen (Author, Erstelldatum).
Die Eigenschaften sind unter Datei – Informationen im rechten Bereich zu finden.
Das folgende Makro listet alle Eigenschaften der ActiveWorkbook.BuiltinDocumentProperties auf:
Sub Liste_der_Eigenschaften()
Dim intWert As Integer
'Quelle: "http://msdn.microsoft.com/de-de/library/office/ff197172(v=office.15).aspx"
intWert = 1
Worksheets(1).Activate
For Each prop In ActiveWorkbook.BuiltinDocumentProperties
Cells(intWert, 1).Value = intWert
Cells(intWert, 2).Value = prop.Name
intWert = intWert + 1
Next
End Sub
Nicht alle Dokumenteigenschaften sind direkt über Datei – Informationen einsehbar. Andere werden errechnet. Folgende Liste resultiert im ersten Tabellenblatt:
1 Title
2 Subject
3 Author
4 Keywords
5 Comments
6 Template
7 Last author
8 Revision number
9 Application name
10 Last print date
11 Creation date
12 Last save time
13 Total editing time
14 Number of pages
15 Number of words
16 Number of characters
17 Security
18 Category
19 Format
20 Manager
21 Company
22 Number of bytes
23 Number of lines
24 Number of paragraphs
25 Number of slides
26 Number of notes
27 Number of hidden Slides
28 Number of multimedia clips
29 Hyperlink base
30 Number of characters (with spaces)
31 Content type
32 Content status
33 Language
34 Document version
Die Zahlen oder die Namen können nun genutzt werden, die Eigenschaften des aktiven Dokuments zu verändern.
Über das folgende Makro setze ich die Dokumenteigenschaften auf von mir vordefinierte Wert:
Sub Eigenschaften_Arbeitsmappe()
'Andreas Thehos, 2013
If Workbooks.Count >= 1 Then 'Prüft, ob mindestens eine Arbeitsmappe vorliegt
With ActiveWorkbook.BuiltinDocumentProperties 'Setzt die Eigenschaften der aktiven Mappe
.Item("Title") = "YouTube-Tutorial athehos"
.Item("Keywords") = "Excel, Office, Thehos, athehos"
.Item("Comments") = "Excel online lernen"
.Item("Category") = "YouTube, Excel, Office, athehos"
.Item("Subject") = "YouTube-Tutorial"
.Item("Hyperlink base") = "http://thehosblog.com"
.Item("Creation date") = Now
.Item("Company") = "at IT-Training & Beratung"
.Item("Manager") = "Andreas Thehos"
.Item("Author") = "Andreas Thehos"
End With
End If
End Sub
Zum YouTube-Video:
Videolink: http://www.youtube.com/watch?v=r3WBjZttn0o


Du muss angemeldet sein, um einen Kommentar zu veröffentlichen.