Thema Datum  Von Nutzer Rating
Antwort
24.03.2021 14:25:33 Ronja Rehm
NotSolved
24.03.2021 22:09:42 Gast6193
NotSolved
24.03.2021 22:15:39 Gast4524
NotSolved
Blau Text aufsplitten
25.03.2021 01:06:56 xlKing
NotSolved
25.03.2021 10:15:37 Gast26915
NotSolved
25.03.2021 20:00:04 xlKing
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
25.03.2021 01:06:56
Views:
570
Rating: Antwort:
  Ja
Thema:
Text aufsplitten

Hallo Ronja,

eigentlich ist das ein klassischer Fall für Auftragsprogrammierung. Es gibt Programmierer die dadurch ihre Brötchen verdienen. Denen könntet ihr ruhig ein paar Kröten zukommen lassen. Da es aber nicht allzuschwer war hab ich mich mal mit dran gesetzt. Ein paar Fragen sind aufgekommen: Hat es einen Grund, dass das Wort *Beschreibung* im zweiten Datensatz fehlt? Wie sieht z.B. ein Link zum Investitionsdatenblatt genau aus? Wird hier ein Hyperlink benötigt?, warum ist dieser nicht im Feld Anmerkung deiner Zieltabelle enthalten?, und was ist h1?

Ansonsten probier mal den folgenden Code:

Sub Aufsplitten()
  
  Const Überschrift = 4 'Zeile für Überschrift
  
  'Spaltennunmmern angeben
  Const Beschreibung = 7, Zielgruppe = 8, Kanäle = 9
  Const Risikoklasse = 10, Finanzklasse = 11, Anmerkung = 12
  
  Dim lzei As Long, r As Range, c As Range, s As Variant, t As Variant, Spalte As Long
  
  'letzte Zeile ermitteln
  lzei = Cells(Rows.Count, 1).End(xlUp).Row
  Set r = Range(Cells(Überschrift + 1, Beschreibung - 1), Cells(lzei, Beschreibung - 1))
  
  Cells(Überschrift, Beschreibung) = "Beschreibung"
  Cells(Überschrift, Zielgruppe) = "Zielgruppe und Kundenanzahl"
  Cells(Überschrift, Kanäle) = "Kanäle"
  Cells(Überschrift, Risikoklasse) = "Risikoklasse"
  Cells(Überschrift, Finanzklasse) = "Finanzklasse"
  Cells(Überschrift, Anmerkung) = "Anmerkung"
  Range(Cells(Überschrift, Beschreibung), Cells(Überschrift, Anmerkung)).Font.Bold = True
  With Range(Cells(Überschrift, Beschreibung), Cells(lzei, Anmerkung))
    For i = 7 To 12
      .Borders(i).LineStyle = xlContinuous
    Next i
  End With
  
  For Each c In r.Cells
    Spalte = Beschreibung
    s = Split(c, Chr(10))
    For Each t In s
      If Left(t, 1) = "*" Then
        Select Case t
        Case "*Beschreibung*"
          Spalte = Beschreibung
        Case "*Zielgruppe und Kundenanzahl*"
          Spalte = Zielgruppe
        Case "*Kanäle*"
          Spalte = Kanäle
        Case "*Risikoklasse*"
          Spalte = Risikoklasse
        Case "*Finanzklasse*"
          Spalte = Finanzklasse
        Case "*Anmerkung*"
          Spalte = Anmerkung
        End Select
      ElseIf Trim(t) <> "" Then
        If Cells(c.Row, Spalte) = "" Then
          Cells(c.Row, Spalte) = t
        Else
          Cells(c.Row, Spalte) = Cells(c.Row, Spalte) & Chr(10) & t
        End If
      End If
    Next t
  Next c
  
  Columns(Beschreibung - 1).Delete
  Range(Cells(1, Beschreibung), Cells(Rows.Count, Anmerkung)).EntireColumn.AutoFit
  Range(Cells(Überschrift, 1), Cells(lzei, Columns.Count)).EntireRow.AutoFit
  
End Sub

den Linestyle der Rahmen musst du evtl. noch deinen Wünschen anpassen.

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
24.03.2021 14:25:33 Ronja Rehm
NotSolved
24.03.2021 22:09:42 Gast6193
NotSolved
24.03.2021 22:15:39 Gast4524
NotSolved
Blau Text aufsplitten
25.03.2021 01:06:56 xlKing
NotSolved
25.03.2021 10:15:37 Gast26915
NotSolved
25.03.2021 20:00:04 xlKing
NotSolved