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 mit kleinem fehler....

makro mit kleinem fehler....
08.02.2008 20:32:00
christian
Hallo zusammen,
das folgende makro ist unter anderem mit euerer hilfe zustande gekommen. heut habe ich es im geschäft eingesetzt und mir noch einen kleinen nervigen, mir unerklärlichen mangel gezeigt.
wenn ich das makro zum ersten mal starte und ich mit der InputBox die zusatzwerte erfasse (für jedes txt file das zusammengefügt wird ein individueller wert) erfolgt der durchlauf zwei mal. sind die im excelfile zu importierenden zellen schon mit einem wert aus einem früheren import, erfolgt der durchlauf (erfassen des zusatzwertes mit der InputBox) nur einmal, so wie es sein soll.
versteht ihr das?

Sub Start_Rohdaten_ImportTXT()
Worksheets("Rohdaten").Activate
Dim myPath As String
Dim myOutputFile As String
myPath = Range("MacroValues!B2").Value
myOutputFile = Range("MacroValues!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:h"
Application.Dialogs(xlDialogSaveAs).Show
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
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
n = 0
numIN = FreeFile
strNum = InputBox("Aktuelle Datei: " & Dateiname & Chr(13) & Chr(10) & "Bitte Anzahl  _
Sporen oder DNA-Konzentration erfassen:", "Zusatz", "")
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 in 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
End Sub


8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: makro mit kleinem fehler....
08.02.2008 22:25:54
Herby
Hallo Christian,
ich kann dein Problem nicht nachvollziehen. Beim mir läufts immer nur einmal durch.
Wenn du in der Startroutine diese Zeile deaktivierst, tritt dann das Phänomen noch immer auf ?
' Import_TXT myPath & myOutputFile, "$b$1", "b:h"
Diese Zeile erstellt ja eine Abfrage und diese wird über die Vergabe eines Bereichsnamens
fortgeschrieben. Das kannst du über Einfügen-Namen-Definieren überprüfen. Beim ersten Start
dürfte hier noch kein Bereichsname vergeben sein. Vielleicht liegts daran.
Andererseits ist mir aufgefallen, dass du in der folgenden Zeile für den Datenbereich das Wort
"DataRange" verwendest. Das ist ein VBA-Schlüsselwort. Das kann zu Problemen führen.
Sub Import_TXT(Filename As String, Position As String, DataRange As String)
Range(DataRange).Select
Da es bei mir mit Excel 2003 durchläuft könnte es evtl. auch an der Excelversion liegen ?
Da ich 3 kleine textdateien erstellt habe die nur kurze Zeilen enthalten - kann es daran liegen ?
Probiers mal aus.
Viele Grüße
Herby

Anzeige
AW: makro mit kleinem fehler....
09.02.2008 10:11:00
christian
Hallo Herby
leider ist alles fehlgeschlagen.
gruss Christian

AW: makro mit kleinem fehler....
09.02.2008 11:03:00
christian
hallo Herby
mit meinen daten gehts nicht. kann ich dir mein datenpaket mailen, dann siehst du meine problematik besser.
gruss christian

Anzeige
AW: makro mit kleinem fehler....
09.02.2008 11:20:42
christian
hier meine Dateien. einfach enpacken und analyzer_tool auf den desktop legen und im excelfile-MacroValues, pfad anpassen.
https://www.herber.de/bbs/user/49764.zip

AW: makro mit kleinem fehler....
09.02.2008 17:54:00
Herby
Hallo Christian,
ich habs nun auch mit deiner Datei probiert.
den Ordner Analyzer_tool auf den Desktop gelegt und die Pfade im Tabellenblatt MacroValues angepasst.
Dann habe ich das Makro Start_Rohdaten_ImportTXT aufgerufen. Es kommt dann eine Inputbox, bei der ich numerische Werte eingegeben habe. Diese Abfrage kommt 4 x, nämlich für die Textdateien 1,2,3 und 5.
Danach kommt ein Infofenster "Delete Datarange b:h. Kaum habe ich hier mit OK bestätigt wird der Dateispeicher-Dialog angezeigt. Hier habe ich als Dateinamen "Vorlage_Blotauswertung2.xls" eingegeben.
Dann zeigt das Programm in der Tabelle "Rohdaten" in den Spalten b:h die eingelesenen Textdatei-Werte an. Zusätzlich wird in der Spalte H die Nummer angezeigt, die ich vorher erfasst habe.
Im Ordner Analyzer_Tool befindet sich nun die Textdatei Output.txt. In dieser sind dann alle 4 eingelesenen Einzeldateien und am rechten Rand die händisch eingegebenen Nummern.
Danach kann ich wieder das Makro aufrufen und obiger Ablauf wiederholt sich.
Das Makro
Integriert_DatenImportTXT_Start
habe ich nicht verwendet.
Wenn das, was ich oben beschrieben habe, der korrekte Workflow ist, dann funktionierts bei mir
ohne Probleme. Dann kann es doch am Programm nicht mehr liegen.
Wie reagiert eigentlich meine Testdatei bei dir ?
Viele Grüße
Herby

Anzeige
AW: makro mit kleinem fehler....
09.02.2008 18:15:06
christian
hallo Herby,
deine variante funktioniert so wie meine. unglaublich.....
so wie du es beschrieben hast muss es auch sein. auf meiner kiste läufts eben nicht bzw. die abfrage mit der box erfolgt 2 mal, jedoch nur wenn ich das makro zum ersten mal starte, also wenn noch kein output.txt erstellt ist und der datenbereich im b:h leer ist.
ach je, was solls.....ich werde es im geschäft nochmals probieren. vielleicht ist dieser pc meinem makro besser gesinnt.
trotzdem herzlichen dank
gruss Christian

AW: makro mit kleinem fehler....
09.02.2008 18:45:54
Herby
Hallo Christian,
ich habs nun auch mit deiner Datei probiert.
den Ordner Analyzer_tool auf den Desktop gelegt und die Pfade im Tabellenblatt MacroValues angepasst.
Dann habe ich das Makro Start_Rohdaten_ImportTXT aufgerufen. Es kommt dann eine Inputbox, bei der ich numerische Werte eingegeben habe. Diese Abfrage kommt 4 x, nämlich für die Textdateien 1,2,3 und 5.
Danach kommt ein Infofenster "Delete Datarange b:h. Kaum habe ich hier mit OK bestätigt wird der Dateispeicher-Dialog angezeigt. Hier habe ich als Dateinamen "Vorlage_Blotauswertung2.xls" eingegeben.
Dann zeigt das Programm in der Tabelle "Rohdaten" in den Spalten b:h die eingelesenen Textdatei-Werte an. Zusätzlich wird in der Spalte H die Nummer angezeigt, die ich vorher erfasst habe.
Im Ordner Analyzer_Tool befindet sich nun die Textdatei Output.txt. In dieser sind dann alle 4 eingelesenen Einzeldateien und am rechten Rand die händisch eingegebenen Nummern.
Danach kann ich wieder das Makro aufrufen und obiger Ablauf wiederholt sich.
Das Makro
Integriert_DatenImportTXT_Start
habe ich nicht verwendet.
Wenn das, was ich oben beschrieben habe, der korrekte Workflow ist, dann funktionierts bei mir
ohne Probleme. Dann kann es doch am Programm nicht mehr liegen.
Wie reagiert eigentlich meine Testdatei bei dir ?
Viele Grüße
Herby
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige