Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Excel VBA Makro zum suchen und markieren von Zeilen die ein bestimmtes Wort enthalten
#1
B
Burni
Neues Mitglied
Themenersteller
Dabei seit
16.06.2014
Beiträge
3
Reaktionspunkte
0
Hey Leute,
ich bin langsam etwas am verzweifeln.
Da meine Kenntnisse aus der Uni leider nicht sehr weit in die VBA programmierung reichen, habe ich vergeblich versucht ein Marko zu finden das folgendes kann.
Also ich suche ein Makro, in dem ich nach einem Wort zu suchen (auch im Fließtext einer Zelle) kann und das Makro dann die entprechende Zeile komplett farblich markiert oder halt in ein neues Tabbelenblatt kopiert oder iwie sowas.
Beispiel:
hallo
Willkommen
Herzlichen Glückwunsch
Wie gehts dir so
Hey Hallo Wie gehts?
Grüß dich
Wenn ich also jetzt nach hallo suche, soll der mir die kompletten Zeilen 1 und 2 farblich markieren.
Ich wäre euch für eure Hilfe seeehr dankbar !!
PS: Es wird für größere Exceltabellen benötigt ( an die 12 MB groß)
#2
K
Klexy_16
Mitglied
Dabei seit
16.06.2014
Beiträge
6
Reaktionspunkte
0
Hallo Burni, du meinst sicher Zeile 1 und 3 markieren, oder?
Das folgende Makro setzt voraus, dass in der Tabelle keine Zellen manuell eingefärbt sind, denn es löscht erstmal alle Zellfarben in der ganzen Tabelle, um danach nur die Zeilen gelb zu markieren, die das gewünschte Suchwort (besser: die gewünschte Zeichenkette) enthalten. Schriftfarben und bedingte Formatierungen werden nicht angerührt.
Die Zeichenkette wird über eine Eingabemaske eingegeben.
Hier im Forum werden die Anführungszeichen nicht dargestellt, was das Makro unbrauchbar macht. Ich ersetze Anführungszeichen durch Paragraphenzeichen und mach sie rot:
Sub Wortmarkierung()
' ein original Klexy-Makro
' Sucht das eingegebene Wort entweder im gesamten verwendeten Bereich des Tabellenblatts
' oder nur im markierten Bereich, wenn ein Bereich von 2 oder mehr Zellen markiert ist
' Variablen festlegen:
Dim zAnzahl As Long, zRange As Range, zFarbe As Integer, zWort As String, i As Integer
' Variablen definieren:
zAnzahl = Selection.Cells.Count ' Anzahl der Zellen, die markiert sind (wenn mehr als 1 markiert ist)
Set zRange = Selection ' Bereich der markierten Zellen
zFarbe = 6 ' Farbe, mit der die Zeile eingefärbt werden soll
' Info zu den Farben hier: Farben
i = 0 ' der Zähler zählt die Anzahl der male, bei denen kein Suchwort in die Eingabemaske eingetragen wird
ActiveSheet.Cells.Interior.ColorIndex = 0
' zuerst wird das ganze Tabellenblatt entfärbt, damit es
' keine von der vorigen Wortsuche übriggebliebene Färbungen gibt
NochmalEingeben:
'Eingabemaske für das Suchwort:
zWort = InputBox(Chr(13) & Chr(13) & §Bitte Suchwort eintragen§ & Chr(13) & §§, Z§eile mit Suchwort markieren§)
' Groß/Kleinschreibung wird nicht berücksichtigt, es können auch Ziffern sein
If zWort = §§ Then ' wenn kein Suchwort in die Eingabemaske eingegeben wurde
i = i + 1 ' wenn kein Suchwort eingegeben wurde, wird der Zähler um 1 hochgezählt
If i <= 2 Then ' wenn der Zähler 2 ist, wird das Makro abgebrochen
Exit Sub
Else
MsgBox §Es muss mindestens ein Zeichen eingegeben werden.§
'i = i + 1
GoTo NochmalEingeben ' wenn der Zähler unter 2 ist, springt das Makro nochmal zur Eingabemaske
End If
Else
If zAnzahl > 1 Then ' wenn mehrere Zellen markiert sind
For Each Cell In zRange
If InStr(1, Cell.Value, zWort) > 0 Then
Cell.EntireRow.Interior.ColorIndex = zFarbe
Else
End If
On Error Resume Next
Next Cell
Else ' wenn nix markiert ist, also das ganze Blatt durchsucht werden soll
For Each Cell In ActiveSheet.UsedRange
If InStr(1, Cell.Value, zWort) > 0 Then
Cell.EntireRow.Interior.ColorIndex = zFarbe
Else
End If
On Error Resume Next
Next Cell
End If
End If
MsgBox § Feddisch. §
End Sub
Zuletzt bearbeitet:
#3
B
Burni
Neues Mitglied
Themenersteller
Dabei seit
16.06.2014
Beiträge
3
Reaktionspunkte
0
WOW !!!
Vielen vielen Dank Klexy_16!!!!
Jap ich meinte Zeile 1 und 3 :embarrassed:
Läuft super!
PS: eine kleine Anmerkung hab ich doch ;-) bei NochmalEingeben:
'Eingabemaske für das Suchwort:
zWort = InputBox(Chr(13) & Chr(13) & §Bitte Suchwort eintragen§ & Chr(13) & §§, Z§eile mit Suchwort markieren§)
muss das § vor das Z
aber dann läuft es TOP !
#4
K
Klexy_16
Mitglied
Dabei seit
16.06.2014
Beiträge
6
Reaktionspunkte
0
Das mit dem §Z stimmt. Hab mich vertan, nachdem mir das Forum alle Anführungszeichen rausgelöscht hat.
Freut mich, dass ich helfen konnte.
#5
B
Burni
Neues Mitglied
Themenersteller
Dabei seit
16.06.2014
Beiträge
3
Reaktionspunkte
0
:embarrassed::cry::meld:
Ich hätte da nochmal eine kurze Frage
Das Marko funktioniert super und ist echt hilfreich!!
Allerdings arbeite ich jetzt mit so großen Exceltabellen in dessen Zellen auch teilweise kleine Romane stehen.
Wie könnte man das Marko umschreiben damit nur die Zellen markiert wird in der das gesuchte Wort dann auch steht und nicht mehr die gesamte Zeile ?
Vielen Dank für die hilfe ;-)
Gruß Burni
#6
K
Klexy_16
Mitglied
Dabei seit
16.06.2014
Beiträge
6
Reaktionspunkte
0
statt
Cell.EntireRow.Interior.ColorIndex = zFarbe
nur
Cell.Interior.ColorIndex = zFarbe
VBA kann wie ein normaler Text entziffert und modifiziert werden.
Thema:
Excel VBA Makro zum suchen und markieren von Zeilen die ein bestimmtes Wort enthalten