VBA-Methoden: Arbeitsblätter, Druckvorschau und Drucken

Jeder, der am Computer mit Excel arbeitet, wird hin und wieder Ausdrucke ganzer Arbeitsblätter oder eines definierten Druckbereichs vornehmen.

In der Regel wird dem Druck eine Druckvorschau vorangehen.

Dieser Beitrag zeigt, wie mit einem Makro Druckvorschau und Drucken auf unterschiedliche Weise erledigt werden kann.

Weiterlesen „VBA-Methoden: Arbeitsblätter, Druckvorschau und Drucken“

Advertisements

VBA-Methoden: Eine Datei schließen

Wenn eine Datei geöffnet und bearbeitet wurde, soll sie irgendwann auch wíeder geschlossen werden. Das wiederum kann manuell oder mit einem Makro erledigt werden.

Das manuelle Schließen war schon im Beitrag „VBA-Methoden: Eine Datei speichern“ ein Thema. Dabei wurde vor dem Schließen eine Speicherung mit einem Makro vorgenommen.

Wenn du eine Datei mit einem Makro schließen willst, gibt es auch hierbei verschiedene Möglichkeiten.

Einfaches Schließen einer Datei

Für das Schließen der aktiven Datei wird die Methode Close genutzt. Das geht so:

Sub SchließenDatei1()
ActiveWorkbook.Close
End Sub

Wenn du vorher nicht gespeichert hast, bekommst du diese Mitteilung:

Datei_schließen1

Erst wenn du dann „Speichern“ klickst, wird die Datei geschlossen. Das kannst du umgehen, wenn du den Speichern-Befehl in deinen Code mit einbaust. Zwei Möglichkeiten hast du hierfür:

Sub SchließenDatei2()
ActiveWorkbook.Save
ActiveWorkbook.Close
End Sub

oder so:

Sub SchließenDatei3()
ActiveWorkbook.Close SaveChanges:=True
End Sub

Nach dem Close-Befehl wird zusätzlich die Anweisung gegeben, dass die Speicherung von Veränderungen vorgenommen wird.

Schließen einer zusätzlich geöffneten Datei

Wie im Beitrag „VBA_Methoden: Eine Datei öffnen“ erläutert, hast du z.B. eine weitere Datei manuell oder mit einem Makro geöffnet. Du hast deine Bearbeitungen vorgenommen und willst die Datei nun über dein Makro wieder schließen. Eine Speicherung siehst du ebenfalls vor.

Sub SchließenDatei4()
Workbooks(„VBA_Datenblatt.xlsx“).Save
Workbooks(„VBA_Datenblatt.xlsx“).Close
End Sub

oder so:

Sub SchließenDatei5()
Workbooks(„VBA_Datenblatt.xlsx“).Close SaveChanges:=True
End Sub

Öffnen, Bearbeiten, Speichern und Schießen einer zusätzlichen Datei

Jetzt willst du die Vorgänge vom Öffnen bis zum Schließen einer zusätzlichen Datei mit einem Makro ausführen lassen.

Im Arbeitsblatt „Tabelle1“ der Zusatzdatei soll in Zelle B10 der Text „Bearbeitung ist erfolgt“ eingetragen werden. Die Bearbeitung wird mit einer MsgBox bestätigt.

Sub SchließenDatei6()
Workbooks.Open Filename:=“C:\Excel\VBA_Datenblatt.xlsx“
Worksheets(„Tabelle1“).Range(„B10″)=“Bearbeitung ist erfolgt“
MsgBox(„Eintrag erfolgt“)
Workbooks(„VBA_Datenblatt.xlsx“).Save
Workbooks(„VBA_Datenblatt.xlsx“).Close
End Sub

Schließen einer Datei nach dem Speichern

Die Zusatzdatei soll sofort geschlossen werden, wenn gespeichert wurde.

Sub SchließenDatei7()
If Workbooks(„VBA_Datenblatt.xlsx“).Saved=True Then
Workbooks(„VBA_Datenblatt.xlsx“).Close
Else
MsgBox(„Datei ist nicht gespeichert“)
End If
End Sub


Wurde nicht gespeichert, kann in diesem Fall auch nicht geschlossen werden. Du erhälst deshalb die Mitteilung „Datei ist nicht gespeichert“ mittels einer MsgBox.

VBA-Methoden: Eine Datei umbenennen

Wenn du eine Datei „speicherst als“, hast du zwei Dateien. Einmal die ursprüngliche und einmal die mit einem neuen Namen und / oder einer anderen Extension.

Manchmal willst du eine Datei einfach nur umbenennen. Auch dazu bietet VBA eine Lösung.

1. Einfach umbenennen

Die umzubenennende Datei ist geschlossen. Deshalb wird jeweils der gesamte Pfad mit angegeben.

Sub Umbenennen1()
Name „C:\Excel\VBA_Datenblatt.xlsx“ As „C:\Excel\VBA_Datenblatt_2.xlsx“
End Sub

Wenn du das Ganze wieder rückgängig machen willst, tauscht du im zweiten Code die Bezeichnungen der Dateien.

Sub Umbenennen2()
Name „C:\Excel\VBA_Datenblatt_2.xlsx“ As „C:\Excel\VBA_Datenblatt.xlsx“
End Sub

2. Umbenennen mit Variablen

Es gibt dann noch die Möglichkeit, für den alten und neuen Namen jeweils eine Variable zu verwenden. Für das erste Beispiel sieht der Code dann so aus:

Sub Umbenennen3()
Dim strAltname As String
Dim strNeuname As String
strAltname=“C:\Excel\VBA_Datenblatt.xlsx“
strNeuname=“C:\Excel\VBA_Datenblatt_2.xlsx“
Name strAltname As strNeuname
End Sub

3. Umbenennen nach Liste

Vielfach gibt es eine ganze Reihe von Dateien in einem Ordner, die umbenannt werden sollen, beispielsweise wenn die Jahreszahl im Namen enthalten ist und ein neues Jahr begonnen hat.

Auf dem Laufwerk sollen z.B. die Dateien

  • VBA-Umsatz_2016.xlsx
  • VBA-Kosten_2016.xlsx
  • VBA-Mengen_2016.xlsx

liegen. Sie sollen jeweils die Jahreszahl 2017 erhalten.

Da es auch sehr viel mehr als diese drei Dateien sein können, kann eine Auflistung im Arbeitsblatt nützlich sein.

Datei_umbenennen1

Der folgende Code wird die Umbenennung der Dateien in Spalte B in die Dateien in Spalte C. vornehmen.

Das Makro wurde sehr ausführlich aufgeschrieben, Schritt für Schritt, so dass auch VBA-Neulinge die Prozedur verstehen sollten.

Sub Umbenennen4()
Dim intZeile As Integer
Dim strPfad As String
Dim strAltname As String
Dim strNeuname As String
Dim strAlt As String
Dim strNeu As String
strPfad=“C:\Excel\“
For intZeile=3 To 5
strAltname=Cells(intZeile,2).Value
strNeuname=Cells(intZeile,3).Value
strAlt=strPfad & strAltname
strNeu=strPfad & strNeuname
Name strAlt As strNeu
Next intZeile
End Sub

Komfortabler wäre es. die Dateien, die umbenannt werden sollen, per VBA aus dem Ordner auszulesen, sie in einer weiteren Spalte umbenennen und dann die Änderungen im Ordner vorzunehmen.

Das Auslesen von Dateien aus Ordnern ist aber eine andere Geschichte, die ich hier nicht behandle.

VBA-Methoden: Eine Datei neu erstellen und speichern als

Es kann innerhalb einer VBA-Prozedur erforderlich werden, eine neue Excel-Arbeitsmappe zu erstellen. Gleichzeitig sollte der neuen Datei dann auch ein Name und ein Ablageort zugewiesen werden.

Weiterlesen „VBA-Methoden: Eine Datei neu erstellen und speichern als“

VBA-Methoden: Eine Datei speichern

VBA ist Programmierung. Zu einer ordentlichen Prozedur sollte es immer gehören, die Datei zum Abschluss zu speichern.

Das kann manuell geschehen, aber auch automatisch.

Dieser Beitrag soll zwei Wege dazu aufzeigen.

Weiterlesen „VBA-Methoden: Eine Datei speichern“

VBA-Methoden: Eine Datei öffnen

Muss eine Datei mit VBA geöffnet werden? In der Regel nicht. Notwendig kann es aber innerhalb einer laufenden Prozedur werden, wenn Daten eben aus dieser Datei benötigt werden.

Wenn es um die Programmierung des Öffnens einer Datei geht, ist es gleichgültig, ob Daten in diese Datei eingetragen oder ob Daten aus dieser Datei entnommen werden sollen.

Dieser Beitrag unterscheidet zwei Fälle. Zuerst geht es um das einfache Öffnen, dann um das von einer Entscheidung abhängige Öffnen.

Weiterlesen „VBA-Methoden: Eine Datei öffnen“

Mit der Methode Evaluate in VBA Texte berechnen

Im letzten Beitrag habe ich dir gezeigt, wie mit dem Excel4-Makro AUSWERTEN in Excel mit Formeltexten gerechnet werden kann.

In VBA geht das natürlich auch. Hier wird die Methode EVALUATE verwendet. Darum soll es in diesem Beitrag gehen.

Weiterlesen „Mit der Methode Evaluate in VBA Texte berechnen“