Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
948to952
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
948to952
948to952
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

makro zum datei importieren und individueller wert

makro zum datei importieren und individueller wert
07.02.2008 09:17:33
christian
Hallo zusammen,
folgendes problem bereitet mir kopfzerbrechen: ich habe ein makro, das mir .txt dateien zusammenfügt zu einer einzigen .txt datei. ein zweites makro importiert mir diese einzige datei in ein excelfile. funktioniert perfekt! nun sollte beim 1. oder 2. makro eine funktion eingebaut werden, dass ein ich einen wert (zahl) in einer box erfassen kann und dieser wert soll zum entsprechenden .txt in einer zeile oder einer weiteren spalte angefügt werden.
so sehen die einzelnen .txt dateien aus die zusammengefügt werden (haben aber bis zu 100n). nun wäre es wichtig, dass ich irrgendwo zu diesem txt ein zahlenwert erfasst werden kann. und wenn ich 20 txtfiles zusammenfüge dann muss ich zu jedem einzelnen ein solcher zahlenwert erfasst werden können. toll wäre wenn jedesmal ein box aufgeht um den zahlenwert zu erfassen.
Black is 0, White is 255
# IDV %* AREA AVG BACK (z.b. Zahlenwert hierher)
1n 5439545 6.4 346 15721 2495
2n 4485423 5.3 346 12964 3063
3n 4679466 5.5 346 13524 2403
4n 2284790 2.7 346 6603 25620
IDV=Integrated Density Value s=standard
* based on Integrated Density Value
und so sieht makro 1 und 2 aus:
[code]

Sub Start_Rohdaten_ImportTXT()
Worksheets("Rohdaten").Activate
Dim myPath As String
Dim myOutputFile As String
myPath = Range("MarcoValues!B2").Value
myOutputFile = Range("MarcoValues!B3").Value
'myPath = "C:\Analyzer_Tool\"                         'wichtig: am Schluss muss ein \  _
stehen
'myOutputFile = "output.txt"
MergeFiles myPath, myOutputFile
Import_TXT myPath & myOutputFile, "$b$1", "b:g"
End Sub



Sub MergeFiles(SourceFolder As String, OutputFile As String) 'Zusammenfügen nummerierter .txt   _
_
Dateien in aufsteigender Richtung
Dim i As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim numOut As Integer
Dim numIN As Integer
numOut = FreeFile
Open SourceFolder & OutputFile For Output As #numOut
Dateiname = Dir(SourceFolder & "*.txt")
Do While Not Dateiname = ""
If Dateiname  OutputFile Then
numIN = FreeFile
Open SourceFolder & Dateiname For Input As #numIN 'Öffne gefundene Datei
Do While Not EOF(numIN) 'Schleife bis Dateiende.
Line Input #numIN, Textzeile 'Zeile in Variable einlesen.
Print #numOut, Textzeile 'Ausgabe im Datei.
Loop
Close #numIN
End If
Dateiname = Dir
Loop
Close #numOut
End Sub



Sub Import_TXT(Filename As String, Position As String, DataRange As String)
Range(DataRange).Select
Selection.ClearContents
MsgBox "DataRange: " & DataRange & " deleted!"
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & Filename, Destination:=Range( _
Position))
.Name = Filename
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 850
.TextFileStartRow = 1
.TextFileParseType = xlFixedWidth
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1)
.TextFileFixedColumnWidths = Array(6, 12, 9, 9, 9, 9)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Application.Dialogs(xlDialogSaveAs).Show
End Sub

[/code]
vielen dank für eure hilfe, habe gar keinen plan wie sowas zu programmieren ist.
gruss christian

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: makro zum datei importieren und individueller wert
07.02.2008 10:14:00
Josef
Hallo Christian,
probier mal so.
Sub MergeFiles(SourceFolder As String, OutputFile As String) 'Zusammenfügen nummerierter .txt _
    Dateien in aufsteigender Richtung


Dim i As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim numOut As Integer
Dim numIN As Integer
Dim strNum As String

numOut = FreeFile
Open SourceFolder & OutputFile For Output As #numOut
Dateiname = Dir(SourceFolder & "*.txt")
Do While Not Dateiname = ""
    If Dateiname <> OutputFile Then
        strNum = InputBox("Zusatznummer angeben:", "Zusatz", "")
        numIN = FreeFile
        Open SourceFolder & Dateiname For Input As #numIN 'Öffne gefundene Datei
        Do While Not EOF(numIN) 'Schleife bis Dateiende.
            Line Input #numIN, Textzeile 'Zeile in Variable einlesen.
            Textzeile = Textzeile & Chr(32) & strNum
            Print #numOut, Textzeile & Chr(32) & strNum 'Ausgabe im Datei.
        Loop
        Close #numIN
    End If
    Dateiname = Dir
Loop

Close #numOut
End Sub


Gruß Sepp



Anzeige
AW: makro zum datei importieren und individueller wert
07.02.2008 10:28:00
christian
Hallo Sepp,
vielen dank, funktioniert im prinzip. nun fügt das makro die zahl jeweil doppelt ein, z.b. eingabe 1 folgt wert 1 1 wird reingeschrieben, zudem muss mich präziser ausdrucken muss der wert (z.b. 1) nur einmal erfasst werden, jetzt fügt es bei jedem n-wert die zahl 1 ein.
gruss christian

AW: makro zum datei importieren und individueller wert
07.02.2008 10:35:00
Josef
Hallo Christian,
so wird nur bei der ersten Zeile angehängt.
Sub MergeFiles(SourceFolder As String, OutputFile As String) 'Zusammenfügen nummerierter .txt _
    Dateien in aufsteigender Richtung


Dim i As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim numOut As Integer
Dim numIN As Integer
Dim strNum As String, bDone As Boolean

numOut = FreeFile
Open SourceFolder & OutputFile For Output As #numOut
Dateiname = Dir(SourceFolder & "*.txt")
Do While Not Dateiname = ""
    If Dateiname <> OutputFile Then
        strNum = InputBox("Zusatznummer angeben:", "Zusatz", "")
        bDone = False
        numIN = FreeFile
        Open SourceFolder & Dateiname For Input As #numIN 'Öffne gefundene Datei
        Do While Not EOF(numIN) 'Schleife bis Dateiende.
            Line Input #numIN, Textzeile 'Zeile in Variable einlesen.
            If Not bDone Then
                Textzeile = Textzeile & Chr(32) & strNum
                bDone = True
            End If
            Print #numOut, Textzeile 'Ausgabe im Datei.
        Loop
        Close #numIN
    End If
    Dateiname = Dir
Loop

Close #numOut
End Sub



Gruß Sepp



Anzeige
AW: makro zum datei importieren und individueller wert
07.02.2008 10:45:00
christian
hallo sepp,
nun passiert folgendes:
Black is 0, White is 255"neuer Wert"
xx
# IDV %* AREA AVG BACK (oder xx)
1n 5439545 6.4 346 15721 2495
da wird die zahl an den wert "255" angehängt, das gibt probleme beim auslesen. ist es möglich den wert in die mit xx benannte position zu schreiben?
gruss christian

AW: makro zum datei importieren und individueller wert
07.02.2008 10:57:00
Josef
Hallo Christian,
in Zeile drei.
Sub MergeFiles(SourceFolder As String, OutputFile As String) 'Zusammenfügen nummerierter .txt _
    Dateien in aufsteigender Richtung


Dim i As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim numOut As Integer
Dim numIN As Integer
Dim strNum As String, n As Integer

numOut = FreeFile
Open SourceFolder & OutputFile For Output As #numOut
Dateiname = Dir(SourceFolder & "*.txt")
Do While Not Dateiname = ""
    If Dateiname <> OutputFile Then
        strNum = InputBox("Zusatznummer angeben:", "Zusatz", "")
        n = 0
        numIN = FreeFile
        Open SourceFolder & Dateiname For Input As #numIN 'Öffne gefundene Datei
        Do While Not EOF(numIN) 'Schleife bis Dateiende.
            Line Input #numIN, Textzeile 'Zeile in Variable einlesen.
            n = n + 1
            If n = 3 Then 'einfügen in Zeile 3
                Textzeile = Textzeile & Chr(32) & strNum
            End If
            Print #numOut, Textzeile 'Ausgabe im Datei.
        Loop
        Close #numIN
    End If
    Dateiname = Dir
Loop

Close #numOut
End Sub


Gruß Sepp



Anzeige
AW: makro zum datei importieren und individueller wert
07.02.2008 10:59:46
christian
Perfekt, vielen herzlichen dank

AW: makro zum datei importieren und individueller wert
07.02.2008 11:18:00
christian
hallo sepp, ich muss nochmals nachhacken
funktioniert eigentlich in meinem sinne. nun kann ich die zahlenwerte erfassen und sie werden ans richtige ort geschrieben. nach dem letzten beginnts jedoch wieder von vorne. also im endeffekt 2 mal anstatt 1 mal.
gruss christian

AW: makro zum datei importieren und individueller wert
07.02.2008 11:28:00
Josef
Hallo Christian,
bitte noch mal in deutsch. "nach dem letzten beginnts jedoch wieder von vorne. also im endeffekt 2 mal anstatt 1 mal.
"


Gruß Sepp



Anzeige
AW: makro zum datei importieren und individueller wert
07.02.2008 11:34:00
christian
hallo Sepp,
das fenster zusatznummer erfassen erscheint korrekt und die nummer kann erfasst werden. Nach der letzten erfassung der zusatznummer, wird jedoch wieder deleted und beginnt wieder von vorne (=2. durchlauf)
gruss christian

AW: makro zum datei importieren und individueller wert
07.02.2008 11:40:00
Josef
Hallo Christian,
sorry, aber immer noch Bahnhof. Den Loop hab ich ja nicht verändert, und was meinst du mit "deletet" und "2. Durchlauf"?

Gruß Sepp



AW: makro zum datei importieren und individueller wert
07.02.2008 11:43:42
christian
also, kurz und prägnant: die abfrage der zusatznummer kommt zwei mal.
gruss

Anzeige
AW: makro zum datei importieren und individueller wert
07.02.2008 12:09:17
Josef
Hallo Christian,
aus deinem ersten Post: und wenn ich 20 txtfiles zusammenfüge dann muss ich zu jedem einzelnen ein solcher zahlenwert erfasst werden können. toll wäre wenn jedesmal ein box aufgeht um den zahlenwert zu erfassen
Wenn die Abfrage nur einmal kommen soll, dann so.
Sub MergeFiles(SourceFolder As String, OutputFile As String) 'Zusammenfügen nummerierter .txt _
    Dateien in aufsteigender Richtung


Dim i As Integer
Dim Textzeile As String
Dim Dateiname As String
Dim numOut As Integer
Dim numIN As Integer
Dim strNum As String, n As Integer

numOut = FreeFile
Open SourceFolder & OutputFile For Output As #numOut
Dateiname = Dir(SourceFolder & "*.txt")
strNum = InputBox("Zusatznummer angeben:", "Zusatz", "")
Do While Not Dateiname = ""
    If Dateiname <> OutputFile Then
        n = 0
        numIN = FreeFile
        Open SourceFolder & Dateiname For Input As #numIN 'Öffne gefundene Datei
        Do While Not EOF(numIN) 'Schleife bis Dateiende.
            Line Input #numIN, Textzeile 'Zeile in Variable einlesen.
            n = n + 1
            If n = 3 Then 'einfügen in Zeile 3
                Textzeile = Textzeile & Chr(32) & strNum
            End If
            Print #numOut, Textzeile 'Ausgabe im Datei.
        Loop
        Close #numIN
    End If
    Dateiname = Dir
Loop

Close #numOut
End Sub

Das mit "deletet" erschliesst sich mir noch immer nicht.

Gruß Sepp



Anzeige
AW: makro zum datei importieren und individueller wert
07.02.2008 13:52:43
christian
herzlichen dank, nun funktionierts.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige