Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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
Zelle exportieren in csv
20.05.2016 11:58:52
Erik
Hallo zusammen,
ich habe leider keine Ahnung von VBA, habe aber diesen Code und bräuchte bei einer Änderung Hilfe.
Es soll zusätzlich zu den selektierten Zellen immernoch die passende Zelle aus Spalte B in die csv Datei intigriert werden und zwar so, daß die Information aus der Zelle B im Array sofort nach 1 kommt
Hallo zusammen,
ich habe leider keine Ahnung von VBA, habe aber diesen Code und bräuchte bei einer Änderung Hilfe.
Es soll zusätzlich zu den selektierten Zellen immernoch die passende Zelle aus Spalte B in die csv Datei intigriert werden und zwar so, daß die Information aus der Zelle B im Array sofort nach 1 kommt
r = Array(2, 4, 1 + (B), 3)
so gehts aber nicht (nur zur Verdeutlichung wie es später sein sollte)
Wäre sehr nett wenn mir jemand behilflich sein könnte
Hier noch ne Beispieltabelle
https://www.herber.de/bbs/user/105531.xls
Gruß
Erik

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelle exportieren in csv
20.05.2016 16:55:40
ChrisL
Hi Erik
Auf die Schnelle konnte ich den bestehenden Code auch nicht einfach anpassen. Ich habe mir daher erlaubt das "System" etwas zu ändern.
Es spielt neu keine Rolle, welche Spalten selektiert werden. Die Selektion ist nur noch für die Zeilen relevant. Darum habe ich die Prüfung auskommentiert.
r = Array(5, 7, 4, 2, 6)
r entspricht nicht mehr nur der Reihenfolge, sondern bezieht sich auf die Spaltennummer (5 = E, 7 = G usw.)
Sub csv_umwandeln()
Dim strTemp As String
Dim strDateiname As String
Dim strTrennzeichen As String
Dim wie As Integer
Dim iZeile As Long
Dim r() As Variant
Dim s As Long
r = Array(5, 7, 4, 2, 6)
'    If Selection.Columns.Count  4 Or Selection(1).Column  4 Then
'    MsgBox "Es wurde nicht D-G selektiert"
'    Exit Sub
'    End If
ChDrive Environ("homedrive")
ChDir Environ("homedrive") & Environ("homepath") & "\downloads\"
strDateiname = "Bestellung.csv"
strDateiname = InputBox("Datei", "Datei Wählen", strDateiname)
If strDateiname = "" Then Exit Sub
wie = vbNo
If Dir(strDateiname)  "" Then
wie = MsgBox("Daten anhängen?", vbYesNo, strDateiname & "Datei bereits vorhanden")
If wie = vbCancel Then Exit Sub
End If
strTrennzeichen = InputBox("Welches Trennzeichen soll verwendet werden?", "CSV-Export", ";")
If strTrennzeichen = "" Then Exit Sub
If wie = vbNo Then
Open strDateiname For Output As #1
Print #1, "0000000;1;Kennzeichen;Bezeichnung"
Else
Open strDateiname For Append As #1
End If
For iZeile = Selection.Row To Selection.Row + Selection.Rows.Count - 1
For s = 0 To UBound(r)
If s = 0 Then
strTemp = Cells(iZeile, r(s))
Else
strTemp = strTemp & strTrennzeichen & Cells(iZeile, r(s))
End If
Next s
Print #1, strTemp
Next iZeile
Close #1
MsgBox "Datei wurde exportiert nach" & vbCrLf & strDateiname
End Sub

cu
Chris

Anzeige
AW: Zelle exportieren in csv
20.05.2016 17:12:10
Erik
Hallo Chris,
grad getestet!
Fast richtig.
Er exportiert aber das Kennzeichen und den Namen in 2 Spalten
Es müsste 1 Spalte sein.
Gruß
Erik
Ps: Vorab schon vielen Dank

AW: Zelle exportieren in csv
20.05.2016 17:37:58
ChrisL
Hi Erik
Wer lesen kann ist im Vorteil oder ich war schon halb im Wochenende. Bin jetzt unterwegs und kann nicht Testen, aber...
r = Array(5, 7, 4, 6)
Hier Spalte 2 wieder raus
und hier anpassen...

For iZeile = Selection.Row To Selection.Row + Selection.Rows.Count - 1
For s = 0 To UBound(r)
If s = 0 Then
strTemp = Cells(iZeile, r(s))
Else
If s = 2 Then
strTemp = strTemp & strTrennzeichen & Cells(iZeile, 2) & Cells(iZeile, r(s))
Else
strTemp = strTemp & strTrennzeichen & Cells(iZeile, r(s))
End If
End If
Next s
Print #1, strTemp
Next iZeile
Close #1

cu
Chris

Anzeige
AW: Zelle exportieren in csv
21.05.2016 08:36:21
Erik
Hallo Cris,
wiedereinmal herzlichen Dank !
Du bist super.
Gruß
Erik
Ps: Wollte noch ein Leerzeichen zwischen Kennzeichen und Namen
strTemp = strTemp & strTrennzeichen & Cells(iZeile, r(s)) & " "
geht aber nicht.
Kannst mir noch einmal helfen ;-)

AW: Zelle exportieren in csv
21.05.2016 08:41:23
ChrisL
Hi Erik
strTemp = strTemp & strTrennzeichen & Cells(iZeile, 2) & " " & Cells(iZeile, r(s))
cu
Chris

AW: Zelle exportieren in csv
24.05.2016 09:36:10
Erik
Hallo Chris,
habe was wichtiges vergessen.
Ist mir eben aufgefallen.
ich brauche immer noch vor die exportierten Daten in Spalte A-D
einen Platzhalter "x"
wo muß ich den Code
For s = 1 To 4: strTemp = strTemp & "x" & strTrennzeichen: Next
dazwischenfügen ?
Gruß
Erik

Anzeige
AW: Zelle exportieren in csv
24.05.2016 10:04:14
ChrisL
Hi Erik
Ist leider nicht ganz klar, vor jeder Spalte einzeln und als eigene Spalte oder anders?
For iZeile = Selection.Row To Selection.Row + Selection.Rows.Count - 1
For s = 0 To UBound(r)
If s = 0 Then
strTemp = "x" & strTrennzeichen & Cells(iZeile, r(s))
Else
If s = 2 Then
strTemp = strTemp & strTrennzeichen & "x" & strTrennzeichen & Cells(iZeile,  _
2) & " " & Cells(iZeile, r(s))
Else
strTemp = strTemp & strTrennzeichen & "x" & strTrennzeichen & Cells(iZeile,  _
r(s))
End If
End If
Next s
Print #1, strTemp
Next iZeile
Close #1
cu
Chris

Anzeige
AW: Zelle exportieren in csv
24.05.2016 10:26:29
Erik
Hallo Chris,
vor jeder Spalte a-d ein X
Gruß
Erik

AW: Zelle exportieren in csv
24.05.2016 12:20:55
ChrisL
Hi Erik
Dann müsste der Code passen, oder?
cu
Chris

AW: Zelle exportieren in csv
24.05.2016 13:40:36
Erik
Hallo Chris,
nein passt leider nicht.
Excel setzt vor jede exportierte Zelle ein x
d.h es sieht so aus:
x 1087548 x 1 x Name Vorname Kennz x Sensor
x 1385625 x 1 x Name Vorname Kennz x Halteclip
soll aber so aussehen:
x x x x 1087548 1 Name Vorname Kennz Sensor
x x x x 1385625 1 Name Vorname Kennz Halteclip

AW: Zelle exportieren in csv
24.05.2016 16:30:22
ChrisL
Hi Erik
Neuer Versuch:
For iZeile = Selection.Row To Selection.Row + Selection.Rows.Count - 1
For s = 0 To UBound(r)
If s = 0 Then
strTemp = "x;x;x;x" & Cells(iZeile, r(s))
Else
If s = 2 Then
strTemp = strTemp & strTrennzeichen & Cells(iZeile, 2) & " " & Cells( _
iZeile, r(s))
Else
strTemp = strTemp & strTrennzeichen & Cells(iZeile, r(s))
End If
End If
Next s
Print #1, strTemp
Next iZeile
Close #1

cu
Chris

Anzeige
AW: Zelle exportieren in csv
24.05.2016 17:05:11
Erik
Hallo Chris,
immer noch net :-)
jetzt siehts so aus
die ersten drei x sind in einer seperaten Zelle das letzte x steht in der Zelle der Teilenummer
aber fast.
Gruß Erik

AW: Zelle exportieren in csv
24.05.2016 17:07:44
Erik
Hallo nochmal !
Habs selber hinbekommen hat nur ein ;
gefehlt.
Nochmals vielen Dank an Dich.
So was nettes findet man selten !
Gruß
Erik

132 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige