Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1856to1860
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
Excel Formel erkennt Zellenwert nicht
15.11.2021 14:20:44
André
Guten Tag und vielen Dank für eure Zeit.
Ich habe 2 Tabellen.
Tabelle A und Tabelle B.
Tabelle A sucht sich bei Tabelle B per SVERWEIS einen Wert heraus.
Je nach Wert, wird eine bedingte Formatierung angewandt.
Das funktioniert.
Wenn ich bei Tabelle B eine neue Zeile mit Daten händig befülle, werden die Daten von Tabelle A erkannt und die Zellen entsprechend Formatiert.
Wenn dieselben Daten aber durch einen VBA-Code eingefügt werden

Worksheets("Einstellungen").Range("M" & Worksheets("Einstellungen").Range("M" & Rows.Count).End(xlUp).Row + 1).Value = auswahlSoldat
Worksheets("Einstellungen").Range("N" & Worksheets("Einstellungen").Range("N" & Rows.Count).End(xlUp).Row + 1).Value = txtTermineVon.Value
Worksheets("Einstellungen").Range("N" & Worksheets("Einstellungen").Range("N" & Rows.Count).End(xlUp).Row + 1).NumberFormat = "dd.mm.yyyy"
Worksheets("Einstellungen").Range("O" & Worksheets("Einstellungen").Range("O" & Rows.Count).End(xlUp).Row + 1).Value = txtTermineBis.Value
Worksheets("Einstellungen").Range("O" & Worksheets("Einstellungen").Range("O" & Rows.Count).End(xlUp).Row + 1).NumberFormat = "dd.mm.yyyy"
Worksheets("Einstellungen").Range("P" & Worksheets("Einstellungen").Range("P" & Rows.Count).End(xlUp).Row + 1).Value = cbTermineStatus.Value
Worksheets("Einstellungen").Range("Q" & Worksheets("Einstellungen").Range("Q" & Rows.Count).End(xlUp).Row + 1).Value = txtTermineBeschreibung.Value
muss ich die vom Programm befüllten Zellen der Tabelle B nochmal händig mit der Maus auswählen und mit ENTER bestätigen, bevor Tabelle A die Daten erkennt und die Zellen formatiert.
Wie kann ich dafür Sorgen, dass das a) nicht mehr nötig ist oder b) automatisiert passiert, nachdem die Zellen befüllt wurden?
Vielen Dank für eure Zeit und beste Grüße
André

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Formel erkennt Zellenwert nicht
15.11.2021 14:33:07
Rudi
Hallo,
du trägst Text ei, kein Datum

With Worksheets("Einstellungen")
.Range("M" & .Range("M" & Rows.Count).End(xlUp).Row + 1).Value = auswahlSoldat
.Range("N" & .Range("N" & Rows.Count).End(xlUp).Row + 1).Value = CDate(txtTermineVon)
.Range("N" & .Range("N" & Rows.Count).End(xlUp).Row + 1).NumberFormat = "dd.mm.yyyy"
.Range("O" & .Range("O" & Rows.Count).End(xlUp).Row + 1).Value = CDate(txtTermineBis)
.Range("O" & .Range("O" & Rows.Count).End(xlUp).Row + 1).NumberFormat = "dd.mm.yyyy"
.Range("P" & .Range("P" & Rows.Count).End(xlUp).Row + 1).Value = cbTermineStatus.Value
.Range("Q" & .Range("Q" & Rows.Count).End(xlUp).Row + 1).Value = txtTermineBeschreibung.Value
End With

Anzeige
Ein Klassiker...
15.11.2021 14:33:45
{Boris}
Hi,
für die (S)VERWEISe dieser Welt:
Die Funktion prüft auch auf den verwendeten Datentyp. Beispielsweise beschreibst Du die einzelnen Zellen u.a. mit Werten aus TextBoxen.(txtTermineVon.Value etc.). Und damit wird Text in die Zelle geschrieben. Womöglich suchst Du aber nach einer Zahl - und das passt nicht bzw. geht erst dann, wenn Du die Zelle editierst und nochmal mit Enter bestätigst.
Lösung: Sorge dafür, dass die Werte im richtigen Format eingetragen werden - nutze dafür die Umwandlungsfunktionen (CLng, CDbl, CDate etc.).
VG, Boris
AW: Excel Formel erkennt Zellenwert nicht
15.11.2021 15:43:03
Daniel
Hi
Excel unterscheidet oft zwischen Text und Zahl. Die Zahl 1 ist nicht das gleiche wie der Text "1".
Gleiches gilt für das Datum, weshalb der SVerweis dann keinen Treffer findet, wenn Duchwert und die Werte in der durchsuchten Liste zwar gleich aussehen, aber mal als Text und mal als Zahl angegeben sind.
Wenn wir etwas in Zellen eintragen, ist es zunächtmal immer eine Zeichenfolge.
Excel prüft dann bei der Eingabe, ob dieser Zeichenfolge eine Formel, eine Zahl oder ein Datum sein könnte und wandelt die Zeichenfolge in das entsprechende um. Kann nicht in eines der drei Typen gewandelt werden, dann bleibt die Eingabe ein Text.
Da du mit einem deutschen Excel arbeitet, werden für diese Erkennung die deutschen Datums- und Zahlenformate angewendet.
Dies gilt allerdings nicht, wenn man das gleiche mit VBA macht.
Schreibt man mit VBA eine Zeichenfolge in die .Value-Eigenschaft einer Zelle, dann wendet Excel die amerikanischen Formate für diese Umwandlung an und die sind etwas anders, d.h. ein Wert wie "15.11.2021" wird nicht als Datum erkannt und bleibt somit Text, weil im amerikanischen es so geschrieben würde: "11/15/2021"
Sobald du dann von Hand in die Zelle klickst, ist wieder Excel allein am Start und erkennt das deutsche Datum.
Um das Problem zu lösen, gibt es zwei Wege:
a) man wandelt den Text aus der Textbox selber mit der entsprechenden Umwandlungsfunktion um:

Range(...).Value = CDate(TextboxDatum.Text)
Range(...).Value = CDbl(TextboxZahl.Text)
b) man schreibt die Werte in die .FormulaLocal-Eigenschaft. Dann weiß Excel, dass es hier trotz VBA die deutschen Formate anwenden muss und erkennt Datum und Zahl richtig:

Range(...).FormulaLocal = TextboxDatum.Text
Range(...).FormulaLocal = TextboxZahl.Text
Gruß Daniel
Anzeige
Problem gelöst
16.11.2021 09:19:45
André
Durch das Einsetzen der Funktion CDate funktioniert die Datenübernahme wie erwartet.
Den Hintergrund habe ich auch verstanden.
Vielen Dank für eure schnelle Hilfe!
Ich wünsche euch eine angenehme Woche!
Mit den besten Grüßen
André

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige