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

Fehler in Code

Fehler in Code
29.01.2019 09:48:43
Peter
Hallo ihr Excelspezialisten,
ich habe einen Code dieser soll prüfen, ob in Spalte F = Girokonto, in Spalte D =0 und in Spalte C = 00.01.1900
Hier mein Code:
~f
Sub test3()
Dim SuWF As String
Dim SuWD As String
Dim SuWC As String
SuWF = "Girokonto"
SuWD = "0"
SuWC = ("00.01.1900")  'funktioniert nicht
If Not Range("F:F").Find(SuWF) Is Nothing And Not Range("D:D").Find(SuWD) Is Nothing And Not  _
Range("C:C").Find(SuWC) Is Nothing Then
MsgBox "Girokonto vorhanden - Ersatzkonto = 0 - Enddatum = 00.01.1900"
Else
MsgBox " nicht vorhanden"
End If
End Sub

~f
Die Prüfung Spalte F und D funktioniert. Nicht jedoch Spalte C.
Könnt ihr mir sagen, wo der Fehler liegt.
Besten Dank für eure Hilfe.
Gruss
Peter

38
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler in Code
29.01.2019 11:02:58
Torsten
nimm mal die Klammern weg
AW: Fehler in Code
29.01.2019 11:06:31
Peter
Hallo Torsten,
welche Klammern meinst Du?
Gruss
Peter
AW: Fehler in Code
29.01.2019 11:09:23
Torsten
Die da
SuWC = ("00.01.1900")

AW: Fehler in Code
29.01.2019 11:18:00
Peter
Hallo Torsten,
keinerlei Änderung.
Wenn ich die Zeile
If Not Range("F:F").Find(SuWF) Is Nothing And Not Range("D:D").Find(SuWD) Is Nothing And Not _
Range("C:C").Find(SuWC) Is Nothing Then
bei Ausführung von Makro erreicht habe und auf die Find-Begriffe gehe werden die gesuchten Werte angezeigt aber es wird die falsche MsgBox angezeigt.
Es sind alle Kriterien gefunden, aber falsche MsgBox angzeigt
Not Is Nothing ergibt doch eine Aufhebung also richtig.
Was gibt es für eine Lösung?
Gruss
Peter
Anzeige
AW: Fehler in Code
29.01.2019 11:23:27
Torsten
Hallo Peter,
kannst du bitte eine Beispieldatei hochladen? Ist einfacher daran den Fehler zu suchen, als das nachzubauen.
AW: Fehler in Code
29.01.2019 11:32:26
Peter
Hallo Torsten,
Datei anbei: https://www.herber.de/bbs/user/127250.xlsx
Mein Ziel ist es, dass wenn die Bedingungen erfüllt sind, dass bestimmte Werte in andere Tabelle übertragen werden.
Gruss
Peter
AW: Fehler in Code
29.01.2019 11:37:45
Werner
Hallo Peter,
die Datei habe ich mir nicht angesehen.
Sub test3()
Dim SuWF As String, SuWD As String, SuWC As String
Dim raFund As Range, boVorhanden As Boolean
SuWF = "Girokonto"
SuWD = "0"
SuWC = "00.01.1900"
With Worksheets("Tabelle1") 'Blattname anpassen
Set raFund = .Columns(6).Find(what:=SuWF, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
Set raFund = .Columns(4).Find(what:=SuWD, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
Set raFund = .Columns(3).Find(what:=SuWC, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
MsgBox "Girokonto vorhanden - Ersatzkonto = 0 - Enddatum = 00.01.1900"
boVorhanden = True
End If
End If
End If
End With
If Not boVorhanden Then
MsgBox " nicht vorhanden"
End If
Set raFund = Nothing
End Sub
Gruß Werner
Anzeige
AW: Fehler in Code
29.01.2019 11:40:21
Peter
Hallo Werner,
besten Dank für Deine Hilfe - aber der gleiche Fehler.
Gruss
Peter
AW: Fehler in Code
29.01.2019 11:42:06
Peter
Hallo Werner,
Fehler von mir - funktioniert einwandfrei.
Hatte Datumwert geändert.
Gruss
Peter
AW: Fehler in Code
29.01.2019 11:50:26
Peter
Hallo Werner,
doch nicht ganz perfekt.
In der Orginaldatei ist der Wert der Zelle mittels Formel ermittelt in der Musterdatei nicht.
In der Musterdatei funktioniert es im Orginal nicht.
Was muss hier ggf. geändert werden?
Gruss
Peter
AW: Fehler in Code
29.01.2019 11:52:35
Werner
Hallo Peter,
welcher Wert, welche Formel? Warum lädst du denn eine Datei hoch, die nicht dem Original entspricht?
Gruß Werner
Anzeige
AW: Fehler in Code
29.01.2019 12:03:28
Peter
Hallo Werner,
ich habe die Musterdatei nun nochmals nachgebildet entsprechend dem Orginal.
In der Musterdatei funktioniert alles richtig.
Im Orginal nicht. Der Fehler liegt in der Zeile
Set raFund = .Columns(3).Find(what:=SuWC, LookIn:=xlValues, lookat:=xlWhole)
Beim Einzelschritt wird in raFund "Nothing" angezeigt.
Es ist alles identisch. Wo kann ggf. der Fehler liegen?
Gruss
Peter
AW: Fehler in Code
29.01.2019 12:09:21
Peter
Hallo Werner,
ich glaube ich habe den Fehler gefunden. Nur noch nicht die Lösung.
Ich übertrage den Wert aus einer anderen Tabelle. Dort ist der Wert Zelle "". Beim Übertragen mittels Formel wird aber als Wert nicht "" eingetragen sondern 00.01.1900. Das ist der Fehler.
Kannst Du mir sagen, wie man dies dann lösen kann?
Besten Dank für Deine Hilfe.
Gruss
Peter
Anzeige
AW: Fehler in Code
29.01.2019 12:33:12
Peter
Hallo Onur,
ich habe die von Dir geänderte Datei nochmals verändert und meiner Orginaldatei angepasst.
Die Daten in C2 werden mittels Formel übertragen: "=Tabelle2!C2".
Hier ist kein Wert enthalten sondern leer (""). Da die Tabelle1 Spalte C mit Datum formatiert ist, ergibt sich der Wert 00.01.1900. Und dieser Wert soll bei der Suche gefunden werden.
Gruss
Peter
AW: Fehler in Code
29.01.2019 12:36:11
onur
Und was willst du mir damit sagen?
AW: Fehler in Code
29.01.2019 12:38:34
Peter
Hallo Onur,
ich will damit sagen, dass dieser Wert nicht gefunden wird.
Gruss
Peter
Anzeige
AW: Fehler in Code
29.01.2019 12:40:07
onur
Und wieso in MEINER Datei?
AW: Fehler in Code
29.01.2019 13:04:30
Peter
Hallo Onur,
das suchen nach dem Wert "0" geht nicht - aber die Suche nach dem Wert "".
Gruss
Peter
AW: Fehler in Code
29.01.2019 13:07:26
onur
Und wieso geht es bei meiner Datei?
Hast du dir die Datei überhaupt angeschaut?
AW: Fehler in Code
29.01.2019 13:10:49
Peter
Hallo Onur,
ich habe die Datei https://www.herber.de/bbs/user/127254.xlsm
heruntergeladen und ausprobiert. Es ist die gleiche Datei, die ich hochgeladen habe.
Selbstverständlich habe ich dies angesehen.
Vielleicht hast Du mir die falsche Datei übersandt.
Gruss
Peter
Anzeige
AW: Fehler in Code
29.01.2019 13:16:29
onur
Es ist NICHT die gleiche Datei - DER CODE IST ANDERS!
AW: Fehler in Code
29.01.2019 13:32:15
Peter
Hallo Onur,
es handelt sich bei der Datei 127253 und 127254 um jeweils den gleichen Code.
Wo der Fehler liegt ist nicht wichtig. Sondern Du hast mit der Anregung nach was gesucht werden soll gezeigt was geändert werden muss.
Es ist nicht "0", sondern " "" ". Und dieses Ergebnis zählt.
Besten Dank für Deine Hilfe.
Gruss
Peter
AW: Fehler in Code
29.01.2019 13:38:56
onur
"es handelt sich bei der Datei 127253 und 127254 um jeweils den gleichen Code"
Nix für Ungut, aber : Was hast du geraucht?
In der Einen wird nach:
SuWC = DateValue("01.01.1980")

gesucht und in der Anderen nach:
SuWC = 0

Wenn du so oberflächlich programmierst wie du vergleichst, dann wundert mich gar nicht, dass der Thread inzwischen meterlang ist.
Anzeige
AW: Fehler in Code
29.01.2019 13:44:45
Peter
Hallo Onur,
ich kann sehr wohl vergleichen. Die ist der Code der in der Datei 127254 enthalten ist:
~f
Private Sub CommandButton1_Click()
Dim SuWF As String
Dim SuWD As String
Dim SuWC
SuWF = "Girokonto"
SuWD = "0"
SuWC = DateValue("01.01.1980") 'funktioniert nicht
If Not Range("F:F").Find(SuWF) Is Nothing And Not Range("D:D").Find(SuWD) Is Nothing And  _
Not Range("C:C").Find(SuWC) Is Nothing Then
MsgBox "Girokonto vorhanden - Ersatzkonto = 0 - Enddatum = 00.01.1900"
Else
MsgBox " nicht vorhanden"
End If
End Sub

~f
Hören wir bitte jetzt auf mit der weiteren Diskussion. Fakt ist, dass auch "0" nicht richtig gewesen wäre sondern "". Du brauchst deswegen nicht verletzt zu sein. Im übrigen verbiete ich mir persönliche Beleidigungen.
Ich wünsche Dir noch einen schönen Tag.
Gruss
Peter
Anzeige
AW: Fehler in Code
29.01.2019 14:05:11
onur
Ich möchte NICHT diskutieren, sondern nur, dass du es endlich erkennst, was ich meinte.
"Fakt ist, dass auch "0" nicht richtig gewesen wäre sondern ""." - Blödsinn!
Keine Ahnung, was DU für eine Datei 127254 hast:
DAS ist der ganze Code aus 127254:
Userbild
AW: Fehler in Code
29.01.2019 14:09:43
Peter
Hallo Onur,
jetzt habe ich deinen Code gefunden. Du hast ihn jedoch nicht mit dem Commandbutton verbunden.
Er funktioniert jedoch ebenfalls nicht, das er nicht 0 sucht sondern "" suchen muss.
Gruss
Peter
Anzeige
AW: Fehler in Code
29.01.2019 14:15:37
onur
Wen es so ist (wie du schriebst), dass in C die Formel
=Tabelle2!C2

ist und C als Datum formatiert ist, wird, wenn die Zelle Tabelle2!C2 leer ist, in C die Zahl 0 erscheinen und nicht "".
AW: Fehler in Code
29.01.2019 15:08:03
Peter
Hallo Onur,
habe es nochmals ausprobiert: Wenn Tabelle2 Zelle C2 leer ist und in Tabelle1 in C2 Formel =Tabelle2!C2 steht ohne Format dann ist es 0. Wenn diese Zelle auf Datum formatiert ist, dann erscheint Wert 00.01.1900.
Und jetzt beende bitte die weitere Diskussion.
Eine weitere Antwort wird nicht mehr erfolgen.
Gruss
Peter
AW: Fehler in Code
29.01.2019 15:18:41
onur
"dann erscheint Wert 00.01.1900" bedeutet nix anderes als dass da immer noch die Zahl 0 steht und nur wg der Formatierung als "00.01.1900" angezeigt wird.
Also musst du nach dieser Null suchen.
Endlich hast du es verstanden.
Wie gesagt, ich wollte nicht diskutieren, es dir nur deutlich machen.
Das war es von mir.
Gruß
Onur
AW: Fehler in Code
29.01.2019 12:24:20
Werner
Hallo Peter,
und woher soll ich das wissen, ich kenne weder deine Originaldatei, noch deine Formel.
Im Übrigen nehme ich mal an, dass du mit diesem Konstrukt (selbst wenn es funktioniert) einem Denkfehler unterliegst.
Gib in deiner Musterdatei (in der der Code funktioniert) in D2 irgendeine Zahl ein z.B. 44444 und in D4 (Geldmarktkonto) eine 0 ein.
Wenn du jetzt das Makro laufen lässt, dann wird dir ein bestehendes Girokonto mit Ersatzkonto 0 und Enddatum 00.01.1900 gemeldet.
Ist das tatsächlich dein gewünschtes Ergebnis?
Oder willst du nicht eher prüfen, ob es ein Girokonto mit Ersatzkonto 0 und Enddatum 00.01.1900 gibt? Das wär hier nämlich nicht der Fall.
Gruß Werner
AW: Fehler in Code
29.01.2019 12:36:57
Peter
Hallo Werner,
wenn ich den Wert für C2 aus einer anderen Tabelle beziehe mit der Formel "=Tabelle2!C2" und diese Zelle leer ist und die Zelle C2 in Tabelle1 als Datum formatiert ist, ergibt es den Wert "00.01.1900".
Und dieser Wert soll gefunden werden.
Gruss
Peter
und warum...
29.01.2019 12:42:12
Werner
Hallo Peter,
...schön, aber warum antwortest du nicht auf meine Frage?
Gruß Werner
AW: und warum...
29.01.2019 13:00:31
Peter
Hallo Werner,
ja ich möchte prüfen, ob es ein Girokonto mit Ersatzkonto 0 und Enddatum 00.01.1900 gibt.
Wenn dies der Fall ist, dann sollen Werte in andere Tabelle übertragen werden.
Gruss
Peter
AW: und warum...
29.01.2019 13:10:58
Werner
Hallo Peter,
dann wird das mit deinem bisherigen Ansatz nix.
Teste mal:
Sub test3()
Dim loLetzte As Long, strSuche As String, raFund As Range
Application.ScreenUpdating = False
strSuche = "00Girokonto"
With Worksheets("Tabelle1")
loLetzte = .Cells(.Rows.Count, 6).End(xlUp).Row
.Range(.Cells(2, 7), .Cells(loLetzte, 7)).FormulaLocal = "=VERKETTEN(C2;D2;F2)"
Set raFund = .Columns(7).Find(what:=strSuche, LookIn:=xlValues, lookat:=xlWhole)
If Not raFund Is Nothing Then
MsgBox "Girokonto vorhanden - Ersatzkonto = 0 - Enddatum = 00.01.1900" & vbLf _
& "in Zeile " & raFund.Row
Else
MsgBox "nicht vorhanden"
End If
.Range(.Cells(2, 7), .Cells(loLetzte, 7)).ClearContents
End With
Set raFund = Nothing
End Sub
Spalte G muss leer sein, da wird durch das Makro eine Formel rein geschrieben.
Gruß Werner
AW: und warum...
29.01.2019 13:21:43
Peter
Hallo Werner,
der von Dir gefertigte Code funktioniert einwandfrei. Besten Dank hierfür.
Damit komme ich sicherlich weiter.
Nochmals besten Dank und einen schönen Tag.
Gruss
Peter
Gerne u. Danke für die Rückmeldung. o.w.T.
29.01.2019 13:25:18
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige