Live-Forum - Die aktuellen Beiträge
Datum
Titel
19.04.2024 12:23:24
19.04.2024 11:45:34
Anzeige
Archiv - Navigation
1640to1644
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

per Button farbige Felder löschen?

per Button farbige Felder löschen?
17.08.2018 16:58:44
Juergen
Hallo zusammen,
ich habe ein Tabellenblatt, welches ein Script beinhaltet, was die den Text innerhalb der Bemerkungsfelder vom Text löscht:
Public Sub KillText_1()
Dim objOLEObject As OLEObject
If MsgBox("Alle Bemerkungen wirklich leeren?", vbOKCancel + vbExclamation, "TextBox") =  _
vbOK Then
For Each objOLEObject In Tabelle1.OLEObjects
With objOLEObject
If TypeOf .Object Is MSForms.TextBox Then _
If Left$(.Name, 10) = "Bemerkung_" Then .Object.Text = vbNullString
End With
Next objOLEObject
End If
End Sub
Ist es möglich, dass man dieses Script um den Befehl ergänzt, zugleich auch farbig gekennzeichnete Zellen von Daten zu löschen? ...falls ja, wie müsste ich als VBA DAU das Script ergänzen?
Userbild
Danke & Gruss,
Juergen

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Button farbige Felder löschen?
17.08.2018 17:05:22
Hajo_Zi
With objOLEObject
If .interior.colorindex xlnone then
.clearcontents
end if
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Schau mal hier
Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.
Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese hoch.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, solltest du diese Daten anonymisieren bzw. pseudonymisieren.
Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: per Button farbige Felder löschen?
17.08.2018 17:18:01
Juergen
Hallo Hajo,
vielen Dank für deine Antwort. Leider kann ich das Script mangels VBA Kenntnis nicht richtig ergänzen. Könntest du bitte noch einen Hinweis geben, wo das eingefügt werden soll?
Danke & Gruss,
Juergen
AW: per Button farbige Felder löschen?
17.08.2018 17:30:56
Hajo_Zi
Du solltest mit VBA aufhören, wenn Du "With objOLEObject" nicht in Deinem Code findest.
Gruß Hajo
owT: Vielen Dank für den konstruktiven Hinweis.
17.08.2018 17:41:10
Juergen
run Forest
...gepaart mit Arroganz...
17.08.2018 18:37:10
Werner
Unsinn....
17.08.2018 18:36:22
Werner
AW: per Button farbige Felder löschen?
17.08.2018 17:14:09
Nepumuk
Hallo Jürgen,
teste mal:
Public Sub KillText_1()
    Dim objOLEObject As OLEObject
    Dim objCell As Range
    If MsgBox("Alle Bemerkungen wirklich leeren?", _
        vbOKCancel Or vbExclamation, "TextBox") = vbOK Then
        For Each objOLEObject In Tabelle1.OLEObjects
            With objOLEObject
                If TypeOf .Object Is MSForms.TextBox Then _
                    If Left$(.Name, 10) = "Bemerkung_" Then .Object.Text = vbNullString
            End With
        Next objOLEObject
        For Each objCell In Tabelle1.UsedRange
            With objCell
                If .Interior.ColorIndex <> xlColorIndexNone Then Call .ClearContents
            End With
        Next
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: per Button farbige Felder löschen?
17.08.2018 17:20:53
Juergen
Hallo Nepumuk,
vielen Dank für dein Script.
Leider egibt sich eine VBA Fehlerbox mit Hinweis Zahl "400"!?
Gruss, Juergen
AW: per Button farbige Felder löschen?
17.08.2018 17:23:58
Nepumuk
Hallo Jürgen,
kann ich nicht nachvollziehen, bei meinem Test hat es funktioniert. Kannst du mal eine Mustermappe hochladen in welcher der Fehler auftaucht?
Gruß
Nepumuk
AW: Beispieldatei jetzt anbei
17.08.2018 17:54:52
Nepumuk
Hallo Jürgen,
das Problem sind die verbundenen Zellen. Teste jetzt mal:
Public Sub KillText_1()
    Dim objOLEObject As OLEObject
    Dim objCell As Range, objMergeCell As Range
    If MsgBox("Alle Bemerkungen wirklich leeren?", _
        vbOKCancel Or vbExclamation, "TextBox") = vbOK Then
        For Each objOLEObject In Tabelle1.OLEObjects
            With objOLEObject
                If TypeOf .Object Is MSForms.TextBox Then _
                    If Left$(.Name, 10) = "Bemerkung_" Then .Object.Text = vbNullString
            End With
        Next objOLEObject
        For Each objCell In Tabelle1.UsedRange
            With objCell
                If .Interior.ColorIndex <> xlColorIndexNone Then
                    .Value = Empty
                End If
            End With
        Next
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: leider auch andere Zellen die es löscht
17.08.2018 20:47:15
Jürgen
Hallo Nepumuk,
vielen Dank für deine Nachricht.
Ja, es werden nun die farbig markierten Zellen und das Bemerkungsfeld inhaltlich gelöscht.
Leider aber auch dabei andere Zellen, wie. z.B. 31+32 b bis i, und darauffolgende.
Vielleicht ist es auch mein kompletter Ansatz das zu bereinigen zu wollen. Könnte man die Zellen anderweitig markieren, es müsste ja nicht unbedingt farbig sein!? Oder müsste es eine explizite Farbfüllung sein, um es eindeutiger zu machen?
Danke & Gruss,
Juergen
AW: leider auch andere Zellen die es löscht
17.08.2018 21:25:44
Nepumuk
Hallo Jürgen,
sollen nur die grünen und gelben geleert werden? Wenn ja, dann so:
Public Sub KillText_1()
    Dim objOLEObject As OLEObject
    Dim objCell As Range
    If MsgBox("Alle Bemerkungen wirklich leeren?", _
        vbOKCancel Or vbExclamation, "TextBox") = vbOK Then
        For Each objOLEObject In Tabelle1.OLEObjects
            With objOLEObject
                If TypeOf .Object Is MSForms.TextBox Then _
                    If Left$(.Name, 10) = "Bemerkung_" Then .Object.Text = vbNullString
            End With
        Next objOLEObject
        For Each objCell In Tabelle1.UsedRange
            With objCell
                If .Interior.Color = RGB(146, 208, 80) Or _
                    .Interior.Color = RGB(255, 255, 0) Then .Value = Empty
            End With
        Next
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: Top---alles funktioniert :) Vielen Dank
17.08.2018 23:15:48
Jürgen
Hallo Nepumuk,
jetzt läuft alles super!!! ...hab schon einen zusätzliche Farbe hinzugefügt. Astrein geht das jetzt :)
Vielen Dank dass du die Zeit für mein Problem und deine Unterstützung genommen hast!
Gruss, Juergen

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige