Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
*.asc importieren, Inhalt in Tabelle schreiben
zurück: Bereich auswählen (Range-befehl) mit Variable weiter: Datumsformat Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Antwort Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
13. Jul 2009, 13:22
Rufname:

*.asc importieren, Inhalt in Tabelle schreiben - *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Hallo liebe VBA Gemeinde,

Ich habe zur Zeit ein Problem mit VBA, welches sich irgendwie nicht lösen lassen möchte, so dass ich hier hoffnungsvoll nach Hilfe suche.
Mein Problem ist folgendes:
Ich möchte eine beliebige asc Datei ins Excel importieren. Das geht auch super mit der Importfunktion. Das Problem ist, dass in der Datei das Komma als Trennzeichen sowie bei Kommazahlen wie zum Beispiel 1,2345 verwendet wird. Also war meine Idee den ganzen Inhalt in eine Arbeitsblatt zu kopieren und dann per Formel die Werte in ein 2. Arbeitsblatt exakt in eine Tabelle zu schreiben. Zur Zeit befasse ich mich damit eine beliebige Datei auszuwählen und zu importieren. Leider Funktioniert das Ganze nicht und wird mir mit der Fehlermeldung Laufzeitfehler 13 quittiert. Ich hoffe mir kann jemand auf die Sprünge helfen da ich keine Erfahrung bisher im VBA gemacht habe.

Der Code( Großteils aus dem Forum hier)

Option Explicit
Sub Test()
Dim Speicherpfad As Variant
Dim intDatei As Integer

Speicherpfad = Application.GetOpenFilename("asc Files (*.asc), *.asc", , "asc", "Auswahl", True)
If TypeName(Speicherpfad) Like "Boolean" Then
MsgBox "Keine Datei gewählt!", vbInformation
Exit Sub
Else
For intDatei = 1 To UBound(Speicherpfad)
Debug.Print Speicherpfad(intDatei)
Next intDatei
End If

Application.ScreenUpdating = False
Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:="TEXT; " & Speicherpfad, Destination:=Range("A1"))
.TextFileCommaDelimiter = True

End With

End Sub

Für hilfreiche Tipps bin ich sehr dankbar.

Stefan
Phelan XLPH
Fortgeschritten


Verfasst am:
13. Jul 2009, 14:04
Rufname: Phelan


AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

1.Wie sieht denn so ne Zeile in der .asc-Datei aus?
2.Wie will man dann unterscheiden was ein Trennzeichen ist und ein
DezimalKomma?

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
13. Jul 2009, 15:47
Rufname:

AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Hallo Glücksritter,

Zu 1. Welche Zeile meinst du?
Zu 2. Ich unterscheide das. Darum soll er mir die Daten auch blind in ein Arbeitsblatt importieren. Ich berechne in einem 2. Arbeitsblatt die importierten Werte neu und möchte diese in einer separaten Tabelle ablegen.
Das Problem ist ja nur, dass er mir die Kommazahlen zerpflückt. Die asc Dateien sind aber immer gleich. So sind Sozusagen auch immer die gleichen Zellen belegt wenn ich es in ein Arbeitsblatt importiere.

Ein Beispiel:

A1 A2
|22|300|

Berechne ich den Wert aus A1+A2/100 und schreibe diesen in meine Tabelle

Die asc Dateien sind alle identisch nach folgendem Muster aufgebaut:

Überschrift
Di 23 Juni 2009,14:27
Wort1,Wort2,Wort3,Wort4 Wort5,Wort6
Wort7,Wort8,Wort9,,
Fläche,Fläche2,Anzahl1,Anzahl2
24,00,10400,0,6,12 \\24,00|10400,0|6|12
Wert1,Wert2,Wert3,Wert4
MTP 1111,111,2,22,2,3,33,3,44,4 \\MTP 1111,111|2,22,2|3,33,3|44,4
Text1,Text2
text,100,0
Wert1,Wert2,Wert3,Wert4
1,000,2,2,3,3,44,4 \\1,000|2,2|3,3|44,4
text1,Text2
11,111,22,2 \\11,111|22,2
Text
Wert1,Wert2,Wert3
11,111,22,222,3,3333 \\11,111|22,222|3,3333
text
Wert1,Wert2,Wert3
1,111,2,222,33,3 \1,111|2,222|33,3

\\sind Kommentare um zu zeigen welche Zahlen zusammen gehören

Ich hoffe, dass ist aussagekräftig genug. Ansonsten immer wieder fragen.

Danke

Stefan
Phelan XLPH
Fortgeschritten


Verfasst am:
13. Jul 2009, 16:51
Rufname: Phelan

AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Welche Maschine generiert denn so einen Code *kopfschüttel*
_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
14. Jul 2009, 08:12
Rufname:


AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Hallo Glücksritter,

es ist mehr oder weniger eine Zusammenfassung die da generiert wird.

Nun aber zu meinem Problem, wo steckt der Fehler beim Import der Datei.

Danke

Stefan
Phelan XLPH
Fortgeschritten


Verfasst am:
14. Jul 2009, 08:52
Rufname: Phelan

AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Hallo,

probiers mal so:

Code:
Sub Test()
Dim Speicherpfad As Variant
Dim intDatei As Integer

Speicherpfad = Application.GetOpenFilename("asc Files (*.asc), *.asc", , "asc", "Auswahl", True)
If TypeName(Speicherpfad) Like "Boolean" Then
    MsgBox "Keine Datei gewählt!", vbInformation
    Exit Sub
End If
Application.ScreenUpdating = False
For intDatei = 1 To UBound(Speicherpfad)
    'Debug.Print Speicherpfad(intDatei)
    TextImportWkbOpenText Speicherpfad(intDatei)
Next intDatei
Application.ScreenUpdating = True
End Sub

Sub TextImportWkbOpenText(ByVal strPfad As String)
Dim wks As Worksheet

With ThisWorkbook
    Set wks = .Worksheets.Add(After:=.Worksheets(.Worksheets.Count))
End With

Workbooks.OpenText _
Filename:=strPfad, _
DataType:=xlDelimited, _
Comma:=True, Tab:=True, Local:=True

With ActiveWorkbook
    .Sheets(1).UsedRange.Copy wks.Range("A1")
    .Close
End With
End Sub

_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
14. Jul 2009, 09:46
Rufname:

AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Hallo Glücksritter,

dein Code funktioniert einwandfrei! Die Daten sind nun zumindest in meinem Excelsheet. Dafür ein großes Danke. Nun werde ich mich der Behandlung der Daten widmen. Mal sehen wie weit ich damit komme.

Also nochmal Danke dafür.

Stefan
Gast



Verfasst am:
14. Jul 2009, 15:38
Rufname:

AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Hallo nochmal,
und ein weiteres Problem steht bei mir vor der Tür. Um diesmal alles gleich klar verständlich darzustellen beschreib ich einfach was das Makro am Ende machen muss.

Also:
Ich möchte ein asc Datei in das Excelsheet "import" importieren. Nach Zelle A1. Da die Daten ein Komma als Trennzeichen sowie als Normales Komma für Dezimalzahlen benutzt wird, zerpflückt es mir meine Werte, was das Ganze nun auch so kompliziert macht. Ich berechne in einem 2. Arbeitsblatt meine Werte wieder neu. Das Arbeitsblatt heißt "Hilfstabelle" und schreibe die Werte von C3 bis M3 in diese. Von dort kopiere ich die Werte in das Arbeitsblatt "Zusammenfassung". Ich kopiere aber nur den Wert. Da ich das Arbeitsblatt "import" sowie "Hilfstabelle" nachdem die Werte in die Tabelle "Zusammenfassung" geschrieben worden sind gelöscht werden müssen um eine neue Datei zu importieren.

Was muss das Makro also alles noch tun.
1. Der Import der beliebig auszuwählenden asc Datei funktioniert nicht.
2. Ich brauch eine Abfrage die überprüft, ob im Arbeitsblatt "Zusammenfassung" die jeweils ersten Felder frei sind. Wenn nicht sollen die Daten in die darunter liegende Zeile exportiert werden. Ansonsten einfach jeweils in die aktuelle Zeile. Sozusagen das die Tabelle mit jeder importierten Datei stetig größer wird.
3. Das ganze muss irgendwie in einer Schleife erfolgen damit immer neue asc Dateien in die "Zusammenfassung" exportiert werden können.

Was tut das Makro bisher?
Es berechnet aus den (manuell) importieren Dateien die richtigen Werte neu und schreibt diese in die Hilfstabelle. Von dort kopiert es die Werte in die "Zusammenfassung" in die 2. Zeile.

ich hoffe mir kann jemand irgendwie weiterhelfen.

Danke

Stefan


Mein gegendwärtiger Code:

Option Explicit
Sub test()

Dim Speicherpfad As Variant

Speicherpfad = Application.GetOpenFilename("asc Files, *.asc")
If TypeName(Speicherpfad) Like "Boolean" Then
MsgBox "Keine Datei gewählt!", vbInformation
Exit Sub
End If


Sheets("import").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;Speicherpfad", Destination:= _
Range("$A$1"))
.Name = "test2_1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierNone
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
'.Refresh BackgroundQuery:=False
End With

Application.ScreenUpdating = False


Sheets("Hilfstabelle").Select

Range("A3").FormulaR1C1 = "=import!R[-1]C"
Range("B3").FormulaR1C1 = "=import!R[-1]C"
Range("C3").FormulaR1C1 = "=import!R[1]C"
Range("D3").FormulaR1C1 = "=import!R[9]C[1]+import!R[9]C[2]/10"
Range("E3").FormulaR1C1 = "=import!R[11]C[-2]+import!R[11]C[-1]/10"
Range("F3").FormulaR1C1 = "=import!R[14]C[-5]+import!R[14]C[-4]/1000"
Range("G3").FormulaR1C1 = "=import!R[14]C[-4]+import!R[14]C[-3]/1000"
Range("H3").FormulaR1C1 = "=import!R[17]C[-7]+import!R[17]C[-6]/1000"
Range("I3").FormulaR1C1 = "=import!R[17]C[-6]+import!R[17]C[-5]/1000"
Range("J3").FormulaR1C1 = "=import!R[9]C[-3]+import!R[9]C[-2]/10"
Range("K3").FormulaR1C1 = "=import!R[11]C[-10]+import!R[11]C[-9]/1000"
Range("L3").FormulaR1C1 = "=import!R[14]C[-7]+import!R[14]C[-6]/10000"
Range("M3").FormulaR1C1 = "=import!R[17]C[-8]+import!R[17]C[-7]/10"
Range("A3").Select
Selection.Copy
Sheets("Zusammenfassung").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("C3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("D3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("E3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("E3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("F3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("F3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("G3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("G3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("H3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("H3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("I3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("I3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("J3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("J3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("K3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("K3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("L3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("L3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Hilfstabelle").Select
Range("M3").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Zusammenfassung").Select
Range("M3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Application.ScreenUpdating = True
Sheets("import").Select
Cells.ClearContents
Sheets("Hilfstabelle").Select
Rows("3:3").Cells.ClearContents




End Sub
Phelan XLPH
Fortgeschritten


Verfasst am:
14. Jul 2009, 15:44
Rufname: Phelan

AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Hat meine Lösung nicht funktioniert?
_________________
Was vorstellbar ist, ist auch machbar. - Albert Einstein
Gast



Verfasst am:
14. Jul 2009, 16:16
Rufname:

AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Doch das hat sie. (Siehe oben Wink).

Aber deine Lösung importiert mir die Daten nach TabelleX und ich brauch den import in Tabelle "import" Damit die Daten immer wieder in genau diese Tabelle geschrieben werden da sich der anschließende Prozess immer auf die jeweiligen Zellen dort beziehen

Stefan
bst
Programmierer


Verfasst am:
14. Jul 2009, 22:37
Rufname: Bernd
Wohnort: Ilsfeld


AW: *.asc importieren, Inhalt in Tabelle schreiben - AW: *.asc importieren, Inhalt in Tabelle schreiben

Nach oben
       Version: Office 2007

Abend auch,

Zitat:
Aber deine Lösung importiert mir die Daten nach TabelleX und ich brauch den import in Tabelle "import"


Ja, und?

Code:
ActiveSheet.Name = "Import"


könnte ausreichen.

Oder alternativ vielleicht etwas wie:

Code:
ActiveSheet.UsedRange.Copy Worksheets("Import").Range("A1")


Und, Deine Select-Orgien sind furchtbar. Lies vielleicht mal: http://www.online-excel.de/excel/singsel_vba.php?f=78

cu, Bernd
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Excel Formeln: Eine Tabelle umdrehen 4 Aloha 1274 04. Apr 2005, 10:50
Aloha Eine Tabelle umdrehen
Keine neuen Beiträge Excel Formeln: Frontpage soll per link in eine excel tabelle verweisen 3 Darkspawn 1636 04. März 2005, 16:46
Hübi Frontpage soll per link in eine excel tabelle verweisen
Keine neuen Beiträge Excel Formeln: Wenn Zahl stimmt soll Excel Ja schreiben 2 Pinguin1977 822 30. Jan 2005, 00:57
Gast Wenn Zahl stimmt soll Excel Ja schreiben
Keine neuen Beiträge Excel Formeln: Automatisch Tabelle sortieren, Filtern, Teilergebnis ? E2K 1 diaphone 3407 28. Jan 2005, 09:53
SapceBird Automatisch Tabelle sortieren, Filtern, Teilergebnis ? E2K
Keine neuen Beiträge Excel Formeln: Excel Tabelle Formel? 2 herberte 1948 31. Dez 2004, 00:57
Arnim Excel Tabelle Formel?
Keine neuen Beiträge Excel Formeln: Text in andere Tabelle übertragen 2 freddy-krueger 3737 02. Dez 2004, 11:16
freddy-krueger Text in andere Tabelle übertragen
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Excel Formeln: Anzahl bei 2 Bedingungen aus Tabelle berechnen 1 Satanico 2570 20. Okt 2004, 13:31
steve1da Anzahl bei 2 Bedingungen aus Tabelle berechnen
Keine neuen Beiträge Excel Formeln: Daten/Tabelle tabellenübergreifend 0 markus.wilke 6170 15. Okt 2004, 16:45
markus.wilke Daten/Tabelle tabellenübergreifend
Keine neuen Beiträge Excel Formeln: inhalt einer zelle suchen und wiedergeben 2 winni 5568 23. Sep 2004, 16:47
winni inhalt einer zelle suchen und wiedergeben
Keine neuen Beiträge Excel Formeln: werte in neue tabelle mit neuen spalten kopieren 1 Timo 1723 03. Sep 2004, 07:37
ae werte in neue tabelle  mit neuen spalten kopieren
Keine neuen Beiträge Excel Formeln: sortieren einer Tabelle 6 ae 2655 02. Sep 2004, 15:04
fl618 sortieren einer Tabelle
Keine neuen Beiträge Excel Formeln: RG schreiben mit Excel - auf externe Datenquelle zugreifen!? 20 ginovalentia 1845 23. Jul 2004, 21:08
ginovalentia RG schreiben mit Excel - auf externe Datenquelle zugreifen!?
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: HTML CSS