448 Aufrufe
Gefragt in Tabellenkalkulation von

Moinsen ! 

Habe hier eine Excel Datei wo ich eine Spalte vergleichen muss. In der Spalte stehen unterschiedliche Texte wo ich zwar Sortieren kann aber unter Umständen steht der selbe Text 10 mal oder mehr in der Spalte

Hier ein Beispiel:

Rolladen Jalousie - Schalter UP

bestehend aus:
2,000ST Jalousieschalter
( 015900)
2,000ST GIRA Wippe mit Pfeilsymbol Jalousie System 55
reinweiss glaenzend
(Gira 029403)
2x 15 Min Bauzeit (30 Min)

Hersteller: Gira liefern & montieren

Solche Texte sollen verglichen werden ob es in der Spalte B diese noch gibt

Knackpunkt dabei: Es sind mehrere Zeilen hier in der Ursprungsdatei verbunden was vorher Aufgelöst werden soll ( vielleicht mit Extra Befehl ?) und der darin enthaltene Text soll alles in einer Zeile hintereinander geschrieben werden, siehe Datei

https://supportnet.de/forum/?qa=blob&qa_blobid=8910169115916794095

Danke für eure Hilfe

3 Antworten

0 Punkte
Beantwortet von m-o Profi (18.3k Punkte)

Hallo Carsten,

das folgende Makro hebt die Verbindungen der Zellen auf und löscht die in den Texten enthaltenen Zeilenumbrüche. Außerdem werden überflüssige leere Zeilen gelöscht.

Kopiere das Makro in ein allgemeines Modul deiner Arbeitsmappe:

Sub Verbindung_loesen()
Dim lngLetzte As Long
Dim lngZeile
Dim rngZelle As Range

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

'letzte beschriebene Zeile in Spalte B ermitteln
lngLetzte = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row

For Each rngZelle In Range("B2:B" & lngLetzte)
  'nur nichtleere Zellen bearbeiten
  If rngZelle <> "" Then
    'verbunde Zelle auflösen
    If rngZelle.MergeCells Then rngZelle.MergeArea.UnMerge
      'ggf. vorhandene Zeilenumbrüche entfernen
      rngZelle.Value = Replace(rngZelle.Value, vbLf, " ", 1, -1, 1)
      'Zeilenumbruch aus Formatierung entfernen
      rngZelle.WrapText = False 
    End If
Next rngZelle

For lngZeile = lngLetzte To 2 Step -1
  'leere Zeilen löschen
  If Application.CountA(Rows(lngZeile)) = 0 Then Rows(lngZeile).EntireRow.Delete
Next lngZeile

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub

Wie hast du dir das mit dem Vergleichen vorgestellt?

Gruß

M.O.

0 Punkte
Beantwortet von
Hi ! Also das mit dem Lösen hat schon mal Funktioniert , Danke dafür !

Zu deiner Frage mit dem Vergleichen : Es soll einfach in Spalte B nachgeschaut werden was da genau steht und die Texte in den Zellen müssen absolut gleich sein ! Wenn dies der Fall ist sollen die Überflüssigen Zeilen gelöscht werden und nur noch eine Zeile bleibt stehen
0 Punkte
Beantwortet von m-o Profi (18.3k Punkte)
Hallo Carsten,

wenn ich dich richtig verstehe, dann willst du dass doppelte Texte entfernt werden.

Das kannst du ohne Makro machen.

Markiere die Spalte B und wähle im Menü "Daten" bei den "Datentools" den Punkt "Duplikate entfernen" aus.

Da deine Tabelle aus mehreren Spalten besteht, wirst du gefragt, ob die Markierung erweitert werden soll. Wenn du nur die Spalte B vergleichen willst, dann klicke den Punkt "mit bestehender Markierung fortfahren" und dann die Schaltfläche "Duplikate entfernen" an.

Gruß

M.O.
...