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

Was ratet ihr? "Auslesen"

Was ratet ihr? "Auslesen"
Steve
Guten Abend allersetiz,
was ratet ihr mir?
Ich exportiere Blatt 1 inhalte in ein *.txt file und importiere sie auch wieder von diesem und es funktioniert gut.
Aber ich habe 2 probleme.
- Vie kann ich nach dem import die betrags angaben in einer reihe wieder als nummer deklarieren, da nach dem import jeder eintrag als text erkannt wird?
- Kan man mit einer formel die zellen mit formelinhalte überspringen da beim export nur die berechnungen und nicht di eformeln exportiert werden.
Oder habt ihr einen anderen rat wie ich die daten extern speichern kann und in einer neuen tabelle wieder importieren mit den ganzen formatierungen?
Danke an alle und noch einen schönen abend.
Steve
AW: Warum der Export in ein txt-File?
13.02.2012 21:47:31
JoWe
AW: Warum der Export in ein txt-File?
13.02.2012 21:50:47
Steve
Hallo JoWe,
Das schin mir die beste wahl, aber es stellt sich jetzt als etwas kompliziert oder gar falsch heraus.
Ich dachte schon an einen export in eine excel tabelle, oder gibt es eine bessere wahl?
AW: Warum der Export in ein txt-File?
13.02.2012 21:57:07
JoWe
Hi Steve,
Deine Daten liegen in einer Excel-Tabelle vor? Dann kopiere doch einfach das Blatt1 in eine neue leere Arbeitsmappe (rechte Maustaste auf das Registerelement "Tabelle1", verschieben/kopieren, in eine 'neue Arbeitsmappe', Kopie erstellen). Die so neu erstellte Arbeitsmappe speichern.
Gruß
Jochen
AW: Warum der Export in ein txt-File?
13.02.2012 23:08:35
Steve
Ich wollte nicht das ganze blatt speichern wegen eventuellen formeländerungen.
Daher wollte ich nur bereiche koppieren die keine formeln beinhalten und das er maximal so weit kopiert wie die zellen beschrieben sind.
Und das müsste vom blatt 1 und blatt 2 in ein neues excel file kopiert werden wen möglich mit "speicherwahl vom neuen file". und mit einem anderen code wieder retur kopiert werden ohne die zellen mit den formeln zu löschen.
Hat jemand einen beispiel code?
Danke Steve
Anzeige
AW: Warum der Export in ein txt-File?
13.02.2012 23:38:18
Josef

Hallo Steve,
ich brauche ja nicht zu wissen, wofür das gut ist;-))
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub exportToTxt()
  Dim vntSheets As Variant
  Dim rng As Range, rngConstants As Range
  Dim strFile As String
  Dim ff As Integer, lngIndex As Long
  
  vntSheets = Array("Tabelle1", "Tabelle2") 'Tabellenblätter
  
  strFile = "E:\Temp\const.txt" 'Pfad der Textdatei
  
  ff = FreeFile
  Open strFile For Output As ff
  For lngIndex = 0 To UBound(vntSheets)
    With Sheets(vntSheets(lngIndex))
      On Error Resume Next
      Set rngConstants = .UsedRange.SpecialCells(xlCellTypeConstants)
      On Error GoTo 0
      If Not rngConstants Is Nothing Then
        For Each rng In rngConstants.Cells
          If Len(rng) Then
            Print #ff, vntSheets(lngIndex) & vbTab & rng.Address(0, 0) & vbTab & rng
          End If
        Next
      End If
    End With
  Next
  Close #ff
  
  Set rngConstants = Nothing
  Set rng = Nothing
End Sub


Sub importFromTxt()
  Dim strFile As String
  Dim vntInput As Variant, strTmp As Variant
  Dim ff As Integer
  
  strFile = "E:\Temp\const.txt" 'Pfad der Textdatei
  
  ff = FreeFile
  
  Open strFile For Input As #ff
  Do While Not EOF(ff)
    Input #ff, strTmp
    vntInput = Split(strTmp, vbTab)
    Sheets(vntInput(0)).Range(vntInput(1)) = vntInput(2)
  Loop
  Close #ff
  
End Sub



« Gruß Sepp »

Anzeige
AW: Warum der Export in ein txt-File?
14.02.2012 07:52:19
Steve
Hallo Sepp,
Besten dank, es funktioniert ja sehr gut !
Hättest du eine gute alternative?
ich brauche ja nicht zu wissen, wofür das gut ist;-))
:D
Steve
AW: Warum der Export in ein txt-File?
14.02.2012 08:47:01
Josef

Hallo Steve,
Alternative zu was? Wie gesagt, ich weiß nicht wofür das gut ist bzw. was genau du damit bezweckst.

« Gruß Sepp »

Anzeige
AW: Warum der Export in ein txt-File?
14.02.2012 08:59:04
Steve
Hallo Sepp,
Ich wollte einige daten ab zelle B6 in Blatt1 und das gleiche in Blatt2 auslesen weil ich viel ausprobiere und da die formeln wechseln und ich nicht immer wieder das gleiche reinschreiben möchte, dachte ich es wäre sehr interessant die zellen ohne formeln auslesen zu können und in die neue tabelle wieder einfügen, so das ich die ausgelesene daten mit den "Neuen" formeln berechnen kann.
Ich dachte daher an ein *.txt file, aber es könnte auch eine excel tabelle sein, nur eben das was wechselt sind die formeln daher kann ich nicht das ganze blatt kopieren.
Gruss Steve
Anzeige
AW: Warum der Export in ein txt-File?
14.02.2012 09:29:18
Josef

Hallo Steve,
dazu würde ich die Werte in eine Exceltabelle kopieren, dann bleiben auch die Formate erhalten.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub exportValues()
  Dim objWB As Workbook, objSh As Worksheet
  Dim strFile As String
  Dim vntSheets As Variant
  Dim rng As Range, rngValues As Range
  Dim lngIndex As Long, lngRow As Long, lngFormat As Long
  Dim lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    lngCalc = .Calculation
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
  End With
  
  vntSheets = Array("Tabelle1", "Tabelle2")
  
  strFile = Application.GetSaveAsFilename("Werte_" & ThisWorkbook.Name, "Excel Dateien (*.xls; *.xlsx; *.xlsm)," & _
    "*.xls; *.xlsx; *.xlsm")
  
  If strFile = CStr(False) Then Exit Sub
  
  Set objWB = Workbooks.Add(xlWBATWorksheet)
  Set objSh = objWB.Sheets(1)
  
  For lngIndex = 0 To UBound(vntSheets)
    Set rngValues = Nothing
    On Error Resume Next
    Set rngValues = ThisWorkbook.Sheets(vntSheets(lngIndex)).UsedRange.SpecialCells(xlCellTypeConstants)
    On Error GoTo 0
    If Not rngValues Is Nothing Then
      For Each rng In rngValues.Cells
        lngRow = lngRow + 1
        objSh.Cells(lngRow, 1) = vntSheets(lngIndex)
        objSh.Cells(lngRow, 2) = rng.Address
        rng.Copy objSh.Cells(lngRow, 3)
      Next
    End If
  Next
  
  getFileExtAndFormat objWB, "", lngFormat
  objWB.SaveAs strFile, FileFormat:=lngFormat
  objWB.Close
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'exportValues'" & vbLf & String(60, "_") & _
        vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
        "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
        .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
        "VBA - Fehler in Modul - Modul1"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = lngCalc
    .DisplayAlerts = True
  End With
  
  
  Set objSh = Nothing
  Set objWB = Nothing
  Set rng = Nothing
  Set rngValues = Nothing
End Sub


Sub importValues()
  Dim objWB As Workbook
  Dim rng As Range
  Dim strFile As String
  Dim lngCalc As Long
  
  On Error GoTo ErrExit
  
  With Application
    .ScreenUpdating = False
    .EnableEvents = False
    lngCalc = .Calculation
    .Calculation = xlCalculationManual
    .DisplayAlerts = False
  End With
  
  strFile = Application.GetOpenFilename("Excel Dateien (*.xls; *.xlsx; *.xlsm)," & _
    "*.xls; *.xlsx; *.xlsm")
  
  If strFile = CStr(False) Then Exit Sub
  
  Set objWB = Workbooks.Open(strFile)
  
  For Each rng In objWB.Sheets(1).Columns(1).SpecialCells(xlCellTypeConstants)
    rng.Offset(0, 2).Copy ThisWorkbook.Sheets(rng.Text).Range(rng.Offset(0, 1).Text)
  Next
  
  objWB.Close False
  
  ErrExit:
  
  With Err
    If .Number <> 0 Then
      MsgBox "Fehler in Prozedur:" & vbTab & "'importValues'" & vbLf & String(60, "_") & _
        vbLf & vbLf & IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & _
        "Fehlernummer:" & vbTab & .Number & vbLf & vbLf & "Beschreibung:" & vbTab & _
        .Description & vbLf, vbExclamation + vbMsgBoxSetForeground, _
        "VBA - Fehler in Modul - Modul1"
      .Clear
    End If
  End With
  
  On Error GoTo 0
  
  With Application
    .ScreenUpdating = True
    .EnableEvents = True
    .Calculation = lngCalc
    .DisplayAlerts = True
  End With
  
  Set objWB = Nothing
  Set rng = Nothing
End Sub


Private Function getFileExtAndFormat(ByRef WB As Workbook, ByRef strExt As String, ByRef lngFormat As Long)
  With WB
    If Val(Application.Version) < 12 Then
      strExt = ".xls": lngFormat = -4143
    Else
      Select Case WB.FileFormat
        Case 51: strExt = ".xlsx": lngFormat = 51
        Case 52:
          If .HasVBProject Then
            strExt = ".xlsm": lngFormat = 52
          Else
            strExt = ".xlsx": lngFormat = 51
          End If
        Case 56: strExt = ".xls": lngFormat = 56
        Case Else: strExt = ".xlsb": lngFormat = 50
      End Select
    End If
  End With
End Function



« Gruß Sepp »

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige