Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1920to1924
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
Split mit 3 Werten
13.03.2023 18:41:59
Eisi
Hallo zusammen,
nachfolgender Code trennt immer folgenden Text in einer Zelle: 60 / 75 / 125
Kopiert die Zeile und trägt in die erste Position 60 ein und darunter die 75 und darunter die 125 ein.
Aber die restlichen Werte in den Zellen in der die 125 steht bleiben leer.
Die Datenzeile, in der die 60 steht wird in die Datenzeile 75 kopiert, aber nicht mehr in die Datenzeile 125.
Warum ist das so, an welcher Stelle fehlt noch eine Information?
Herzlichen Dank für die Hilfe.
VG Eisi :-)

Sub ZeileKopierenEinfuegen()
    Dim lastRowAP As Long
    Dim i      As Long
    Dim mySplit As Variant
    With tbl_DatenstammQuelle
        lastRowAP = .Cells(.Rows.Count, 42).End(xlUp).Row 'Spalte 42 = Spalte AP
        For i = lastRowAP To 2 Step -1
            mySplit = Split(.Range("AP" & i).Value, " / ")
            If UBound(mySplit) > 1 Then
                .Rows(i).Copy
                .Rows(i + 1).Insert Shift:=xlDown
                .Rows(i + 2).Insert Shift:=xlDown
                .Range("AP" & i).Value = mySplit(0)
                .Range("AP" & i + 1).Value = mySplit(1)
                .Range("AP" & i + 2).Value = mySplit(2)
                Application.CutCopyMode = False
            End If
        Next
    End With
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Split mit 3 Werten
13.03.2023 19:01:22
onur
Ich kann deinen Ausführungen nicht folgen.
Wie wäre es mit einer Beispielsdatei, wo du zeigst, wie das Ganze aussieht und wie es aussehen sollte ?
AW: Split mit 3 Werten
13.03.2023 19:42:40
Yal
Hallo Eisi,
Der Copy-Insert auf einer ganzen Zeile verhält sich anders als den Copy-paste, bzw. einen "Copy-Paste-Paste", wie Du es haben möchtest: nach der ersten "Insert" wird die Zwischenablage geleert. So wird bei zweiten Vorgang nur eine leere Zeile inseriert.
Du kannst das umgehen, in dem Du einen Insert auf 2 Zeilen machst:
Sub ZeileKopierenEinfuegen()
Dim i      As Long
Dim mySplit As Variant
    Application.EnableEvents = False 'weil in Zellen reingeschrieben wird
    With tbl_DatenstammQuelle
        For i = .Cells(.Rows.Count, "AP").End(xlUp).Row To 2 Step -1
            mySplit = Split(.Range("AP" & i).Value, " / ")
            If UBound(mySplit) > 1 Then
                .Rows(i).Copy
                .Rows(i + 1 & ":" & i + 2).Insert Shift:=xlDown
                .Range("AP" & i).Resize(3, 1) = Application.Transpose(mySplit)
            End If
        Next
    End With
    Application.EnableEvents = True
End Sub
Was Du da gerade machst, nennt sich Entpivotieren und lässt sich sehr gemütlich mit Power Query machen (ok, da verliert man dabei die Formeln...)
VG
Yal
Anzeige
AW: Split mit 3 Werten
13.03.2023 20:25:12
Eisi
Hallo Yal,
vielen Dank, läuft super.
Eine Frage bitte noch:
Die kopierte Zeile ist mit einer grünen Strichlinie komplett umrahmt, also noch aktiv.
Ich dachte mir mit: Range("A2").Select kann ich das deaktivieren.
Aber wenn der Cursor in A2 steht, dann ist die kopierte Zeile 345 immer noch aktiv. Wie schaltet das man aus?
Danke schön.
VG Eisi :-)
AW: Split mit 3 Werten
13.03.2023 20:30:14
onur
Das bedeutet nicht "aktiv", sondern noch im Clipboard gespeichert.
Einfach Zwischenspeicher löschen:
Application.CutCopyMode = False

AW: Split mit 3 Werten
13.03.2023 20:33:58
Eisi
Hallo onur,
super, danke schön :-)
VG Eisi
Anzeige

177 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige