Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Problem bitte um hilfe

Excel Problem bitte um hilfe
14.11.2006 20:28:29
Andreas
Hallo Zusammen,
ich habe folgendes Excelproblem:
ich habe auf meiner Festplatte einen Ordner C:\test\ mit endlosen txt Files (1234_messung1.txt; 1234_messung2.txt; 1234_messung3.txt)
jetzt will ich in Excel ein Prüfprotokoll erstellen indem Protokoll muss ich die SN (hier 1234) eingeben und Excel soll die drei dazugehörigen txt Files in drei Tabellen laden mit dessen Daten ich dann das Protokoll in der vierten Tabelle erstellen kann.
Nochmals kurz:
Mein Problem ist ich gebe in Excel eine Seriennummer ein und Excel soll mir die jeweiligen drei txt Files suchen.
Wer kann mir helfen?
Gruss
Andreas

24
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
txt-files suchen und importieren
14.11.2006 22:31:58
Andi
Hi Namensvetter,
ich hab mir mal erlaubt, Dein Btreff etwas aussagekräftiger zu gestalten; Hilfe bei einem Excel-Problem sucht wohl jeder, der hier ne Frage postet, und wenn irgendwann jemand mit nem ähnlichen Problem in Archiv stöbert, dann hilft ihn Dein Betreff unter Umständen nicht wirklich... ;-)
Eine mögliche Lösung für Dein Problem sieht so aus:

Sub txt_import()
Dim SN As String
Dim Anzahl As Integer
Dim zaehler As Integer
SN = InputBox("Bitte SN eingeben:")
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.LookIn = "C:\test"
.SearchSubFolders = False
.Filename = SN & "*.txt"
.Execute
Anzahl = .FoundFiles.Count
ReDim file_array(1 To Anzahl)
For zaehler = 1 To Anzahl
file_array(zaehler) = .FoundFiles(zaehler)
Next zaehler
End With
For zaehler = 1 To Anzahl
Workbooks.OpenText Filename:=file_array(zaehler), Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
ActiveWorkbook.ActiveSheet.Copy After:=Workbooks(ThisWorkbook.Name).Sheets(ThisWorkbook.Sheets.Count)
Workbooks(ActiveSheet.Name & ".txt").Close
Next zaehler
Application.ScreenUpdating = True
End Sub

Ich wusste jetzt nicht, wie Deine txt-Dateien aufgebaut sind, bzw welches Trennzeichen markiert, ab wann in die nächste Zelle gesprungen werden soll; ich hab deshalb einfach mal angenommen, dass es das Semikolon ist. Andernfalls kannst Du das in dem Block zwischen den Sternchen anpassen; zur Not zeichnest Du den import einer txt-Datei über den Import-Assistenten mit dem Makrorekorder auf, und guckst Dir an, wie das aussehen muss.
Schönen Gruß,
Andi
Anzeige
AW: txt-files suchen und importieren
15.11.2006 08:51:07
Andreas
vielen Dank schon mal soweit das mit dem Trennzeichen war Tabulator und das habe ich soweit auch hinbekommen.
Jetzt hab ich es schonmal soweit das er ein txt file öffnet ABER ich möchte gern drei Files mit der SN_1_ef.txt; SN_1_bg.txt und SN_1_sr.txt öffnen.
Viel dank für die hilfe
Andreas
AW: txt-files suchen und importieren
15.11.2006 09:38:47
Andi
Guten Morgen,
das is merkwürdig, bei mir tut's...
Wenn ich SN_1 in die InputBox eingebe, dann hab ich in der Mappe mit dem Makro drei neue Tabellenblätter mit den Namen SN_1_ef, SN_1_bg und SN_1_sr...
Sorry, kann ich grad nicht nachvollziehen, warum das bei Dir nicht so ist.
Schönen Gruß,
Andi
Anzeige
AW: txt-files suchen und importieren
15.11.2006 10:13:06
Andreas
Moin Andi,
es klappt doch soweit war ein fehler von mir. Nur sollte er die 3 txt Files in Tabell1, Tabell2 und Tabelle3 öffnen und nicht in deren Filenamen. Kannst Du mir dabei auch noch helfen?
AW: txt-files suchen und importieren
15.11.2006 10:19:49
Andi
Hi,
ja, das geht auch, nur hab ich grad im Augenblick a bisserl wenig Zeit; ich meld mich aber wieder.
Eine Frage noch:
heißen die drei Dateien immer *ef, *bg und *sr? Und ist es wichtig, welche davon in Tabelle1, Tabelle2 und Tabelle3 reinkommt?
Schönen Gruß,
Andi
AW: txt-files suchen und importieren
15.11.2006 10:30:02
Andreas
Danke Dir,
ja die Dateien heißen immer *ef, *bg und*sr. Es ist egal in welcher Tabelle das jeweilige eingelesen wird nur sollte es immer in die gleiche gelesen werden.
Z.B. *ef immer in Tabelle1.
Gruss
Anzeige
AW: txt-files suchen und importieren
15.11.2006 11:37:59
Andi
Hi,
probier mal dies aus:

Sub txt_import()
Dim SN As String
Dim Anzahl As Integer
Dim zaehler As Integer
SN = InputBox("Bitte SN eingeben:")
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.LookIn = "C:\test"
.SearchSubFolders = False
.Filename = SN & "*.txt"
.Execute
Anzahl = .FoundFiles.Count
ReDim file_array(1 To Anzahl)
For zaehler = 1 To Anzahl
file_array(zaehler) = Right(.FoundFiles(zaehler), Len(.FoundFiles(zaehler)) - InStrRev(.FoundFiles(zaehler), "\"))
Next zaehler
End With
For zaehler = 1 To Anzahl
Workbooks.OpenText Filename:="C:\test\" & file_array(zaehler), Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
Workbooks(file_array(zaehler)).Sheets(1).UsedRange.Copy
Select Case Right(file_array(zaehler), 6)
Case "bg.txt"
ThisWorkbook.Sheets("Tabelle1").Range("A1").PasteSpecial
Case "ef.txt"
ThisWorkbook.Sheets("Tabelle2").Range("A1").PasteSpecial
Case "sr.txt"
ThisWorkbook.Sheets("Tabelle3").Range("A1").PasteSpecial
End Select
Workbooks(file_array(zaehler)).Close
Next zaehler
Application.ScreenUpdating = True
End Sub

Schönen Gruß,
Andi
Anzeige
AW: txt-files suchen und importieren
15.11.2006 13:09:29
Andreas
jetzt kommt folgende Fehlermeldung: ReDim file_array(1 To Anzahl)
Was nu?
AW: txt-files suchen und importieren
15.11.2006 13:11:18
Andi
Komisch, kommt bei mir nicht; hast Du ne Nummer vom Laufzeitfehler?
AW: txt-files suchen und importieren
15.11.2006 13:12:23
Andreas
noch was die fehlermeldung ist zwar jetzt weg nur sind keine daten in der tabelle 1-3 enthalten.
AW: txt-files suchen und importieren
15.11.2006 13:17:43
Andreas
halt! stop! sorry hab den fehler danke dir für alles.
gruss
Andreas
Gern geschehen... (ot)
15.11.2006 13:26:07
Andi
.
AW: Gern geschehen... (ot)
15.11.2006 13:48:45
Andreas
ich muss nochmal nerven. was ist wenn die endung der datei nicht nur *ef.txt sondern *ef_ra_222.txt ist?
AW: Gern geschehen... (ot)
15.11.2006 14:38:56
Andi
Hi,
kann man davon ausgehen, dass die Buchstaben.Kombinationen bg, ef und sr ausschliesslich in den jeweiligen Dateien vorkommen? Oder kann zB eine 'bg-Datei' irgendwo in ihrem Namen auch ein ef oder ein sr drin haben?
Schönen Gruß,
Andi
Anzeige
AW: Gern geschehen... (ot)
15.11.2006 14:52:05
Andreas
folgendermasen sehen die files genau aus:
6277_Ef_Sr90.txt
6277_Pl_Backg.txt
6277_Pl_Sr90.txt
die ersten 4 ist die seriennummer
AW: Gern geschehen... (ot)
15.11.2006 14:57:49
Andi
Hi,
und die Teile
Ef_Sr90
Pl_Backg
Pl_Sr90
bleiben immer gleich?
AW: Gern geschehen... (ot)
15.11.2006 15:41:35
Andreas
ja nur die SN davor ist fortlaufend.
AW: Gern geschehen... (ot)
15.11.2006 15:54:01
Andi
Hi,
dann probier mal dies hier:

Sub txt_import()
Dim SN As String
Dim Anzahl As Integer
Dim zaehler As Integer
SN = InputBox("Bitte SN eingeben:")
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.LookIn = "C:\test"
.SearchSubFolders = False
.Filename = SN & "*.txt"
.Execute
Anzahl = .FoundFiles.Count
ReDim file_array(1 To Anzahl)
For zaehler = 1 To Anzahl
file_array(zaehler) = Right(.FoundFiles(zaehler), Len(.FoundFiles(zaehler)) - InStrRev(.FoundFiles(zaehler), "\"))
Next zaehler
End With
For zaehler = 1 To Anzahl
Workbooks.OpenText Filename:="C:\test\" & file_array(zaehler), Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
Workbooks(file_array(zaehler)).Sheets(1).UsedRange.Copy
Select Case Right(file_array(zaehler), 11)
Case "Ef_Sr90.txt"
ThisWorkbook.Sheets("Tabelle1").Range("A1").PasteSpecial
Case "l_Backg.txt"
ThisWorkbook.Sheets("Tabelle2").Range("A1").PasteSpecial
Case "Pl_Sr90.txt"
ThisWorkbook.Sheets("Tabelle3").Range("A1").PasteSpecial
End Select
Workbooks(file_array(zaehler)).Close
Next zaehler
Application.ScreenUpdating = True
End Sub

Schönen Gruß,
Andi
Anzeige
AW: Gern geschehen... (ot)
15.11.2006 15:52:32
Andreas
ich habs mal so geändert ist das ok?

Sub LB6380()
Dim SN As String
Dim Anzahl As Integer
Dim zaehler As Integer
SN = InputBox("Bitte SN eingeben:")
Application.ScreenUpdating = False
With Application.FileSearch
.NewSearch
.LookIn = "V:\DatenNUK\Zaehlrohpruefung\Pruefprotokolle\LB6380\"
.SearchSubFolders = False
.Filename = SN & "*.txt"
.Execute
Anzahl = .FoundFiles.Count
ReDim file_array(1 To Anzahl)
For zaehler = 1 To Anzahl
file_array(zaehler) = Right(.FoundFiles(zaehler), Len(.FoundFiles(zaehler)) - InStrRev(.FoundFiles(zaehler), "\"))
Next zaehler
End With
For zaehler = 1 To Anzahl
Workbooks.OpenText Filename:="V:\DatenNUK\Zaehlrohpruefung\Pruefprotokolle\LB6380\" & file_array(zaehler), Origin:=xlMSDOS, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
Workbooks(file_array(zaehler)).Sheets(1).UsedRange.Copy
Select Case Right(file_array(zaehler), 12)
Case "_Ef_Sr90.txt"
ThisWorkbook.Sheets("Tabelle1").Range("A1").PasteSpecial
Case "_Pl_Sr90.txt"
ThisWorkbook.Sheets("Tabelle2").Range("A1").PasteSpecial
End Select
Select Case Right(file_array(zaehler), 13)
Case "_Pl_Backg.txt"
ThisWorkbook.Sheets("Tabelle3").Range("A1").PasteSpecial
End Select
Workbooks(file_array(zaehler)).Close
Next zaehler
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Gern geschehen... (ot)
15.11.2006 16:07:01
Andi
Hi,
ich habs mal so geändert ist das ok?
Wenn's läuft, dann isses OK... ;-)
Im Prinzip hast Du das gleiche gemacht wie ich, nur dass ich mir das zweite Select Case gespart hab; Du kannst einfach immer auf die letzten 12 Zeichen (oder bei mir sogar die letzten 11) prüfen, weil auch der längere Dateiname in dem Bereich eindeutig zu identifizieren ist.
Ich hab mich aber gefreut, zu sehen, dass Du offenbar mitdenkst, und nicht einfach blind aus dem Forum in Deine Mappe rüberkopierst :-))
Schönen Gruß,
Andi
AW: Gern geschehen... (ot)
16.11.2006 09:22:20
Andreas
vielen Dank nochmal es läuft. "freu" :)
Gruss
Andreas
Anzeige
AW: Excel Problem bitte um hilfe
14.11.2006 23:10:21
ceyser
Hallo Andreas,
ich habe hier eine Beispielmappe https://www.herber.de/bbs/user/38186.xls.
Ein Formular, daß die "SN-Nummer" erwartet und man kann ein Such-Verzeichnis angeben.
Hier ist der Code:
Private Sub cmdProtokolleEinlesen_Click()
  Dim wksStart As Worksheet, WKB As Workbook
  Dim strFilename As String, strFilenameStart As String
  Dim iCounter As Integer
  Set wksStart = ThisWorkbook.Sheets(1)
  strFilenameStart = Me.txtPfad & "\" & Me.txtSN.Text
  For iCounter = 3 To 1 Step -1
    strFilename = strFilenameStart & "*" & iCounter & ".txt"
    Workbooks.OpenText Filename:=strFilename
    Set WKB = ActiveWorkbook
    WKB.Sheets(1).Copy after:=wksStart
    WKB.Close
  Next iCounter
End Sub
Private Sub UserForm_Initialize()
  Me.txtPfad = "D:\Test"
End Sub
Gruß
CS
Anzeige
AW: Excel Problem bitte um hilfe
15.11.2006 09:52:38
Andreas
Danke CS leider geht es trotzdem nicht oder ich bin zu blöd um in dem richtigen pfad die datei zu suchen. Die Dateien sehen so aus wie oben beschrieben und es sind immer drei txt dateien pro seriennummer.
AW: Excel Problem bitte um hilfe
22.11.2006 19:43:37
ceyser
Hallo Andreas,
ich habe in meinem ursprünglichen Post eine Beispielmappe angehängt, die bei mir funktioniert.
Benutze diese und ändere den Pfad entsprechend ab - ohne slash "\" am Ende. Du darfst nur den Ordnernamen angeben.
Gruß
CS

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige