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

CSP Dateien in Excel Importieren

CSP Dateien in Excel Importieren
NewtonZ4
Hallo Zusammen,
ich habe in einem Ordner (C:\Import) insgesamt 9 CSP Dateien. Die Dateien enthalten Excel Daten.
Ich möchte jetzt per VBA die Dateien automatisch in eine Excel Datei importieren.
Jede importierte Datei bekommt ihr eigenes Blatt, welches den Namen der Import Datei bekommt.
Ich hoffe die Informationen reichen aus und vielen Dank für jede Hilfe
Grüße Stefan
AW: CSP Dateien in Excel Importieren
01.03.2011 22:17:01
Josef

Hallo Stefan,
was ist eine csp-Datei bzw. wie sieht diese aus?

Gruß Sepp

AW: CSP Dateien in Excel Importieren
01.03.2011 22:23:44
NewtonZ4
Die Datei wird bei uns im System erzeugt. Ich kann sie mit Excel entsprechend öffnen.
Siehe Anhang
https://www.herber.de/bbs/user/73792.zip
AW: CSP Dateien in Excel Importieren
01.03.2011 22:41:25
NewtonZ4
Hallo Sepp
ich habe gemerkt, daß die Datei, die ich hochgeladen habe defekt ist. Sorry
Also nochmal...
https://www.herber.de/bbs/user/73793.zip
Anzeige
AW: CSP Dateien in Excel Importieren
01.03.2011 22:46:05
Josef

Hallo Stefan,
dann probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub importCSP()
  Dim objWB As Workbook
  Dim strCSP As String, strPath As String, strNewName As String
  Dim intC As Integer, lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .DisplayAlerts = False
    lngCalc = .Calculation
    .Calculation = xlCalculationManual
  End With
  
  strPath = "E:\Forum"
  
  strPath = IIf(Right(strPath, 1) = "\", strPath, strPath & "\")
  
  strCSP = Dir(strPath & "*.csp", vbNormal)
  
  Do While strCSP <> ""
    
    intC = 0
    
    Set objWB = Workbooks.Open(strPath & strCSP)
    
    objWB.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
    strNewName = strCSP
    
    Do While SheetExist(strNewName)
      intC = intC + 1
      strNewName = strCSP & "(" & intC & ")"
    Loop
    
    ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = strNewName
    objWB.Close False
    
    strCSP = Dir
  Loop
  
  ErrExit:
  
  If Err.Number <> 0 Then
    MsgBox "Fehler:" & vbTab & Err.Number & vbLf & vbLf & Err.Description, vbExclamation, "Fehler"
  End If
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True
    .Calculation = lngCalc
  End With
  
  Set objWB = Nothing
End Sub

Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook) As Boolean
  Dim wks As Worksheet
  On Error GoTo ERRORHANDLER
  If Wb Is Nothing Then Set Wb = ThisWorkbook
  For Each wks In Wb.Worksheets
    If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
  Next
  ERRORHANDLER:
  SheetExist = False
End Function


Gruß Sepp

Anzeige
hast du das jetzt wirklich ...
01.03.2011 22:55:54
Rudi
Hallo Sepp,
... in 5 Minuten zusammengehackt?
Respekt!
Gruß
Rudi
AW: hast du das jetzt wirklich ...
02.03.2011 12:29:22
Josef

Hallo Rudi,
naja, ein paar Minuten länger hats schon gedauert (mit Test ~20), ist ja alles Standardcode also nicht bessonders aufregend.

Gruß Sepp

AW: CSP Dateien in Excel Importieren
01.03.2011 22:57:27
NewtonZ4
Super geil Sepp...
Funzt einwandfrei.
Es gibt noch einen Wunsch. Die einzelnen Blätter haben im Namen immer die Endung CSP.
Geht das auch ohne?
Vielen Dank!
Anzeige
AW: CSP Dateien in Excel Importieren
01.03.2011 23:40:53
Rudi
Hallo,
dazu:
Ersetze
strNewName = strCSP
durch
strNewName = Left(strCSP, Len(strCSP)-4)
Gruß
Rudi
AW: CSP Dateien in Excel Importieren
01.03.2011 23:23:20
NewtonZ4
Hallo Sepp,
jetzt brauche ich nochmal Hilfe...
Nachdem die Blätter importiert sind möchte ich in allen Blättern Row 1-14 löschen und
in allen Blättern Columns A.
Leider wird jedesmal Columns B mit gelöscht.
Ich habe das ganze über den Makro Rekorder gemacht. Aber es Funzt nicht ;-(
Sub Zellen_Löschen()
' Zellen_Löschen Makro
Sheets(Array("M1 Flatter.csp", "M1.csp", "M2 Flatter.csp", "M2.csp", _
"M3 Flatter.csp", "M3.csp", "M4 Flatter.csp", "M4.csp")).Select
Sheets("M1 Flatter.csp").Activate
Columns("A:A").Select
Selection.Delete Shift:=x1ToLeft
Sheets(Array("BadActors.csp", "M1 Flatter.csp", "M1.csp", "M2 Flatter.csp", _
"M2.csp", "M3 Flatter.csp", "M3.csp", "M4 Flatter.csp", "M4.csp")).Select
Sheets("BadActors.csp").Activate
Rows("1:14").Select
Selection.Delete Shift:=xlUp
End Sub

Anzeige
AW: CSP Dateien in Excel Importieren
01.03.2011 23:46:02
Rudi
Hallo,
Codeschnipsel
....
Do While SheetExist(strNewName)
intC = intC + 1
strNewName = strCSP & "(" & intC & ")"
Loop
With ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
.Name = strNewName
.Range("1:14").Delete
.Range("A:A").Delete
End With
objWB.Close False
.....

Gruß
Rudi
AW: CSP Dateien in Excel Importieren
02.03.2011 00:04:10
NewtonZ4
Hallo Rudi,
ich bekomme leider eine Fehlermeldung bei deinem Code.
Stefan
AW: CSP Dateien in Excel Importieren
02.03.2011 12:12:29
Josef

Hallo Stefan,
an der Fehlermeldung war eine verbundene Zelle schuld.
Hier der Code mit allen anpassungen.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub importCSP()
  Dim objWB As Workbook
  Dim strCSP As String, strPath As String, strNewName As String
  Dim intC As Integer, lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    .DisplayAlerts = False
    lngCalc = .Calculation
    .Calculation = xlCalculationManual
  End With
  
  strPath = "E:\Forum"
  
  strPath = IIf(Right(strPath, 1) = "\", strPath, strPath & "\")
  
  strCSP = Dir(strPath & "*.csp", vbNormal)
  
  Do While strCSP <> ""
    
    intC = 0
    
    Set objWB = Workbooks.Open(strPath & strCSP)
    
    objWB.Sheets(1).Copy after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
    
    strNewName = Left(strCSP, Len(strCSP) - 4)
    
    Do While SheetExist(strNewName)
      intC = intC + 1
      strNewName = Left(strCSP, Len(strCSP) - 4) & "(" & intC & ")"
    Loop
    
    With ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
      .Name = strNewName
      .Cells.UnMerge
      .Rows("1:14").Delete
      .Columns(1).Delete
    End With
    
    objWB.Close False
    
    strCSP = Dir
  Loop
  
  ErrExit:
  
  If Err.Number <> 0 Then
    MsgBox "Fehler:" & vbTab & Err.Number & vbLf & vbLf & Err.Description, vbExclamation, "Fehler"
  End If
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .DisplayAlerts = True
    .Calculation = lngCalc
  End With
  
  Set objWB = Nothing
End Sub

Private Function SheetExist(ByVal sheetName As String, Optional Wb As Workbook) As Boolean
  Dim wks As Worksheet
  On Error GoTo ERRORHANDLER
  If Wb Is Nothing Then Set Wb = ThisWorkbook
  For Each wks In Wb.Worksheets
    If LCase(wks.Name) = LCase(sheetName) Then SheetExist = True: Exit Function
  Next
  ERRORHANDLER:
  SheetExist = False
End Function


Gruß Sepp

Anzeige
AW: CSP Dateien in Excel Importieren
04.03.2011 19:33:37
NewtonZ4
Sorry Sepp für die späte Rückmeldung ;-(
Es lag an mir... Ich habe die Datei erst mit Excle2003 ausgeführt und dann mit Excel2007.
Nun Funzt alles.
Ich habe aber das Löschen der Zeilen und Spalten anders gelöst, weil ich nicht in allen Blättern A löschen durfte un nicht in allen 1-14.
Besten Dank nochal

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige