Clever-Excel-Forum

Normale Version: Vergleich zweier Nummern in If-Abfrage funktioniert nicht
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hi,

ich habe ein Makro geschrieben, dass aus einem ExcelExport von Bestellungen die wichtigsten Daten (Bestellnummer, Position, Summe, etc.) rauszieht und in ein Tabellenblatt "Bestellübersicht" überträgt. Der Export aktualisiert sich wöchentlich und updatet ob tatsächliche Kosten schon angefallen sind oder die Rechnung noch offen ist...

Um die zu aktualisierende Bestellung in der "Bestellübersicht" wiederzufinden, geht das Makro die Zeilen durch und sucht nach einer Übereinstimmung von Bestellnummer und Position :  

If Cells(k, 14).Value = orderNr And Cells(k, 15).Value = position Then

die Bestellnummer (bspw. 9001234567) wird aus dem Export in orderNr als Variant  gespeichert (da zahl so groß, habe ich gelesen, dass variant das der richtige Datentyp ist).

Nun zum Problem:

Diese Abfrage If Cells(k, 14).Value = orderNr gibt False zurück, obwohl beide die gleiche Bestellnummer beinhalten. Die Nummer wird vorher mit dem Befehl: Cells(k, 14).Value = orderNr eingegeben, oder stand vorher schon drin.

Komischerweise erkennt er ein paar der Bestellnummern und zwar die, die vorher schon ohne Makro drin standen und aus mir unbekannten Grund so ein Kästchen haben:
[
Bild bitte so als Datei hochladen: Klick mich!
]

Die anderen Nummern als Text zu formatieren ändert obiges Problem aber nicht. Huh

Könnt ihr mir da bitte weiterhelfen?

LG JB
Hallo,

prüf mal deine Spalte mit den Bestellnummern was für einen Typ sie haben (ISTZAHL usw).
Es wäre wesentlich leichter zu helfen, wenn du eine Beispieldatei hochladen würdest, in der das Problem ersichtlich ist. Bilder sind hübsch anzusehen, helfen aber meist nicht.

Ich rate mal, dass die eine Zahl tatsächlich eine Zahl, die andere ein Text ist. Es bringt nichts, eine Zahl als Text zu formatieren, sie bleibt letztlich eine Zahl. Wenn du auf einen Golf "Ferrari" draufschreibst, bleibt es dennoch ein VW.

Du kannst die betreffenden Spalten markieren (einzeln, nicht gleichzeitig) und dann über den Reiter Daten - Text in Spalten auf "Fertig stellen" klicken. Dadurch wird die Spalte in eine Zahl umgewandelt.
Andere Variante: 
- Schreibe in eine beliebige freie Zelle eine "1" (ohne Anführungszeichen)
- Kopiere diese Zelle mit Strg+C
- Markiere die Spalte mit den "Textzahlen"
- Wähle Einfügen - Inhalte einfügen - multiplizieren - ok
Schon mal vielen Dank für die Antworten.

ISTZAHL gibt WAHR zurück...

MisterBurns. Deine Tipps haben bei mir leider nicht funktioniert.

Ich habe jetzt mal eine Beispieldatei angehängt. Die Spalten, die eigentlich aktualisiert werden sollten, es aber nicht tun, sondern neu unten angefügt werden, sind gelb markiert.

Vielen Dank
Hi,

Zitat:Ich habe jetzt mal eine Beispieldatei angehängt.

und wo???
Anhang hat nicht funktioniert. Die Datei ist zu groß
Jetzt
Hoi,

wenn du das nicht formatierst siehste es auf den ersten Blick
Zahlen orientieren sich immer rechtsbündig, Text linksbündig.
Machst du es eindeutig, ist alles auf der Selben Seite einer Zelle
Hallo,

(13.06.2018, 10:17)jb95 schrieb: [ -> ]ISTZAHL gibt WAHR zurück...

in deiner Datei nicht immer (Es sind diejenigen Zeilen die so ein dir unbekanntes Kästchen haben)
Zitat:MisterBurns. Deine Tipps haben bei mir leider nicht funktioniert.

Ich garantiere dir, dass der Tipp mit dem kopieren/Inhalte einfügen funktioniert. Damit werden alle Werte in Zahlen umgewandelt, die vorher Text waren. Das musst du natürlich für beide Spalten in den Tabellenblättern machen, sonst ist es sinnlos.
Seiten: 1 2