Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1192to1196
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
Inhaltsverzeichnis

Streichungen per Makro löschen

Streichungen per Makro löschen
andi
Hallo allerseits,
wir notieren Änderungen in Exceldateien mit farblichen Markierungen und Streichungen. Die Markierungen/Streichungen sind über verschiedene Arbeitsblätter verteilt. Teilweise sind die Streichungen nur auf einzelne Textteile einer Zelle angewendet. Die manuelle Bereinigung solcher Streichungen ist mühsam und zeitintensiv.
Deshalb suche ich nach einer makrobasierten Lösung zur Löschung der o.g. Markierungen/Streichungen.
Mit einem aufgezeichneten Makro habe ich es bislang lediglich geschafft, die gesamte Zelle zu löschen (die eine Markierungen oder teilweise Streichungen enthält). Dies ist nicht ausreichend.
Im Forum selbst habe ich keine Lösungen zu diesem Problem gefunden
Hat irgendjemand eine Idee zum automatisierten teilweisen Löschen?
Besten Dank im Voraus für jegliche Hinweise!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Streichungen per Makro löschen
11.01.2011 16:32:59
andi
Ich habe eine Beispieldatei angehängt: https://www.herber.de/bbs/user/73034.xls
- Die durchgestrichenen Passagen sollen gelöscht werden
- Die grüne Markierung soll gelöscht werden können auf allen Arbeitsblättern, wobei der Zellinhalt bestehen bleiben soll.
Danke für jegliche Hilfe!
Teiltexte (Characters) bearbeiten mit VBA
11.01.2011 19:46:27
Erich
Hi Andi,
sind diese Markierungen "mit der Hand am Arm" gemacht worden, oder wurden sie vielleicht automatisch erzeugt?
Im letzteren Fall solltest du es besser mit Extras - Überarbeiten - Annehmen/Ablehnen (oder ähnlich) versuchen.
Hier für den ersteren Fall:

Option Explicit
Sub Test()
ReinigeBlatt Sheets(3)
End Sub
Sub ReinigeAlleBlaetter()
Dim wks As Worksheet
For Each wks In Worksheets
ReinigeBlatt wks
Next wks
End Sub
Sub ReinigeBlatt(ws As Worksheet)
Dim CC As Range, strA As String, strN As String, ii As Integer
For Each CC In ws.UsedRange
If CC.Interior.ColorIndex = 4 Then
CC.Interior.ColorIndex = 0
Else
If Not IsEmpty(CC) And Application.IsText(CC) Then
With CC
If .Font.Strikethrough Then
.ClearContents
.Font.Strikethrough = False
ElseIf IsNull(.Font.Strikethrough) Then
strN = ""
strA = CC.Value
For ii = 1 To Len(CC)
If Not CC.Characters(ii, 1).Font.Strikethrough Then _
strN = strN & Mid(strA, ii, 1)
Next ii
CC = strN
End If
End With
End If
End If
Next CC
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Teiltexte (Characters) bearbeiten mit VBA
12.01.2011 08:54:58
andi
Hallo Erich,
vielen Dank für Deine schnelle Hilfe!
Die Markierungen werden mit der Hand am Arm (also manuell ;) erzeugt um Änderungen an Vorlagen zu dokumentieren und für eine Umsetzung weiterzugeben. Die Änderungsverfolgung "springt nicht so gut ins Auge".
Das Makro funktioniert in der Beispieldatei wunderbar. Genau das was ich gesucht habe! :)
Ich habe das Makro auch gleich mal auf eine "echte" Datei losgelassen. In einem Fall funktioniert es leider nicht 100%ig, die Streichungen zu löschen.
Denn teilweise deklarieren wir verschiedene Bedingungen in einer Zelle wobei ein Absatz in die Zellen eingefügt wird. Diese Zelle wurde vom Makro nicht berücksichtigt. Liegt dies vielleicht am Absatz innerhalb der Zelle? Absatzwechsel in der Zelle hatte ich in der Beipieldatei leider nicht beigefügt.
Als Beispiel hänge ich eine weitere Datei an: https://www.herber.de/bbs/user/73040.xls . Vielleicht hast Du hierzu einen Hinweis für mich.
Auf jeden Fall vorab schonmal vielen lieben Dank für jegliche Unterstützung.
Viele Grüße nach Kamp-Lintfort und einen schönen Tag wünscht Andi
Anzeige
Teiltexte haben Nachteile
12.01.2011 09:44:25
Erich
Hi Andi,
beim Löschen der durchgestrichenen Teiltexte habe ich kein Problem entdecken können,
auch "Bedingung3->Effekt3" (nach Umbruch) wird sauber gelöscht.
Ist das bei dir nicht so?
Allerdings haben nach dem Löschen (genauer: nach dem Eintragen des geänderten Textes)
alle Zeichen einheitlich die Farbe, die vorher das erste Zeichen hatte.
Auch das könnte man natürlich noch berücksichtigen und wieder herzustellen versuchen.
Stellt sich die Frage: Was kommt danach?
Es könnte ja auch sein, dass ein Teil des Textes z. B. in Fettschrift oder kursiv ist und bleiben soll.
Unterschiedliche Formatierungen innerhalb der Zellen würde ich operativ nicht einsetzen,
dazu wird das in Excel (das ja keine Textverarbeitung, sondern eine Kalkulationsplatform ist) zu schlecht unterstützt.
Hier noch eine etwas schönere Version der Routine:

Sub ReinigeBlatt(ws As Worksheet)
Dim CC As Range, strA As String, strN As String, ii As Integer
For Each CC In ws.UsedRange
If CC.Interior.ColorIndex = 4 Then
CC.Interior.ColorIndex = 0
Else
If Not IsEmpty(CC) And Application.IsText(CC) Then
With CC
If .Font.Strikethrough Then
.ClearContents
.Font.Strikethrough = False
ElseIf IsNull(.Font.Strikethrough) Then
strN = ""
strA = .Value
For ii = 1 To Len(strA)
If Not .Characters(ii, 1).Font.Strikethrough Then _
strN = strN & Mid(strA, ii, 1)
Next ii
.Value = strN
End If
End With
End If
End If
Next CC
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Teiltexte (Characters) bearbeiten mit VBA
12.01.2011 09:45:37
andi
Hallo Erich,
ich bemerke soeben, dass bereits alles so funktioniert wie gewünscht.
Mein letzter Kommentar ist somit gegenstandslos.
Nochmals vielen Dank für Deine Hilfe!
Alles Gute und viele Grüße,
Andi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige