Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datenexport





Frage

Hallo zusammen, ich möchte Daten aus einem Excel sheet in eine andere Exceldatei exportieren. Aber ich möchte nur die Zahlen, nicht die Überschriten exportieren und dann imMasterdokument einfügen. Ziel sollte sein: 1 Masterdokument mit allen Werten und zusätzliche Unterdateien mit den spezififschen Werten. Könnte das mit VBA automatisiert werden, dass beim drücken des Speicherbuttons eine Abfrage startet, in welche Masterdatei die Daten hin exportiert werden sollen?

Antwort 1 von coros

Moin forrest,

schön wäre es jetzt gewesen, wenn Du auch noch geschrieben hättest, in welcher zeile Deine Überschriften stehen und welcher Datenbereich kopiert werden soll. Stehen die Überschriften z.B. in Zeile 1 oder in Zeile 3 und Zeile 54...? Ist der Datenbereich A1:C5 oder A10:Z100 und A250:G305...? Wie Du siehst, es gibt undendlich viele Möglichkeiten. Daher kommt von mir ein neutrales makro. Kopiere nachfolgendes Makro in ein StandardModul und weise es einer Befehlsschaltfläche zu.

Sub Datei_öffnen_und_Daten_kopieren()
Dim Letzte_Zelle As Long, Letzte_Spalte As Integer, Dateiname As Variant, _
Blattname As String, Aktiver_Blattname As String
Application.ScreenUpdating = False
Letzte_Zelle = ActiveSheet.Cells.SpecialCells(xlLastCell).Row
Letzte_Spalte = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
Aktiver_Blattname = ActiveSheet.Name
Dateiname = Application.InputBox _
("Bitte geben Sie den Namen der Datei an, in die die Daten kopiert werden sollen", _
"Eingabeaufforderung", Type:=1 + 2)
If Dateiname = False Or Dateiname = "" Then GoTo Ende
Sheets(Aktiver_Blattname).Range(Cells(2, 1), _
Cells(Letzte_Zelle, Letzte_Spalte)).Copy
ChDir "C:"
On Error GoTo Fehler
Workbooks.Open Filename:="C:" & Dateiname & ".xls"
Letzte_Zelle = ActiveSheet.Cells.SpecialCells(xlLastCell).Row + 1
Blattname = ActiveSheet.Name
Sheets(Blattname).Cells(Letzte_Zelle, 1).PasteSpecial Paste:=xlPasteValues, _
Operation:=xlNone, SkipBlanks:=False, Transpose:=False
Application.DisplayAlerts = False
Workbooks(Dateiname & ".xls").Save
Workbooks(Dateiname & ".xls").Close
Application.DisplayAlerts = True
GoTo Ende
Fehler:
MsgBox "Die Datei gibt es nicht"
Ende:
End Sub


Bei dem Makro wird eine inputBox (Eingabefenster) beim Starten geöffnet. In diese Eingabe muss der Dateiname ohne die Endung ".xls" eingegeben werden. Bedingung ist allerdings, das die Datei, die geöffnet werden soll, sich auf Platte C befindet. Danach wird der Bereich A2:letzte beschriebene Spalte und zeile kopiert und in die geöffnete Datei eingefügt. Danach wird die Datei gespeichert und wieder geschlossen.
Wenn Die Datei sich nicht auf Platte C befindet, dann musst Du in dem Makro in den Zeilen

ChDir "C:"

und

Workbooks.Open Filename:="C:" & Dateiname & ".xls"

den Laufwerksbuchstaben C ändern. Dort musst Du eventuell auch noch angeben in welchem Unterordner die Datei sich befindet, wenn sie nicht direkt auf Platte C vorhanden ist.

Ich hoffe, Du kannst was damit anfangen. Wenn nicht, dann melde Dich. Allerdings solltest Du dann mal ein paar mehr Angaben dazu machen, wo die Daten sich befinden (Bereich), wohin sie kopiert werden sollen (Bereich) usw. Je mehr Infos man hat, um so genauer wird dann das Ergebnis des Lösungsvorschlags.

Wenn Du nicht weißt, wie Du den Code in Deine Exceldatei bekommst, dann schau mal auf meiner HP in der Rubrik Anleitungen und dort bei Anleitung zum VBA Projekt “Modul" nach. Die bebilderte Anleitung sollte Dir dabei helfen.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von forrest

Hoi Coros,
vielen Dank für Dein Programm! Wahnsinn.
Die Daten befinden sich in den Feldern von A4-K...
Grüße und nochmals Danke

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: