Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
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

Import in verschiedene Tabellenblätter

Import in verschiedene Tabellenblätter
17.10.2016 11:58:45
Dieter
Hallo,
aktuell werden Text Dateien über eine Auswahl(Alarme, Auslastung und alle Dateien) ins erste Tabellenblatt importiert.
Kann mir bitte jemand dabei helfen, wie die Änderung aussehen müßte,
dass für die verschiedenen Auswahlkriterien jeweils ein eigenes Tabellenblatt angelegt wird?
Vielen Dank
Dieter
Public Sub Main()
Dim intFiles As Integer
Dim varFiles As Variant
Dim r As Long, c As Long
Dim lngZeile As Long
On Error GoTo Fin
ChDrive "C:"
ChDir "C:\test"
r = 2
varFiles = Application.GetOpenFilename( _
FileFilter:="Alarme, *Alarme*.txt,Auslastung, *Auslastung*.txt,Alle Dateien, *.*", _
MultiSelect:=True)
If Not VarType(varFiles) = vbBoolean Then
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
For intFiles = 1 To UBound(varFiles)
Open varFiles(intFiles) For Input As #1
'Kopfzeile der Datei übergehen
For lngZeile = 1 To 6
Line Input #1, buffer
Next 'lngZeile
Do While Not EOF(1)
Line Input #1, buffer
SplitBuffer = Split(buffer, ";")
For c = LBound(SplitBuffer) To UBound(SplitBuffer)
ActiveSheet.Cells(r, c + 1) = SplitBuffer(c)
Next
r = r + 1
Loop
Close #1    ' Datei schließen
Next intFiles
Else
MsgBox "Abbruch!", vbInformation, "Dateiauswahl!"
End If
Fin:
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With
If Err.Number  0 Then MsgBox "Error: " & _
Err.Number & " " & Err.Description
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Import in verschiedene Tabellenblätter
17.10.2016 12:04:48
Armin
Hallo Dieter,
da brauchst Du keine Änderung!
Einfach eine neue Tabelle anlegen (oder weiter schalten) und das Makro starten.
Der Code bezieht sich nicht auf ein besonders Tabellenblatt (ActiveSheet).
Gruß Armin
AW: Import in verschiedene Tabellenblätter
17.10.2016 12:11:37
Theo
Hi,
basierend auf dem Dateinamen geht das automatisch mit dieser kleine Änderung:
Public Sub Main()
Dim intFiles As Integer
Dim varFiles As Variant
Dim r As Long, c As Long
Dim lngZeile As Long
On Error GoTo Fin
ChDrive "C:"
ChDir "C:\test"
r = 2
varFiles = Application.GetOpenFilename( _
FileFilter:="Alarme, *Alarme*.txt,Auslastung, *Auslastung*.txt,Alle Dateien, *.*" _
, _
MultiSelect:=True)
If Not VarType(varFiles) = vbBoolean Then
With Application
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
End With
For intFiles = 1 To UBound(varFiles)
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
'prüfe Dateiname und aktiviere die tabelle
Select Case LCase(varFiles(intFiles), 3)
Case "ala"    'alarm
Sheets("Alarm").Activate
Case "aus"    'Auslastung
Sheets("Auslastung").Activate
Case Else  'sonstige
Sheets("Sonstige").Activate
End Select
'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Open varFiles(intFiles) For Input As #1
'Kopfzeile der Datei übergehen
For lngZeile = 1 To 6
Line Input #1, buffer
Next    'lngZeile
Do While Not EOF(1)
Line Input #1, buffer
SplitBuffer = Split(buffer, ";")
For c = LBound(SplitBuffer) To UBound(SplitBuffer)
ActiveSheet.Cells(r, c + 1) = SplitBuffer(c)
Next
r = r + 1
Loop
Close #1    ' Datei schließen
Next intFiles
Else
MsgBox "Abbruch!", vbInformation, "Dateiauswahl!"
End If
Fin:
With Application
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
End With
If Err.Number  0 Then MsgBox "Error: " & _
Err.Number & " " & Err.Description
End Sub
Grüsse
Theo
Anzeige
AW: Import in verschiedene Tabellenblätter
17.10.2016 13:44:51
Dieter
Hallo Theo,
danke für die Antwort.
Muss ich hierbei noch die Variablen Deklarieren,
da ich die Meldung "falsche Anzahl an Argumenten oder ungültige Zuweisung einer Eigenschaft" bekomme?
Grüße
Dieter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige