viele Hilfe, Tipps und Tricks habe ich schon mit copy / paste hier in diesem Forum gefunden. Vielen Dank dafür. Aber jetzt komme ich nicht mehr weiter.
der csv Export ist ja schon massenhaft diskutiert worden sodass ich mir folgendes (Teil-) Script zusammenbauen konnte:
For Each LfdRow In SrcRg.Rows
If Not LfdRow.EntireRow.Hidden Then
'Nur eingeblendete Zeilen werden ausgegeben - Zeilenanfang:
ZeileStr = ""
For Each LfdZelle In LfdRow.Cells
With LfdZelle
If Not .EntireColumn.Hidden Then
'Nur eingeblendete Spalten werden ausgegeben - Feldausgabe (Format hängt von Spalte ab):
Select Case .Column
Case 5: FeldStr = Replace(.Value, ";", ",")
Case 6, 7: FeldStr = LCase(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(.Value, " ", ""), "ü", "ue"), "ä", "ae"), "ö", "oe"), "ß", "ss"), "\\", "-"), "/", "-"), "é", "e"), "è", "e"))
Case Else: FeldStr = CStr(.Value)
End Select
'Feld wird, eingeschlossen in "...", an Zeile angefügt, gefolgt vom Feldtrennzeichen
ZeileStr = ZeileStr & Chr(34) & FeldStr & Chr(34) & FeldSep
End If
End With
Next LfdZelle
'Am Zeilenende vorhandene Feldtrennzeichen werden aus der Zeile entfernt
While Right(ZeileStr, 1) = FeldSep
ZeileStr = Left(ZeileStr, Len(ZeileStr) - 1)
Wend
'Die Zeile samt Zeilenendezeiche (und anschließendem CRLF) wird in die Datei ausgegeben.
Print #DtN, ZeileStr & ZeileEnd
End If
Next LfdRow
Das funktioniert auch soweit ganz gut - aber ich würde gerne folgende "Optimierungen" durchführen: - es sollen nicht alle Spalten exportiert werden
- der exportierte Wert soll aus vorhandenen Daten erst ermittelt werden
Beispiel:
Spalte A = username
Spalte B ("errechnet") = username@"meine domain.tld" oder "wenn Spalte A = xy dann z"
Kann mir jemand dafür die richtige Richtung weisen?
Zudem habe ich noch das Problem, dass ich im Beispiel oben eigentlich Spalte 6 und 7 auch in lower cases ausgeben möchte - aber die Spaltenüberschrift muss upper cases weiterhin enthalten...
Vielen Dank für eure Hilfe....
Mat