Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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
Vergleich mit 10 funktioniert nicht so
02.07.2020 12:45:37
Roman
Hallo Community,
ich habe ein ganz kurioses Problem und hoffe ihr könnt mir weiterhelfen.
Für unser Qualitätsmanagement im Haus wollen wir die Erfassung von den gemessenen Werten dynamisch erfassen. Hierzu habe ich eine entsprechende Excel gebaut, welche alle erforderlichen Daten beinhaltet, prüfen kann und speichert.
Es gibt also ein Tabellenblatt mit Artikeln:

Artikelnr	Artikelbez Zeichnungsnr	Zeichnungsindex	Merkmale Prüfplan
188099	Anker H24 HS2374	10239719	1	4	0001

In einem weiteren Tabellenblatt sind dann die informationen zu den Prüfplänen
Prüfplan	Merkmal Sollwert unteres Abmaß oberes Abmaß sonstige Toleranz Prüfmittel Mindestmaß Höchstmaß
0001	1	Ø	4,5		0,02		Prüfstifte	4,5	4,52
In einer Userform gibt man dann den Artikel ein, welcher geprüft werden soll und das Programm übernimmt automatisch alle wichtigen Daten in das Tabellenblatt Messung, wo untereinander irgendwann die ganzen Messungen aufgeführt sein sollen.
Set myRow = Worksheets("Prüfplan").Columns(1).Find(what:=(Prüfplan), After:=Worksheets("Prü _
fplan").Cells(Rows.Count, 1), lookat:=xlWhole)
If Not myRow Is Nothing Then
strAddress = myRow.Address
Do
lngCounter = lngCounter + 1
With Worksheets("Messung")
Worksheets("Prüfplan").Cells((myRow.Row), 2).Copy .Cells(.Cells(Rows.Count, 4). _
End(xlUp).Row + 1, 4)
.Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 2) = Auftrag
.Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 1) = Artikel
.Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 3) = CStr(Prüfplan)
.Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 14) = Messung
.Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 12) = Date
.Cells(.Cells(Rows.Count, 4).End(xlUp).Row, 15) = Zeichnungsindex
Worksheets("Prüfplan").Cells((myRow.Row), 4).Copy .Cells(.Cells(Rows.Count, 4). _
End(xlUp).Row, 5)
Worksheets("Prüfplan").Cells((myRow.Row), 9).Copy .Cells(.Cells(Rows.Count, 4). _
End(xlUp).Row, 6)
Worksheets("Prüfplan").Cells((myRow.Row), 10).Copy .Cells(.Cells(Rows.Count, 4). _
End(xlUp).Row, 7)
Worksheets("Prüfplan").Cells((myRow.Row), 7).Copy .Cells(.Cells(Rows.Count, 4). _
End(xlUp).Row, 8)
Worksheets("Prüfplan").Cells((myRow.Row), 8).Copy .Cells(.Cells(Rows.Count, 4). _
End(xlUp).Row, 9)
End With
Set myRow = Worksheets("Prüfplan").Columns(1).FindNext(myRow)
Loop While Not myRow Is Nothing And myRow.Address  strAddress
End If

For erste_Zeile = letzte_Zeile - Merkmale + 1 To letzte_Zeile
UserForm4.Controls("Label" & 1000 + j).Caption = Worksheets("Messung").Cells(erste_Zeile, 5) _
UserForm4.Controls("Label" & 1100 + j).Caption = Worksheets("Messung").Cells(erste_Zeile, 6) _
UserForm4.Controls("Label" & 1200 + j).Caption = Worksheets("Messung").Cells(erste_Zeile, 7) _
UserForm4.Controls("Label" & 1300 + j).Caption = Worksheets("Messung").Cells(erste_Zeile, 8) _
UserForm4.Controls("Label" & 1400 + j).Caption = Worksheets("Messung").Cells(erste_Zeile, 9) _
j = j + 1
Next

In dem UserForm4 kann man dann die gemessenenen Werte eintragen und er entscheidet selber, ob der Wert i.O. oder halt nicht i.O. ist. Das klappt alles auch super, aber wenn die Messwerte in irgendeiner Weise die 10 beinhaltet, dann macht er etwas falsch und sagt halt nicht i.O., obwohl die Werte in Ordnung sind.
Angenommen also der Wert darf von 9,97 bis 10,2 gehen und der Wert ist 9,99, dann sagt er der Wert ist nicht i.O. Ähnlich auch bei 10,1. Wenn man den Bereich von 9,97 bis 9,99 macht und 9.98 eingibt, dann funktioniert es und auch dann wenn es sich um Werte über 10 handelt.
Ich habe schon diverse Dinge probiert, aber komme nicht auf den richtigen Zweig.
Hier noch das Sub für die Überprüfung der Werte:
Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsNumeric(TextBox2) = True Then
If TextBox2 >= Label1102.Caption And TextBox2 
Vielleicht kann mir jemand helfen, da mich dieses Problem langsam nervt.
Danke
BG Roman

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

Betreff
Datum
Anwender
Anzeige
AW: Vergleich mit 10 funktioniert nicht so
02.07.2020 12:51:18
Rudi
Hallo,
du vergleichst Texte!
Wandle in Zahlen um.
If CDbl(TextBox2) >= CDbl(Label1102.Caption) And CDbl(TextBox2) 

Gruß
Rudi
AW: Vergleich mit 10 funktioniert nicht so
02.07.2020 12:56:56
Roman
Lol. Okay. Danke - hat funktioniert.
Ich hatte den Labelwert schon in Double gemacht, aber nicht die Textbox.
Jetzt kann ich in Ruhe einschlafen :-P
VBA gut ?
02.07.2020 13:02:32
onur
AW: VBA gut ?
02.07.2020 13:07:00
Roman
Ja?!
Wie du siehst, wusste ich nicht alles. Und den restlichen Programmcode habe ich mir, bis einige wenige Änderungen aus dem Internet gezogen.
Getreu dem Motto: Man muss nicht jeden einzelnen Befehl kennen, aber man muss wissen, wie bzw. wo man es findet
Anzeige
AW: VBA gut ?
02.07.2020 13:12:07
onur
Stimmt schon, aber dass eine Textbox - wie der Name es schon irgendwie andeutet - einen Text enthält und eine Caption IMMER ein Text ist, gehört eigentlich zum "Grundschulwissen" bei VBA. :))
AW: VBA gut ?
02.07.2020 13:26:51
Roman
Gebe ich dir recht, aber da es, außer bei dieser Stelle, funktioniert hat. Habe ich diesem Fehler keine gesteigerte Aufmerksamkeit geschenkt

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige