datei import ins aktive sheet per Makro
Hallo,
bin komplett neu auf dem EXCEL-VBA Gebiet.
Hab eine Aufgabe, die ich natürlich versuche selber zu lösen denn nur so lern ich!
Bin schon einigee Schritte weitergekommen doch an einer stelle geb ich einfach auf weiterzusuchen im Netz!
Hoffe das mir hier einer helfen wird!
Schon mal im vorraus das wird nicht meine einzíge Frage hier!
Kommen noch einige knifflige Punkte bei der Aufgabe auf mich!
Aber wie schon erwähnt versuche diese erstmal selber zu lösen, dann frage ich euch um Hilfe!
Also los gehts, folgendes Problem:
will eine Datei in das Aktive-sheet eines AktivenWorkbooks einfügen ( oder in ein anderes sheet des aktiven Workbooks )
hab da schon einen code aber der öffnet mir eine deue xls Datei ist auch aus dem code zu erkennen so weit bin ich,
schaffe es leider nicht die Zeile (bzw. den Code) so zu ändern, dass er mir die Datei (wie oben beschrieben importiert)
soll ganz normal in die 1 spalte eingefügt werden!
Danke euch für die Hilfe im Vorraus
Ok hab das ganze selber gelöst
falls jemand das selbe problem hat hier der CODE:
[Edit Biber] "schnell, sachlich und effizient" Code-Tags nachgezogen. [/Edit]
bin komplett neu auf dem EXCEL-VBA Gebiet.
Hab eine Aufgabe, die ich natürlich versuche selber zu lösen denn nur so lern ich!
Bin schon einigee Schritte weitergekommen doch an einer stelle geb ich einfach auf weiterzusuchen im Netz!
Hoffe das mir hier einer helfen wird!
Schon mal im vorraus das wird nicht meine einzíge Frage hier!
Kommen noch einige knifflige Punkte bei der Aufgabe auf mich!
Aber wie schon erwähnt versuche diese erstmal selber zu lösen, dann frage ich euch um Hilfe!
Also los gehts, folgendes Problem:
will eine Datei in das Aktive-sheet eines AktivenWorkbooks einfügen ( oder in ein anderes sheet des aktiven Workbooks )
hab da schon einen code aber der öffnet mir eine deue xls Datei ist auch aus dem code zu erkennen so weit bin ich,
schaffe es leider nicht die Zeile (bzw. den Code) so zu ändern, dass er mir die Datei (wie oben beschrieben importiert)
soll ganz normal in die 1 spalte eingefügt werden!
Sub Datei_oeffnen()
Dim datei1$
Application.ScreenUpdating = False
datei1 = Application.GetOpenFilename("txt-Datei (*.txt),*.txt") 'hier für **.txt datei!!
If CStr(datei1) = CStr(False) Then
MsgBox "Sie haben keine Datei ausgewählt!", 48, "Keine Datei ausgewählt"
Exit Sub
End If
Workbooks.OpenText Filename:=datei1, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, Comma:=True, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1))
End Sub
Danke euch für die Hilfe im Vorraus
Ok hab das ganze selber gelöst
falls jemand das selbe problem hat hier der CODE:
Private Sub CommandButton1_Click()
Dim datei1$
Application.ScreenUpdating = False
datei1 = Application.GetOpenFilename("TEXT-Datei (*.txt),*.txt")
If CStr(datei1) = CStr(False) Then
MsgBox "Sie haben keine Datei ausgewählt!", 48, "Keine Datei ausgewählt"
Exit Sub
End If
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & datei1, _
Destination:=Range("A1"))
.TextFileSemicolonDelimiter = True
.Refresh BackgroundQuery:=False
End With
End Sub
[Edit Biber] "schnell, sachlich und effizient" Code-Tags nachgezogen. [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 129141
Url: https://administrator.de/contentid/129141
Ausgedruckt am: 15.11.2024 um 15:11 Uhr
7 Kommentare
Neuester Kommentar
Hallo ffmboy und willkommen im Forum!
Wenn es nicht gewünscht ist, wie in Deinem Beispiel den Importassistenten zu benutzen und danach die gesamte Tabelle in die (vorher) aktuelle Mappe zu kopieren, kannst Du auch die Textdatei öffnen, zeilenweise (=satzweise) einlesen, jeden Satz in Felder aufsplitten und die Feldinhalte in die entpsrechenden Zellen eintragen.
Um nicht zuviel vorwegzunehmen, nur ein Hinweis auf die dazu verwendbaren Befehle:
Für das Einlesen einer Textdatei solltest Du Beispiele finden können, wobei ich anstelle der in VBA zur Verfügung stehenden "klassischen" Befehle (
Das Aufteilen der gelesenen Sätze kannst Du mit
Grüße
bastla
[Edit] Etwas zu weit ausgeholt ... [/Edit]
Wenn es nicht gewünscht ist, wie in Deinem Beispiel den Importassistenten zu benutzen und danach die gesamte Tabelle in die (vorher) aktuelle Mappe zu kopieren, kannst Du auch die Textdatei öffnen, zeilenweise (=satzweise) einlesen, jeden Satz in Felder aufsplitten und die Feldinhalte in die entpsrechenden Zellen eintragen.
Um nicht zuviel vorwegzunehmen, nur ein Hinweis auf die dazu verwendbaren Befehle:
Für das Einlesen einer Textdatei solltest Du Beispiele finden können, wobei ich anstelle der in VBA zur Verfügung stehenden "klassischen" Befehle (
Open
, Input #
, etc) eher zur Vewendung des (universeller einsetzbaren) VBS-"FileSystemObjects
" raten würde ...Das Aufteilen der gelesenen Sätze kannst Du mit
Split()
vornehmen und deren Inhalte dann unter Verwendung einer For-Next
-Schleife in die passenden Cells
schreiben, wobei sich die Anzahl der Felder eines gesplitteten Satzes mit der UBound()
-Funktion ermitteln lässt.Grüße
bastla
[Edit] Etwas zu weit ausgeholt ... [/Edit]
Hallo ffmboy!
Wenn jede Zeile der Importdatei jeweils nur in Spalte A geschrieben werden soll, wäre das natürlich noch einfacher zu scripten (aber ja offensichtlich nicht mehr nötig) ...
Die Alternative "
Grüße
bastla
Wenn jede Zeile der Importdatei jeweils nur in Spalte A geschrieben werden soll, wäre das natürlich noch einfacher zu scripten (aber ja offensichtlich nicht mehr nötig) ...
Geht es in einem anderen "sheet2" ein makro anzulegen welcher ein AutoFilter startet ( dieser Filter durchsucht ein anderes "sheet1". Speichert aber die Filterergebnisse in das "sheet2" ??
Da verweise ich gleich mal auf Iwans Tipp (mit dem zusaätzlichen Hinweis, dass mit F5
oder Strg-G
oder Bearbeiten / Gehe zu...
und danach Inhalte... / Aktueller Bereich
die Filterergebnisse markiert werden können).Die Alternative "
Spezialfilter...
" mit "An eine andere Stelle kopieren
" scheitert daran, dass das Ziel in der gleichen Tabelle liegen muss, und da diese nicht verändert werden darf ...Grüße
bastla