bn2023
Goto Top

Daten aus mehreren Excelspalten in Textdatei übernehmen

Hallo,

ich habe eine Libre-Office Calc-Datei (jedoch als .xlsx gespeichert) mit Zeitangaben (z.B. 04:38), die automatisch addiert werden.
Die Ergebnisse der Zeitangaben werden automatisch in eine andere Spalte "H" übernommen.

In Spalte "G" stehen jedoch auch noch Einträge (G7 - G78).

Nun sollen die Einträge aus den Spalten "G + H" (also G7 - H78) zusammengeführt und dann in eine Textdatei (.txt) übertragen werden.

Meine Lösungsversuche bisher:

Nun habe ich mit dem Befehl "=VERKETTEN(G7;H7)" in der Zelle J7 und dann runterziehen bis J78 schon mal Teil 1 geschafft.
Leider werden die Zeitangaben nicht korrekt übernommen. In den entsprechenden Zellen steht nun z.B. "INDEX 01 0,1875".
Dort sollte aber eigentlich stehen "INDEX 01 04:30:00".

Ich habe jetzt alle Zellen, die diesen Eintrag enthalten mal mit "Uhrzeit" formatiert. Aber da änderte sich nichts...
Offenbar werden die Zeitangaben mit "Dezimalzahl Standard" oder "Text" übertragen. Ich suchte nun also eine Möglichkeit, zunächst mal über eine Hilfsspalte die Zeitangaben in Dezimalzahlen zu übernehmen, aber eben so, wie Uhrzeiten geschrieben werden --> 04:30:00

Das wiederum habe ich eben mit der Formel "=TEXT(H15; "hh:mm:ss")" versucht, die auch zunächst mal funktioniert.
Jedoch nur bis zum Eintrag "21:44:00". Ab dem folgenden Eintrag springt der Eintrag quasi auf den nächsten Tag um.
Da soll nämlich eigentlich "27:05:00" stehen. Aber es erscheint der Text "03:05:00".

OK... auch das gelölst face-smile

Mit der Formel "=TEXT(H15; "[HH]:MM:SS")" geht es. Jetzt steht dort "27:05:00".

Aber wie übertrage ich jetzt den Inhalt der verketteten Spalte in eine Textdatei (.txt)?

Könnt Ihr hier weiterhelfen?

Danke und Grüße,
BN

Content-ID: 668571

Url: https://administrator.de/contentid/668571

Ausgedruckt am: 03.10.2024 um 15:10 Uhr

Ted555
Ted555 03.10.2024 aktualisiert um 16:19:54 Uhr
Goto Top
Aber wie übertrage ich jetzt den Inhalt der verketteten Spalte in eine Textdatei (.txt)?
Von Hand ??

Markieren
CTRL+C
Textdatei öffnen
CTRL+V

Oder Speichern unter > *.csv

usw. usw.

Automatisiert, z.B. Powershell

$mappe = "D:\Ordner\Mappe.xlsx"  
$export = "D:\Ordner\export.txt"  
if(!(Get-Module -ListAvailable -Name ImportExcel)){
    Install-Module ImportExcel -Scope CurrentUser
}
(Import-Excel -Path $mappe -StartColumn 10 -EndColumn 10 -NoHeader).P1 | set-content -Path $export
Oder ohne ImportExcel Modul
$mappe = "D:\Ordner\Mappe.xlsx"  
$export = "D:\Ordner\export.txt"  
Add-Type -AssemblyName Microsoft.Office.Interop.Excel
$objExcel = New-Object -Com Excel.Application -Property @{Visible = $true}
$wb = $objExcel.Workbooks.Open($mappe)
$ws = $wb.Sheets.Item(1)
$ws.Range("J1:J" + $ws.Cells($ws.Rows.Count,"J").End([Microsoft.Office.Interop.Excel.XlDirection]::xlUp).Row).Value() | set-content -Path $export  
[void][System.Runtime.InteropServices.Marshal]::ReleaseComObject($objExcel)
$wb.Close($false)
$ojExcel.Quit()
Oder als VBA
Sub ExportToText()
    Dim fso As Object, csvFile As Object
    Const FILEPATH = "D:\Ordner\export.txt"  
    Set fso = CreateObject("Scripting.FileSystemObject")  
    Set csvFile = fso.OpenTextFile(FILEPATH, 2, True)
    With Sheets(1)
        For Each cell In Sheets(1).Range("J1:J" & .Cells(Rows.Count, "J").End(xlUp).Row)  
            csvFile.WriteLine cell.Value
        Next
    End With
    csvFile.Close
    Set fso = Nothing
    Set csvFile = Nothing
End Sub

usw.