Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zellen mit Eintrag Storno markieren und ...

Zellen mit Eintrag Storno markieren und ...
18.01.2007 15:15:46
Peter
Liebes Forum
Ich möchte in einem umfangreichen Journal sämtliche Zellen, wo der String "Storno" oder "Strono" vorkommt markieren. (Bereich Spalte B von Zeile 3 bis 6000).
Wenn möglich, möchte ich die Anzahl Markierungen einer Variable oder einem Range zuordnen, die ich dann in eine Formel packen kann, wie etwa:
="Es hat insgesamt "&ANZAHL& " Einträge mit dem Text Storno oder Strono."
Am liebsten hätte ich, wenn der Code direkt auf dem Codeblatt der auszuwertenden Tabelle hinterlegt werden kann, auf die Variable auch in einem anderen Tabellenblatt zugegriffen werden kann.
Kann mir da jemand weiterhelfen?
Danke, Peter

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen mit Eintrag Storno markieren und ...
18.01.2007 15:25:07
Herbert
Hi,
1. bedingte Formatierung
2.=ZÄHLENWENN(B3:B6000;"storno")+ZÄHLENWENN(B3:B6000;"stonro")
mfg Herbert
AW: Zellen mit Eintrag Storno markieren und ...
18.01.2007 15:44:11
Peter
Hallo Herbert
Vielen Dank.
Zu 1: Das kann so funktionieren, allerdings werden Anwender in diese Datei immer wieder Daten reinkopieren und wenn man nicht nur Werte einsetzt, verschwindet die bedingte Formatierung.
Zu 2: Das Problem ist, dass es mit Zählenwenn nicht funktioniert, da Strono oder Storno nur ein Teil des jeweiligen Zelleintrages ist.
Gruss, Peter
AW: Zellen mit Eintrag Storno markieren und ...
18.01.2007 15:40:22
Luc:-?
Hallo Peter,
mal von hinten...
1. Auf die Variable kann nicht zugegriffen wdn, wenn du sie nicht in einem separaten Standardmodul global definierst.
2. Hochdeutsch sollte dein Text in etwa ="Es gibt insgesamt "&zählformel&" Einträge mit dem Text Storno oder Strono."
3. Wie willst du diese Einträge markieren (Hilfsspalte, Kommentar, Autoform-Zeichenobjekt in der Zelle, Zell-/Schriftfarbe über bedingte Formatierung → bedenklich bei 6000 Zeilen) und ist das überhpt notwendig? Die Einträge können auch so gezählt wdn, z.B...

zählformel=ZÄHLENWENN(B3:B6000;"Storno")+ZÄHLENWENN(B3:B6000;"Strono")
, wobei hierbei evtl Großschreibung nicht berücksichtigt ist.
Gruß aus B-Bb/TF
Luc :-?
Anzeige
AW: Zellen mit Eintrag Storno markieren und ...
18.01.2007 15:50:18
Peter
Hallo Luc
Dein Eintrag sah ich erst nach dem Verfassen meines letzten Eintrages. Vielen Dank für deine Hinweise.
1. OK (wie eine solche Definition zu erfolgen hat, müsste ich mich noch schlau machen, sofern sie überhaupt gebraucht wird).
2. Hochdeutsch ist eben für Schweizer eine Fremdsprache, bin jedoch für Hinweise empfänglich ...
3. Eigentlich möchte ich sie markieren (z.B. mit gelber Farbe). Bedingte Formatierung wäre allenfalls auch möglich, da es nicht 6000 Zeilen, sondern 6000 Zellen sind.
Gruss, Peter
AW: Zellen mit Eintrag Storno markieren und ...
18.01.2007 17:25:58
Peter
Hallo Luc
Ich werde von dir sicher gelegentlich noch was hören ..
Dann kannst mich gleich auch in die Abkürzung "B-Bb/TF" einweihen.
Gruss, Peter
Anzeige
AW: Zellen mit Eintrag Storno markieren und ...
18.01.2007 18:59:24
IngGi
Hallo Peter,
hier ein Vorschlag mit VBA. Der Code läuft bei jeder Änderung im Bereich B3:B6000 des entsprechenden Tabellenblattes. Der Bereich kann leicht angepasst werden, indem der Variablen "Bereich" im Code ein anderer Bereich zugewiesen wird.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim Ziel As Range
Dim ZInhalte()
Dim ze As Long
On Error GoTo Fehler
Set Bereich = Range("B3:B6000")
If Not Intersect(Target, Bereich) Is Nothing Then
   Application.EnableEvents = False
   ZInhalte = Bereich
   For ze = 1 To Bereich.Rows.Count
      If InStr(1, LCase(ZInhalte(ze, 1)), "storno") _
         + InStr(1, LCase(ZInhalte(ze, 1)), "strono") > 0 Then
         If Ziel Is Nothing Then
            Set Ziel = Range("B" & ze + Bereich.Row - 1)
         Else
            Set Ziel = Union(Ziel, Range("B" & ze + Bereich.Row - 1))
         End If
      End If
   Next 'ze
End If
Ziel.Interior.ColorIndex = 5
MsgBox "Insgesamt sind " & Ziel.Cells.Count & _
   " Zellen mit ""Storno"" oder ""Strono"" vorhanden " & _
   "(Groß/Kleinschreibung egal)."
Fehler:
Application.EnableEvents = True
Set Bereich = Nothing
Set Ziel = Nothing
End Sub
Gruß Ingolf
Anzeige
AW: Zellen mit Eintrag Storno markieren und ...
18.01.2007 20:59:42
Peter
Hallo Ingolf
Genau das habe ich gesucht. Super. Um den Wert noch in einer Zelle der Tabelle auszugeben, habe ich einer Zelle mit "AAA" benannt und folgende Zeile im Code aufgenommen:
Range("AAA") = Ziel.Cells.Count
Nochmals besten Dank und
freundlicher Gruss
Peter
AW: Zellen mit Eintrag Storno markieren und ...
18.01.2007 21:43:18
Peter
Hallo Ingolf und Forum
Es ist nun noch ein Problem, resp. eine Zusatzanforderung aufgetaucht.
Wenn ich in irgend einer Zeile der Spalte B den Text "Storno" resp. "Strono" lösche, sollte diese Zelle nicht länger eingefärbt sein.
ist das möglich?
Danke für eine Rückmeldung.
Freundlicher Gruss
Peter
Anzeige
Einfach mal ausprobieren, Peter!
19.01.2007 05:57:36
Luc:-?
Da es sich um eine Ereignisprozedur handelt, die auf Inhaltsänderungen (also auch Löschen) reagiert, wird wieder alles durchlaufen. Jetzt hab ich allerdings nicht mehr im Kopf wie die Alternativbehdl aussah. Kann also sein, dass Gelb stehen bleibt. Hier wäre es günstig, mit einer Referenzzelle gleicher ursprünglicher Grundfarbe zu arbeiten, deren Farbe dann einfach übernommen wird, falls die Zelle ohne Storno gelb ist, Ingolf.
Gruß Luc :-?
PS: Als Schweizer darst du natürlich hat schreiben, Peter, aber so richtig alemannisch war der Text dann aber auch nicht... ;-) B-Bb heißt Berlin-Brandenburg und TF ist das regionale Autokennz - in Spanien heißt das Teneriffa... ;-)
Anzeige
AW: Einfach mal ausprobieren, Peter!
19.01.2007 10:23:17
IngGi
Hallo Peter,
ich hab das Makro entsprechend erweitert. Musst du halt wieder umsetzen.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Bereich As Range
Dim Ziel As Range
Dim Rest As Range
Dim ZInhalte()
Dim ze As Long
On Error GoTo Fehler
Set Bereich = Range("B3:B6000")
If Not Intersect(Target, Bereich) Is Nothing Then
   Application.EnableEvents = False
   ZInhalte = Bereich
   For ze = 1 To Bereich.Rows.Count
      If InStr(1, LCase(ZInhalte(ze, 1)), "storno") _
         + InStr(1, LCase(ZInhalte(ze, 1)), "strono") > 0 Then
         If Ziel Is Nothing Then
            Set Ziel = Range("B" & ze + Bereich.Row - 1)
         Else
            Set Ziel = Union(Ziel, Range("B" & ze + Bereich.Row - 1))
         End If
      Else
         If Rest Is Nothing Then
            Set Rest = Range("B" & ze + Bereich.Row - 1)
         Else
            Set Rest = Union(Rest, Range("B" & ze + Bereich.Row - 1))
         End If
      End If
   Next 'ze
End If
If Not Ziel Is Nothing Then
   Ziel.Interior.ColorIndex = 5
   Rest.Interior.ColorIndex = -4142
End If
MsgBox "Insgesamt sind " & Ziel.Cells.Count & _
   " Zellen mit ""Storno"" oder ""Strono"" vorhanden " & _
   "(Groß/Kleinschreibung egal)."
Fehler:
Application.EnableEvents = True
Set Bereich = Nothing
Set Ziel = Nothing
End Sub


Gruß Ingolf
Anzeige
@Ingolf: Woher weißt du, dass Peters...
19.01.2007 15:52:44
Luc:-?
...TabZellen normalerweise ungefärbt sind. Du veränderst u.U. so die Tabelle eines Kunden entgg seinen Intentionen; das macht man nicht. Deshalb ja auch mein Hinweis. Meistens mag es ja so gehen, aber es soll auch Ausnahmen geben und dann wäre das nicht der Urzustand.
Gruß Luc :-?
AW: @Ingolf: Woher weißt du, dass Peters...
19.01.2007 16:19:05
Peter
Hallo Ingolf
Vielen Dank, dass du das für mich umgesetzt hast.
Die Befürchtung von Luc, dass ich noch andere farbige Felder in der Tabelle haben könnte, ist hier nicht zutreffend. Luc, danke trotzdem für den Hinweis.
Mit diesem Ergebnis kann ich ja das kommende Wochenende direkt geniessen!
Vielen Dank
Peter
Anzeige
Na, dann auf den Genuss! Ciao! ;-) owT
19.01.2007 16:37:05
Luc:-?
:-?

82 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige