Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1152to1156
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textdatei VBL Makro erweitern

Textdatei VBL Makro erweitern
Daniel
Hallo zusammen,
mal wieder ein kleines Probelm meinerseits.
Habe folgendes Makro aufgezeichnet
Sub MakroDatenlog()
' MakroDatenlog Makro
' Makro am 05.05.2010 von dhorn aufgezeichnet
ChDir "C:\WaPa"
Workbooks.OpenText Filename:= _
"C:\Dokumente und Einstellungen\dhorn\Eigene Dateien\WaPa\10-05-04  16.41 Test Büro.xls" _
_
, Origin:=28591, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=True, Other:=True, OtherChar:="/", FieldInfo:= _
Array(Array(1, 1), Array(2, 2), Array(3, 2), Array(4, 2), Array(5, 2), Array(6, 4),  _
Array(7 _
, 1)), TrailingMinusNumbers:=True
Range("C13:E65536").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.NumberFormat = "0.0"
Range("G12").Select
Selection.NumberFormat = "@"
ActiveCell.FormulaR1C1 = "Uhrzeit"
Range("B13").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Range("B13:B65536").Select
Selection.NumberFormat = "0"
End Sub

und es läuft.
Nun möchte ich es erweitern und weiß nicht wie.
Anstelle der festen Datei soll ein Dialog, ähnlich wie bei Datei öffnen erscheinen. Ich wähle die entsprechende Datei aus und der Import läuft wie aufgezeichnet ab.
Die Dateien welche umgewandelt werden sollen, sind alle gleich aufgebaut.
Vielen Dank schon mal für Eure Hilfe,
Daniel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Textdatei (CSV als XLS ?) per VBA auswählen
05.05.2010 11:59:30
NoNet
Hallo Daniel,
hier eine Variante (ungetestet, da ich keine entsprechende Datei habe) :
Sub MakroDatenlog()
' MakroDatenlog Makro
' Makro am 05.05.2010 von dhorn aufgezeichnet
Dim varDateiname As Variant
varDateiname = Application.GetOpenFilename("Excel Dateien (*.xls), *.xls")
If TypeName(varDateiname)  "Boolean" Then
ChDir "C:\WaPa"
Workbooks.OpenText Filename:=varDateiname, _
Origin:=28591, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=True, Other:=True, OtherChar:="/", _
FieldInfo:=Array(Array(1, 1), Array(2, 2), Array(3, 2), Array(4, 2), _
Array(5, 2), Array(6, 4), Array(7, 1)), TrailingMinusNumbers:=True
Range("C13:E65536").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.NumberFormat = "0.0"
Range("G12").Select
Selection.NumberFormat = "@"
ActiveCell.FormulaR1C1 = "Uhrzeit"
Range("B13").Select
Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
Range("B13:B65536").Select
Selection.NumberFormat = "0"
End If
End Sub
Handelt es sich bei dieser XLS um eine Textdatei (CSV), die mit der Endung XLS gespeichert/exportiert wurde ?
Gruß, NoNet
Anzeige
AW: Textdatei (CSV als XLS ?) per VBA auswählen
05.05.2010 12:20:20
Daniel
Hallo NoNet,
vielen Dank.
Die zu öffnende Datei ist eine csv Datei bzw. eine txt und wurde mit der Endung xls gespeichert.
Dein angepaßtes Makro läuft soweit, nur am Ende erschreint ein Laufzeitfehler '1004'
Ich habe das voreingestellte Verzeichnis gelöscht, also aus dem Makro entfernt.
Gruß, Daniel
AW: Textdatei (CSV als XLS ?) per VBA auswählen
05.05.2010 12:26:40
Daniel
Hallo NoNet,
ich habe gerade gesehen, dass das Makro den Import der Textdatei richtig macht, aber dann bei der Selektion bis zum Ende der Tabelle abbricht und somit das Suchen Ersetzen nicht macht.
Die Anzahl der Zeilen kann je nach Importdatei unterschiedlich sein - daher habe ich die maximal mögliche Anzahl als Bereich hinterher in das Makro eingetragen.
Entschuldigung, mein Fehler.
Wie kann man das Makro anpassen?
Anzeige
AW: Textdatei (CSV als XLS ?) per VBA auswählen
05.05.2010 14:14:23
fcs
Hallo Daniel,
ich hab dein Makro mal mit einer x-beliebigen txt-Datei probiert. Es lief problemlos durch, auch wenn die Daten natürlich Müll waren. An der vorgegeben Zeilenzahl für Select kann es also nicht liegen
Es sind aber etliche überflüssige Zeilen indeinem Makro drin. Ich hab esmal ein wenig angepasst und die Ersetzung und Formatierung auf den belegten Datenbereich begrenzt.
Gruß
Franz
Sub MakroDatenlog()
' MakroDatenlog Makro
' Makro am 05.05.2010 von dhorn aufgezeichnet
Dim varDateiname As Variant, wks As Worksheet, ZeileL As Long
varDateiname = Application.GetOpenFilename("Excel Dateien (*.xls;*.txt), *.xls;*.txt")
If varDateiname  False Then
ChDir "C:\WaPa"
Workbooks.OpenText Filename:=varDateiname, _
Origin:=28591, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=True, Other:=True, OtherChar:="/", _
FieldInfo:=Array(Array(1, 1), Array(2, 2), Array(3, 2), Array(4, 2), _
Array(5, 2), Array(6, 4), Array(7, 1)), TrailingMinusNumbers:=True
Set wks = ActiveSheet
With wks
ZeileL = .Cells.SpecialCells(xlCellTypeLastCell).Row
'Ersetzen in Spalten C bis E ab Zeile 13
With .Range(.Cells(13, 3), .Cells(ZeileL, 5))
.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
.NumberFormat = "0.0"
End With
With .Range("G12")
.NumberFormat = "@"
.Value = "Uhrzeit"
End With
'Formatieren Spalte B ab Zeile 13
.Range(.Cells(12, 2), .Cells(ZeileL, 2)).NumberFormat = "0"
End With
End If
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige