Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1888to1892
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

Suche mit Like funktioniert nicht

Suche mit Like funktioniert nicht
09.07.2022 09:25:17
Florian
Moin moin,
kann mir jemand sagen, warum mein Code in dieser Zeile einen Fehler Typen unverträglich ausspuckt?

 If wksSuSa2021.Cells(lngZeile, 1).Value Like "=*" Then
Das ist der ganze Code:

For lngZeile = lngLetzteZeile To 2 Step -1
If wksSuSa2021.Cells(lngZeile, 1).Value Like "=*" Then
wksSuSa2021.Rows(lngZeile).Delete shift:=xlUp
End If
Next lngZeile
Ich will prüfen, ob der Inhalt der Zelle mit einem = beginnt und falls ja, diese löschen.
Danke euch!! :)

29
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche mit Like funktioniert nicht
09.07.2022 09:33:53
Oberschlumpf
Hi Florian,
mit "=*" willst du wissen, ob Zelle mit "=" beginnt, oder anders, ob Zelle eine Formel enthält.
Dafür hat Excel eine eigene Funktion.
ersetz mal deine If-Zeile durch diese...

If wksSuSa2021.Cells(lngZeile, 1).HasFormula = True Then
...hilfts?
Ciao
Thorsten
AW: Suche mit Like funktioniert nicht
09.07.2022 09:45:29
Florian
Das klappt leider nicht, weil die Zelle keine Formel enthält, sondern einen Text, der mit einem = beginnt ;)
AW: Suche mit Like funktioniert nicht
09.07.2022 10:12:55
Oberschlumpf
dann zeige mal....per Upload eine Bsp-Datei inklusive Bsp-Daten (mit = am Anfang!) und deinem Code, den du verwendest
AW: Suche mit Like funktioniert nicht
09.07.2022 10:05:50
Matthias
Hallo Florian,
Zitat
kann mir jemand sagen, warum mein Code in dieser Zeile einen Fehler Typen unverträglich ausspuckt?
Evtl. hast Du die Variablen nicht korrekt deklariert.
In meiner Test-Datei funktioniert die Code-Zeile.
Gruß ...
Anzeige
AW: Suche mit Like funktioniert nicht
09.07.2022 10:19:00
GerdL
Hallo Florian!

Sub Unit()
Range("A2") = "'=45"
If Range("A2").Text Like "=*" Then
Range("A2").Select
End If
End Sub
Gruß Gerd
Ich bin nicht Florian!
09.07.2022 10:21:17
Matthias
 
aber...
09.07.2022 10:23:19
Oberschlumpf
...aber aber...Florian wird sich bestimmt als gemeinten Empfänger verstehen, auch wenn die Antwort unterhalb deiner letzten Nachricht steht^^ :-)
Nix mit aber... owT
09.07.2022 12:20:14
Matthias
 
AW: Suche mit Like funktioniert nicht
09.07.2022 10:45:23
Florian
Prima, so funktionierts:

If wksSuSa2021.Cells(lngZeile, 1).Text Like "=*" Then
...

AW: Suche mit Like funktioniert nicht
09.07.2022 12:19:33
Matthias
Hi,
ja warum sollte das auch nicht funktionieren.
Hat ja mit Deinem geposteten Code nix zu tun.
Ich hatte Dir ja geschrieben das die Zeile sehr wohl funktioniert.
Ob .Value oder .Text im Code steht ist nicht relevant.
Aber anscheinend willst nix dazu lernen, sonst haättest Du auf meinen Beitrag reagiert.
Gruß ...
Anzeige
AW: Suche mit Like funktioniert nicht
09.07.2022 12:54:57
Florian
Top Angriff! 👌🏼
Das einzige, was ich an meine Code geändert habe ist Value zu Text.
Nix mit Angriff ...
09.07.2022 15:16:21
Matthias
Ob .Value oder .Text im Code steht ist nicht relevant hab ich geschrieben.
So ist es auch!
du hast einfach nur recht, so wie immer
09.07.2022 15:23:02
Daniel
mehr kann man dazu nicht sagen.
genauso wie Du !
09.07.2022 15:27:28
Matthias
Ich hatte geschrieben, ich habe es getestet und es funktioniert.
Von Dir lass ich mich sowieso nicht belehren!
AW: genauso wie Du !
09.07.2022 16:18:07
Daniel
hattest du auch mit einem Fehlerwert in der Exceltabelle getestet (#NV-Fehler oder so)?
Nicht dass ich dich belehren wollte (dass das unmöglich ist, habe ich inzwischen gelernt), aber wie gesagt, das ist nun mal das was den Fehler verursacht.
Anzeige
es steht Text in der Zelle !
10.07.2022 09:42:17
Matthias
da gibt es keinen Fehlerwert (#NV-Fehler oder so)
AW: es steht Text in der Zelle !
10.07.2022 09:53:29
Florian
Danke für Euren Zuspruch, Freunde.
Mal so eine Idee: Vielleicht hat Matthias doch recht und Excel durchbricht die Logik der Mathematik und Informatik. Könnte das nicht wirklich so sein?
AW: es steht Text in der Zelle !
10.07.2022 09:55:45
Oberschlumpf
Florian,
noch mal: zeig doch mal eine Bsp-Datei mit Bsp-Daten mit deinem Code, in der man dein beschriebenes Problem ganz genau sehen kann!
Was is daran so schwer?
AW: es steht Text in der Zelle !
10.07.2022 10:38:19
Daniel
Wenn Matthias recht hat, funktioniert dein Code mit .Value und du hättest den "Typen unverträglich"-Fehler nicht bekommen dürfen, dann hättest du aber die Frage hier nicht gestellt.
Ändere deinen Code mal wieder auf .Value zurück und lass ihn laufen.
Wenn der Fehler auftritt, sagst du, dass du debuggen willst.
Im VBA-Editor prüfst du dann, welchen Wert die Variable lngZeile hat (mit der Maus drüberfahren oder im Direktfenster ?lngZeile eingeben) und Schaudt dir in der Tabelle an, was tatsächlich in der Zelle steht, wenn der Fehler passiert.
Die Frage ist, wie die Texte mit "=" am Anfang zustande kommen, denn alles was mit "=" beginnt, ist für Excel normalerweise eine Formel.
Gruß daniel
Anzeige
AW: Kompetent und/oder freundlich
10.07.2022 21:25:56
Sulprobil
Hallo Florian,
Du kannst hier manchmal einen kompetenten oder einen freundlichen Antwortenden antreffen.
Zuweilen beides in einer Person.
Ohne Deine explizite Beispieldatei bleibt es bei Deinem Problem ein kleines Ratespiel.
Ich wette allerdings zu 99.9% gegen Matthias L. Bzgl. beider Kriterien.
Warum? Weil ein freundlicher Mensch seine Schlussfolgerungen erklärt, spätestens wenn Fragen oder Unverständnis geäußert werden. Und was nützt eine kompetente Antwort, wenn Du sie aufgrund fehlender Freundlichkeit (Verständnis) nicht verwenden kannst?
Was für Dich spricht: Zweifel äußern (und haben) meist nette Leute.
Na klar: wir irren alle ab und an. Du bist herzlich eingeladen, alte Threads der betroffenen Personen nachzuschauen.
Das hilft vielleicht, Kompetenz und Freundlichkeit einzuschätzen.
Viele Grüße,
Bernd
Anzeige
AW: Damit hast Du Dein Programm robuster gemacht
09.07.2022 17:21:48
Sulprobil
Hallo Florian,
Wie Daniel bereits sagte, fällt .Value bei Fehlerwerten auf die Nase.
Mit .Text läuft Dein Programm durch.
Es bleibt noch die Frage, ob Du nicht lieber .Value mit ON ERROR verwenden willst, um den Anwender auf einen gefundenen Fehlerwert hinzuweisen.
Ansonsten: Top Antwort auf Matthias L :-) Manche Menschen fangen sogar in einem leerem Raum Streit mit sich selbst an.
Viele Grüße,
Bernd
AW: Damit hast Du Dein Programm robuster gemacht
09.07.2022 17:55:52
Daniel
wenn die Fehlerwerte nicht erwartet sind, sollte man genauer drauf schauen.
bei Texten die mit "=" beginnen, besteht in Excel die Gefahr, dass es diesen als Formel interpretiert, wenn man mal reinklickt und die Zelle nicht mit dem Zahlenformat Text formatiert ist, die Folge ist dann normalerweise der #Name-Fehler.
Gruß Daniel
Anzeige
Ansonsten: Top Antwort auf Matthias L
09.07.2022 19:52:30
Matthias
Hast Du ein Problem mit meiner Antwort?
Meine Antwort war korrekt!
AW: Ansonsten: Top Antwort auf Matthias L
09.07.2022 21:05:43
Daniel
Deine Antwort war:
"Evtl. hast Du die Variablen nicht korrekt deklariert."
Nachdem dieses die Programmzeile ist, die den Fehler "Typen unverträglich" verursacht hat:

If wksSuSa2021.Cells(lngZeile, 1).Value Like "=*" Then
An welche Variablen hättest du denn gedacht, die anders geklariert werden müssen , damit der Fehler nicht mehr auftaucht?
Die Variable lngZeile kann es nicht sein, wenn die falsch deklariert ist, dritt der Fehler schon früher auf und nicht erst in dieser Zeile.
Anzeige
AW: Einsicht ist ein Luxusgut
10.07.2022 00:56:54
Sulprobil
Hallo Daniel,
Einsicht ist in diesen Foren ein Luxusgut, für das ich mich in diesem Thread für Florian, für Dich, und etwas egoistischerweise auch für mich selbst freue.
Die Hoffnung, dass diese auch bei Matthias L aufkeimt, wäre eitel.
Füttern wir ihn also besser nicht.
Have fun,
Bernd
AW: Einsicht ist ein Luxusgut
10.07.2022 01:45:08
Daniel
je nach dem.
sollte tatsächlich die Einsicht gewinnen, würde das den Typen auf meiner linken Schulter freuen.
der Kerl auf meiner rechten Schulter will das HB-Männchen fliegen sehen.
AW: Suche mit Like funktioniert nicht
09.07.2022 13:46:58
Daniel
Matthias L schrieb:
"Ob .Value oder .Text im Code steht ist nicht relevant."
Doch Matthias, das kann durchaus relevant sein.
Die Schleife läuft ja hier über mehrere Excelzellen. Diese können nun Daten vom Typ, Boolean, Zahl, Text oder Fehlerwert enthalten.
Mit .Value werden dann die Zellinhalte vollständig, dh mit Datentyp ausgelesen.
Mit .Text werden jedoch die Inhalte immer mit dem Datentyp Text ausgelesen. Dh eine Zahl ist nicht die Zahl 123, sondern der Text "123" und ein Bezugsfehler ist kein Fehlerwert, sondern der Text "#Bezug"
Das Problem an der Sache ist, dass Daten mit dem Typ "Fehler" keine normalen Daten sind und in normalen Operationen wie beispieslweise einem Vergleich dann den Abbruch mit dem Fehler 13 Typemismatch erzeugen. Fehlerwerte brauchen immer eine besondere Behandlung, man kann mit ihnen nicht umgehen wie mit den anderen Datentypen.
Da Florian genau das mit dem Typemismatch in seiner Eingangsfrage beschrieben hat, muss man annehmen, dass seine Tabelle in der betroffenen Spalte nicht nur Texte, sondern auch Fehlerwerte enthält, die dann in der Schleife abgefragt werden und den Fehlerabbruch mit TypeMismatch erzeugen.
Wenn man jetzt solche Daten mit Fehlerwerten hat, ist die einfachste Abhilfe eben die Abfrage mit .Text statt .Value, weil dann auch eine Zelle mit Fehlerwert in VBA nur als Text ankommt und keine "Sonderbehandlung" benötigt.
Die alternative wäre, dass man vorab abfragt, ob in der Zelle ein Fehler ist:

If not IsError(wksSuSa2021.Cells(lngZeile, 1).Value) then
If wksSuSa2021.Cells(lngZeile, 1).Value Like "=*" Then
Zu deiner ersten Vermutung, dass es an einer fehlerhaften Variablendeklaration liegen könnte muss man sagen, dass das in der fehlerverursachenden Programmzeile nicht der Fall sein kann, weil eigentlich gar keine Variablen verwendet werden, sondern ein Zellinhalt und ein fester Text. Außer dem unkritischen Schleifenzähler kommen gar keine Variablen vor, die falsch deklariert sein könnten und damit den Fehler verursachen (und wenn der Schleifenzähler falsch deklariert wäre, hätte es den Fehler schon früher in der Zeile mit For gegeben und nicht erst in der genannten Zeile).
Und bevor du jetzt deine Antwort an mich schreibst Matthias, solltest du nochmal kurz darüber nachdenken, was du gerade Florian über das "dazu lernen" geschrieben hast, und ob dann nicht, "danke, dass du dir die Zeit nimmst, mir das so ausführlich zu erklären, jetzt habe auch ich es verstanden" die angemessenste Reaktion deinerseits wäre.
Gruß Daniel
Anzeige
AW: Suche mit Like funktioniert nicht
09.07.2022 14:00:30
GerdL
Hi,
man kann es anscheinend doch umgekehrt sehen;
nämlich, dass die Zelleninhalte bei Florian nicht zum eingangs gezeigten Code gepasst haben. :-)
Gruß Gerd
AW: Suche mit Like funktioniert nicht
09.07.2022 14:21:52
Daniel
man an alles irgendwie und immer anders sehen.
Fakt ist aber, die einzige Möglichkeit, den "Typ unverträglich"-Fehler in der gezeigten Zeile mit dem gezeigten Code zu bekommen ist ein Fehlerwert in der referenzierten Zelle.
in allen anderen Fällen müsste der Code durchlaufen.
dass irgendwas seltsames mit dem Schleifenzähler lngZeile passiert, schließe ich mal aus.
Gruß Daniel

157 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige