Microsoft Excel

Herbers Excel/VBA-Archiv

Spalten trennen bei Massendaten

Betrifft: Spalten trennen bei Massendaten von: A. Oeschger
Geschrieben am: 22.09.2014 11:42:25

Guten Tag,

ich habe eine Frage: wie kann ich bei einer Spalte mit mehreren gleichen Einträgen, diese auf zwei Spalten verteilen:
Spalte 1
Zürich (710)
Basel (740)
Bern (750)

Dies soll nacher wie folgt aussehen
Spalte 2
Zürich
Basel
Bern

Spalte 3
710
740
750

Vielen Dank!

  

Betrifft: AW: Spalten trennen bei Massendaten von: Hajo_Zi
Geschrieben am: 22.09.2014 11:51:43

Daten Text in Spalte, Trennzeichen ( und Strg+H ) ersetzen durch ""

GrußformelHomepage


  

Betrifft: AW: Spalten trennen bei Massendaten von: Peter Feustel
Geschrieben am: 22.09.2014 12:28:45

Hallo A. Oeschger,

das könnte so funktionieren - Annahme: Deine Daten stehen in Spalte A ab Zeile 2

Option Explicit

Public Sub Aufteilen()

Dim WkSh        As Worksheet
Dim VEingabe    As Variant
Dim vAusgabe()  As Variant
Dim lZeile_E    As Long
Dim lZeile_A    As Long
Dim lLetzte     As Long
Dim iPosition   As Integer
Dim vTemp       As Variant

   Set WkSh = ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
   lLetzte = WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
   VEingabe = WkSh.Range("A2:A" & lLetzte)
   ReDim vAusgabe(1 To lLetzte, 1 To 2)
   For lZeile_E = LBound(VEingabe) To UBound(VEingabe)
      If VEingabe(lZeile_E, 1) <> "" Then
         lZeile_A = lZeile_A + 1
         iPosition = InStr(VEingabe(lZeile_E, 1), "(")
         vAusgabe(lZeile_A, 1) = Trim$(Left(VEingabe(lZeile_E, 1), iPosition - 2))
         vTemp = Split(VEingabe(lZeile_E, 1), "(")
         vTemp(1) = Replace(vTemp(1), ")", "")
         vAusgabe(lZeile_A, 2) = Trim$(vTemp(1))
      End If
   Next lZeile_E
   
   Range("B2:C" & lZeile_A + 1) = vAusgabe

End Sub
Gruß Peter


  

Betrifft: AW: Spalten trennen bei Massendaten von: Peter Feustel
Geschrieben am: 22.09.2014 13:24:48

Hallo A. Oeschger,

noch etwas kürzer:

Public Sub Aufteilen()

Dim WkSh        As Worksheet
Dim VEingabe    As Variant
Dim vAusgabe()  As Variant
Dim lZeile_E    As Long
Dim lZeile_A    As Long
Dim lLetzte     As Long
Dim iPosition   As Integer
Dim vTemp       As Variant

   Set WkSh = ThisWorkbook.Worksheets("Tabelle1") ' den Tabellenblattnamen ggf. anpassen!
   lLetzte = WkSh.Cells(WkSh.Rows.Count, 1).End(xlUp).Row
   VEingabe = WkSh.Range("A2:A" & lLetzte)
   ReDim vAusgabe(1 To lLetzte, 1 To 2)
   For lZeile_E = LBound(VEingabe) To UBound(VEingabe)
      If VEingabe(lZeile_E, 1) <> "" Then
         lZeile_A = lZeile_A + 1
         vTemp = Split(VEingabe(lZeile_E, 1), "(")
         vAusgabe(lZeile_A, 1) = Trim$(vTemp(0))
         vTemp(1) = Replace(vTemp(1), ")", "")
         vAusgabe(lZeile_A, 2) = Trim$(vTemp(1))
      End If
   Next lZeile_E
   
   Range("B2:C" & lZeile_A + 1) = vAusgabe ' +1, weil in Zeile 2 begonnen wird

End Sub
Gruß Peter


 

Beiträge aus den Excel-Beispielen zum Thema "Spalten trennen bei Massendaten"