Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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 in Spalte

Suche in Spalte
04.01.2020 23:31:10
Marco
Hallo Zusammen
Ich suche dringend Hilfe
Kann mir jemand erklären, weshalb der Code nicht funktioniert ?
Der Code sollte folgendes machen:
Suche einen Wert der Höher ist als 0 in Spalte T::T, wenn vorhanden dann MsgBox "Bitte Berrechnungsspalten kontrollieren"
Wenn keinen Wert gefunden der Höher ist als Null Sprich Leere Zellen dann "Keine Berrechnungsfehler gefunden"
wenn der Code nach else Aktiv ist, kommt immer die Meldung "Keine Berrechnungsfehler gefunden" auch wenn in Spalte T:T der Wert höher als 0 ist
Der Wert in Spalte T:T wird durch die Formel (=ZÄHLENWENN) Falsch oder Wahr aus den Spalten K/L/M/N ermittelt
Gibt es eventuell auch eine Möglichkeit, die genauen Zellennamen (K1;M300;N380 etc.) (eventuell auch mehrere) in die MsgBox auszugeben?
Für Eure Hilfe danke ich mich herzlich im voraus
Gruss Marco
Sub FindeFalsch()
Dim c As Range
For Each c In Range("T:T")
If c.Value > 0 Then
MsgBox "Berrechnungsfehler gefunden !" & vbNewLine & "Bitte Berrechnungsspalten  _
kontrollieren !"
Else
If c.Value 

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suche in Spalte
04.01.2020 23:57:01
GerdL

Sub Finde_Falsch_Wahr()
Dim c As Range
For Each c In Range("T:T")
If c.Value  0 Then
MsgBox "Berrechnungsfehler gefunden !" & vbNewLine & "Bitte Berrechnungsspalten" _
& "kontrollieren !"
Exit Sub
End If
Next c
MsgBox "Keine Berrechnungsfehler gefunden !"
End Sub

Hallo Marco,
Excel-WAHR ist 1, VBA-WAHR= -1.
Gruß Gerd
AW: Suche in Spalte
05.01.2020 00:00:06
Oberschlumpf
Hi Gerd,
und was ist, wenn nach dem 1. gefundenen Fehler noch weitere in Spalte T vorhanden sind?
Dein Code muss so oft wiederholt gestartet werden, bis wirklich nix mehr an Fehlern vorhanden ist.
Ciao
Thorsten
Anzeige
AW: Suche in Spalte
05.01.2020 00:10:14
GerdL

Suche einen Wert der Höher ist als 0 in Spalte T::T, wenn vorhanden dann MsgBox "Bitte Berrechnungsspalten kontrollieren"
Hallo Thorsten,
vorausgesetzt, TRUE ist ein Fehler, sind mehrere davon mehr als kein Fehler.
OK, die ganze Spalte mit Schleife abklappern ist Quatsch.
Ich hätte die von mir aufgefasste Fragestellung sowieso ohne Schleife codiert. :-)
Gruß Gerd
AW: Suche in Spalte
05.01.2020 02:36:51
Marco
Hallo Zusammen
Krass wie hilfsbereit ihr alle seit einfach nur TOP !!!
habe jedoch noch zu Gerd Antwort noch eine Frage ...
"OK, die ganze Spalte mit Schleife abklappern ist Quatsch.
Ich hätte die von mir aufgefasste Fragestellung sowieso ohne Schleife codiert. :-) "
Ich weiß dass Excel V16 über eine Million Zeilen hat
da die Liste immer mehr zeilen bekommt habe ich die Spalte T:T als Summe in T1 summiert damit habe ich keine schleife mehr und suche den wert nur noch in einer Zelle, jedoch kann ich damit die zeilennummer nicht mehr ausgeben oder ? gruss Marco
Anzeige
AW: Suche in Spalte
05.01.2020 11:09:23
Oberschlumpf
Hi Marco,
wenn du mich meinst (ich bin nicht Gerd), antworte ich mal.
Ja, du hast recht. "Nur" Zelle T1 auf Wert größer 0 zu überprüfen, erspart dir zwar For/Next, aber damit kannst du nicht ermitteln, in welchen Zellen unerwünschte Werte stehen.
Du könntest - auch mit VBA - mit Hilfe einer bedingten Formatierung alle Zellen mit Wert größer o einfärben.
Wie das geht mit VBA, findest du ganz viele Bsp mit Google im Internet.
Ciao
Thorsten
AW: Suche in Spalte
04.01.2020 23:57:45
Oberschlumpf
Hi Marco,
warum
If c.Value 
?
hier führt auch 1 zum Text "Keine Berrechnungsfehler gefunden !", weil nun mal gleich 1!
Und ein weiterer Denkfehler im Code ist die Verwendung von

If Then
Else
End If
denn auch wenn in noch folgenden Zellen ein Wert = 1 ist, wird - sofort - nach Finden von Wert Du musst also erst mal komplett alle Zellen in T überprüfen, ob Wert = 1 oder 0.
Erst dann kannst du die MsgBox mit "keine Fehler" zeigen; aber eben nur, wenn Wert NIE größer 0.
Versuch es mal so:

Sub FindeFalsch()
Dim c As Range, lboNotOK As Boolean
For Each c In Range("T1:T" & Cells(.Rows.Count, 20).End(xlUp).Row)
If c.Value > 0 Then
MsgBox "Berrechnungsfehler gefunden !" & vbNewLine & "Bitte Berrechnungsspalten  _
_
kontrollieren !", "Zelle: " & c.Address
lboNotOK = True
End If
Next c
If lboNotOK = False Then
MsgBox "Keine Berrechnungsfehler gefunden !"
End If
End Sub
Noch eine Unsauberkeit in deinem Code:
Range("T:T")
Dein Code überprüft - alle! - Zellen in Spalte T.
Du weißt schon, dass in Office 2016 pro Spalte! über 1 Million Zellen (Zeilen) enthalten sind, oder?
Seswegen habe ich "T:T" geändert in "T1:T" & Cells(.Rows.Count, 20).End(xlUp).Row
Mit Hilfe von Cells(.Rows.Count, 20).End(xlUp).Row wird in Spalte T nur bis zur letzten, genutzten Zeile in T geprüft, aber nicht die ganze Spalte T.
Hilfts?
Ciao
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige