Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Per VBA Text einfügen, Makro ausführen und Tabelle speichern

Per VBA Text einfügen, Makro ausführen und Tabelle speichern
09.10.2023 12:47:03
Timo
Hallo zusammen,

es wäre super, wenn ihr mir helfen könntet.
Da ich folgendes wirklich sehr oft am Tag machen muss, würde ich mir sehr gerne die Arbeit etwas erleichtern.

Aus einem externen Programm kopiere ich mir Umsatzdaten und füge diese per STRG-V in eine leere Excel Datei ein, in der nur ein Makro hinterlegt ist und praktisch als Vorlage dient. Durch das Makro wird die eingefügte Tabelle dann etwas geordnet, ungewollte Spalten gelöscht und die Umsätze am Ende der Tabelle addiert.
Die so entstandene Excel Datei speichere ich dann als Excel Arbeitsmappe - ohne Makros.

Beim speichern vergesse ich sehr häufig das manuelle Umschalten von "Speichern unter" -> Excel Arbeitsmappe mit Makros in eine normale Arbeitsmappe ohne Makros. Mit Makros zu speichern ist schlecht, da viele die so versendete Datei nicht öffnen weil sie Markos aktivieren müssten und Angst vor eventuellen Viren haben.

Mein Plan wäre es nun, in meiner Vorlage mit dem Makro einfach eine Schaltfläche zu erstellen die per Klick nun den vorher kopierten Text aus der Zwischenablage in Excel einfügen kann, das Marko für die Ordnung der Tabelle ausgeführt wird und bestenfalls direkt das "speichern unter" Fenster geöffnet wird wo der Dateityp bereits umgestellt ist in Excel-Arbeitsmappe und ich nur noch einen Dateinamen angeben müsste.

Oder es wird automatisch gespeichert und als Dateiname der Text aus der Zelle A4 als Dateiname gewählt. Aber das wäre nur ein Bonus.

Das Makro heißt "Formatierung".

Ist das möglich? Könnte mir hier jemand helfen?

Vielen Dank für Eure Hilfe.
LG Timo

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per VBA Text einfügen, Makro ausführen und Tabelle speichern
09.10.2023 13:44:49
daniel
Hi
ich würde im Button folgendes ausführen:
1. neue leer Datei anlegen (Workbooks.Add)
2. Zwischenablage einfügen (ActiveSheet.Paste)
3. Speichernamen abfragen (Application.GetSaveAsFileName)
4. Datei im Makro unter dem angegeben Namen speichern. Dabei kannst du dann sicherstellen, dass immer als xlsx gespeichert wird, auch wenn du im Get..FileName was anderes ausgewählt hast.
GetSaveAsFileName sieht aus wie der Speicherdialog, schreibt aber nur den Dateinamen in eine Variable, so das du hinterher im Makro so speichern kannst, wie du das möchtest.

Gruß Daniel
Anzeige
AW: Per VBA Text einfügen, Makro ausführen und Tabelle speichern
10.10.2023 11:40:33
Timo
Hallo Daniel,

erst einmal vielen Dank für Deine Hilfe.

Klappt soweit sehr gut. Nur was ich nicht verstanden habe ist Punkt 4 mit dem Makro.

Mit Deinem Code funktioniert es wirklich super, dass eine neue Arbeitsmappe geöffnet, die Zwischenablage eingefügt und ein Speichern unter Fenster geöffnet wird. Wenn jetzt vor dem Öffnen des Speichern Fensters noch das Makro "Formatierung" ausgeführt werden würde, wäre es perfekt.

Aber vielleicht liegt es dann an Punkt 4 der mir nicht so klar ist?

Vielen Dank vorab und liebe Grüße
Timo
Anzeige
AW: Per VBA Text einfügen, Makro ausführen und Tabelle speichern
10.10.2023 13:22:47
Oberschlumpf
Hi Timo,

erst dein formatieren-Makro durchlaufen lassen - und dann - als XLSX-Datei speichern = erledigt....würde ich sagen.
Und du?

Ciao
Thorsten
AW: Per VBA Text einfügen, Makro ausführen und Tabelle speichern
11.10.2023 07:53:40
Timo
Hallo Oberschlumpf,

ok also müsste ich das Makro doch manuell starten.
Ich dachte man könnte es so programmieren, dass es zwischen "Zwischenablage einfügen" und "Speichern unter...." automatisch ausgeführt werden würde. So dass ich tatsächlich nur die Schaltfläche klicken muss und alles andere automatisch passiert. Natürlich am Ende noch den Dateinamen eingeben und gut.

LG Timo

Anzeige
AW: Per VBA Text einfügen, Makro ausführen und Tabelle speichern
11.10.2023 10:13:13
Oberschlumpf
Hi Timo,

"...kopiere ich mir Umsatzdaten und füge diese per STRG-V in eine leere Excel Datei ein, in der nur ein Makro hinterlegt ist und praktisch als Vorlage dient..."

Handelt es sich bei deiner eigtl leeren Datei wirklich um eine Vorlage = .XLTM-Datei, oder nennst du diese Datei nur "Vorlage", und es handelt sich um eine normale .XLSM-Datei?

hmm...da man abhängig davon, ob xltm oder xlsm-Datei, unterschiedlich programmieren muss, und zumindest ich keine Lust habe, beide Lösungswege zu programmieren, und schon jetzt zu wissen, dass eine Lösungsidee nicht passen wird, würde ich vorschlagen:

Zeig doch mal bitte per Upload deine leere Datei mit Makro (wenn es tatsächlich eine XLTM-Datei ist, musst du diese vor dem Upload in eine ZIP-Datei packen)

Ciao
Thorsten
Anzeige
AW: Per VBA Text einfügen, Makro ausführen und Tabelle speichern
12.10.2023 12:54:31
Timo
Hi,

sorry, wenn ich es komplizierter beschreibe, als es tatsächlich ist.
Also bisher - ohne diesen VBA Code für die Schaltfläche habe ich mir eine leere Excel Datei erstellt, in der nur das Makro zur Formatierung der Tabelle liegt.
Diese "Vorlage" heißt: Vorlage_Makro.xlsm

In diese wird meine vorher kopierten Umsätze eingefügt, Makro manuell gestartet und somit Tabelle formatiert und dann wird gespeichert.

Nun habe ich in dieser "Vorlage_Makro.xlsm" eine Schaltfläche hinterlegt, die per Klick dann folgenden Code ausführt:

Sub Schaltfläche1_Klicken()

Workbooks.Add
ActiveSheet.Paste
Application.GetSaveAsFilename

End Sub


Nach Klick wird eine neue Exceltabelle geöffnet, alles was ich in der Zwischenablage habe eingefügt und ein speichern unter Fenster geöffnet.

Und genau nach dem Einfügen der Zwischenablage (nach ActiveSheet.Paste) soll zuerst das Makro Formatierung ausgeührt werden.

Die 2 Beispieltabellen kann ich leider erst heute Abend anhängen. Mache ich direkt nach Feierabend.

Danke für die Hilfe!!

Liebe Grüße
Timo






Anzeige
AW: Per VBA Text einfügen, Makro ausführen und Tabelle speichern
12.10.2023 16:22:37
Oberschlumpf
Hi Timo,

vllt kann ich dir nun auch ohne Bsp-Datei per Upload helfen.

Änder deinen Code um wie folgt:


Sub Schaltfläche1_Klicken()
Workbooks.Add
ActiveSheet.Paste
'GENAU HIER der Name deines formatieren-Makros
Application.GetSaveAsFilename
End Sub


Wenn diese Anpassung nicht hilft, dann bitte doch per Upload deine Bsp-Datei mit allen Makros.

Ciao
Thorsten
Anzeige
AW: Per VBA Text einfügen, Makro ausführen und Tabelle speichern
13.10.2023 06:24:21
Timo
Hallo Thorsten,

manchmal kann es so einfach sein :)

Du bist mein Held, super es funktioniert klasse.
Das wird mir echt einige Klicks sparen und gefällt mir richtig gut.

Ganz lieben Dank für die Unterstützung und Hilfe. Ich freue mich total.

Liebe Grüße
Timo
Anzeige
büdde, büdde :-) und gerne - owT
13.10.2023 06:38:51
Oberschlumpf
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Per VBA Text einfügen und Tabelle speichern


Schritt-für-Schritt-Anleitung

  1. Neue Arbeitsmappe erstellen: Verwende den folgenden VBA-Code, um eine neue Excel-Arbeitsmappe zu erstellen:

    Workbooks.Add
  2. Zwischenablage einfügen: Füge die Daten aus der Zwischenablage in die neue Arbeitsmappe ein:

    ActiveSheet.Paste
  3. Makro für die Formatierung ausführen: Rufe dein Makro "Formatierung" auf, um die eingefügten Daten zu bearbeiten. Achte darauf, dass dieser Schritt nach dem Einfügen der Daten erfolgt:

    Formatierung
  4. Speichern unter Dialog öffnen: Verwende Application.GetSaveAsFilename, um den Benutzer nach einem Dateinamen zu fragen:

    Application.GetSaveAsFilename
  5. Datei speichern: Speichere die Datei als xlsx, um sicherzustellen, dass keine Makros enthalten sind.


Häufige Fehler und Lösungen

  • VBA Fehler in der Zwischenablage: Wenn beim Einfügen der Daten ein Fehler auftritt, stelle sicher, dass die Daten korrekt in die Zwischenablage kopiert wurden und dass keine weiteren Daten in der Zwischenablage sind. Du kannst die Zwischenablage vor dem Einfügen leeren:

    Application.CutCopyMode = False
  • Makro wird nicht ausgeführt: Stelle sicher, dass der Name des Makros korrekt geschrieben ist und dass es in der gleichen Arbeitsmappe vorhanden ist.


Alternative Methoden

  • Excel als Text einfügen: Anstelle von ActiveSheet.Paste kannst du auch ActiveSheet.Range("A1").Value = Clipboard.GetText verwenden, um den Inhalt der Zwischenablage direkt in eine Zelle einzufügen.

  • Daten in eine andere Arbeitsmappe per VBA kopieren: Du kannst auch Daten aus einer bestehenden Arbeitsmappe in eine neue Arbeitsmappe kopieren, indem du die entsprechenden Objekte angibst.


Praktische Beispiele

Hier ist ein vollständiges Beispiel für ein Makro, das alle Schritte zusammenfasst:

Sub Schaltfläche1_Klicken()
    Workbooks.Add
    ActiveSheet.Paste
    Formatierung ' Dein Formatierungsmakro ausführen
    Dim Dateiname As Variant
    Dateiname = Application.GetSaveAsFilename(FileFilter:="Excel-Arbeitsmappe (*.xlsx), *.xlsx")
    If Dateiname <> False Then
        ActiveWorkbook.SaveAs Filename:=Dateiname, FileFormat:=xlOpenXMLWorkbook
    End If
End Sub

Tipps für Profis

  • Makros einfügen: Um mehrere Makros in einer Arbeitsmappe zu verwalten, kannst du sie in einem Modul gruppieren. So behältst du den Überblick über deine Makros.

  • Excel Makro beim Speichern ausführen: Du kannst auch das Workbook_BeforeSave-Ereignis nutzen, um ein Makro automatisch beim Speichern auszuführen.


FAQ: Häufige Fragen

1. Wie kann ich Makros in Excel einfügen?
Du kannst Makros in Excel über das VBA-Editor-Fenster einfügen, das du über ALT + F11 öffnest. Dort kannst du Module erstellen und deinen VBA-Code hinzufügen.

2. Was ist der Unterschied zwischen .xlsm und .xlsx?
Die .xlsm-Datei enthält Makros, während die .xlsx-Datei keine Makros unterstützt. Daher sollte beim Speichern darauf geachtet werden, dass die richtige Dateiendung gewählt wird.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige