Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Programmlogik

Forumthread: Programmlogik

Programmlogik
Peter
Guten Tag
Sofern bestimmte Voraussetzungen erfüllt sind, will Daten übermitteln. die Abfrage, ob die Voraussetzungen erfüllt sind, habe ich an eine Funktion FreigabeFallsNotwendigErfolgt ausgelagert:
If FreigabeFallsNotwendigErfolgt(strParameter) = False then GoTo Weiter
Übermittlungsaktion
Weiter:
Scheinbar hat hier das Ergebnis FALSE der Funktion keine Auswirkung. Denn egal, ob die Funktion FALSE oder TRUE ergibt, wird die Übermittlungsaktion ausgeführt.
Was mache ich falsch?
Gruss, Peter
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Programmlogik
13.08.2012 09:07:34
Josef

Hallo Peter,
zeig doch den gesamten Code, vor allem die Funktion.

« Gruß Sepp »

Anzeige
AW: Programmlogik
13.08.2012 09:14:44
Peter
Hallo Sepp
Hier ist die Funktion.
Gruss, Peter
Function FreigabeFallsNotwendigErfolgt(strParameterAs String) As Boolean
Dim lngValue As Long
lngValue = Evaluate("SUMPRODUCT((CL_" & strParameter & ">=0.0005)*(OK_" & strParameter& "="""" _
))") * 1
Select Case lngValue
Case 1
MsgBox "Bei " & lngValue & " Position ist die Abweichung " & Chr(13) & "von 0. _
005% oder höher nicht visiert.", vbCritical
FreigabeFallsNotwendigErfolgt = False
Case Is > 1
MsgBox "Bei " & lngValue & " Positionen sind die Abweichungen " & Chr(13) & "von  _
0.005% oder höher nicht visiert.", vbCritical
FreigabeFallsNotwendigErfolgt = False
Case Else
FreigabeFallsNotwendigErfolgt = True
End Select
End Function

Anzeige
AW: Programmlogik
13.08.2012 09:24:52
Josef

Hallo Peter,
die Funktion ist i. O.
Ich habe sie etwas vereinfacht. Sprungmarken sind im Allgemeinen unnötig.

Function FreigabeFallsNotwendigErfolgt(strParameter As String) As Boolean
  Dim lngValue As Long
  
  lngValue = Evaluate("SUMPRODUCT((CL_" & strParameter & ">=0.0005)*(OK_" & strParameter & "=""""))") * 1
  
  If lngValue >= 1 Then
    MsgBox "Bei " & lngValue & " Position" & IIf(lngValue > 1, "en", "") & " ist die Abweichung " & _
      Chr(13) & "von 0.005% oder höher nicht visiert.", vbCritical
  Else
    FreigabeFallsNotwendigErfolgt = True
  End If
  
End Function


Sub peter()
  
  If FreigabeFallsNotwendigErfolgt(strParameter) Then
    Übermittlungsaktion
  End If
  
  'restlicher Code
End Sub



« Gruß Sepp »

Anzeige
AW: Programmlogik
13.08.2012 09:50:10
Peter
Hallo Sepp
Vielen Dank. Die Sprungmarke habe ich gewählt, da mehrere Abfragen durchlaufen werden müssen, bevor die Übermittlungsaktion stattfinden kann:
Sub peter()
For zz = 0  to UBound(arZ)
StrParameter = arZ(zz)
If FreigabeFallsNotwendigErfolgt(strParameter) = False Then GoTo Weiter:    'Abfrage 1
If TagesdatenAktualisiert(strParameter) = False Then GoTo Weiter: 'Abfrage 2
Übermittlungsaktion
Weiter:
Next zz
End Sub
Oder ginge das auch anders (besser)?
Gruss, Peter
Anzeige
AW: Programmlogik
13.08.2012 09:54:10
Josef

Hallo Peter,
For zz = 0 To UBound(arZ)
  strParameter = arZ(zz)
  If FreigabeFallsNotwendigErfolgt(strParameter) Then
    If TagesdatenAktualisiert(strParameter) Then
      Übermittlungsaktion
    End If
  End If
Next zz


« Gruß Sepp »

Anzeige
AW: Programmlogik
13.08.2012 09:55:25
Peter
Hallo Sepp
Danke!
Gruss, Peter
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige