Microsoft Excel

Herbers Excel/VBA-Archiv

IF-Anweisung voranstellen | Herbers Excel-Forum


Betrifft: IF-Anweisung voranstellen von: Rainer
Geschrieben am: 04.12.2009 10:23:51

Hallo,

Irgendwie schaffe ich es nur, eine IF-Anweisung innerhalb des Codes anzuwenden.

Was muss ich machen, wenn ich vorab prüfen möchte, ob der Code überhaupt ausgeführt werden soll?

Wollte das so lösen:

Sub Copy()

  'prüfen ob Angaben vollständig gemacht wurden
  If Worksheets("intern").Range("H46").Value < 7 Then frmCheck.Show: Exit Sub

  weiter mit Sub Copy ...
Wenn alle 7 Angaben gemacht wurden wird der Code ausgeführt.

Nur wenn ich z. B. intern!H46 = 6 ist, klappt es nicht.

Gruß Rainer

  

Betrifft: AW: IF-Anweisung voranstellen von: Rudi Maintaire
Geschrieben am: 04.12.2009 10:30:16

Hallo,
so?
If Worksheets("intern").Range("H46").Value = 7 Then
frmCheck.Show
Else
Exit Sub
End If

Gruß
Rudi


  

Betrifft: AW: IF-Anweisung voranstellen von: Rainer
Geschrieben am: 04.12.2009 11:21:18

Hallo Rudi,

danke für Deine Mithilfe.

Nachdem ich umgestellt hatte kam derselbe Fehler wie zuvor und habe dann erst festgestellt, dass ich in der Formel für intern!H46 einen Fehler hatte.

Nun funktioniert auch meine eingestellte Anweisung.

Wollte zur besseren Übersicht der "großen Formel" die einzeilige Anweisung.

Gruß Rainer


  

Betrifft: AW: IF-Anweisung voranstellen von: Rudi Maintaire
Geschrieben am: 04.12.2009 12:26:36

Wollte zur besseren Übersicht der "großen Formel" die einzeilige Anweisung.

dann eben so:
If Worksheets("intern").Range("H46").Value = 7 Then frmCheck.Show Else Exit Sub
Finde ich aber unübersichtlicher.

Gruß
Rudi


  

Betrifft: AW: IF-Anweisung voranstellen von: Rainer
Geschrieben am: 04.12.2009 13:11:51

Hallo Rudi,

jetzt haben wir uns falsch verstanden.

Mein Code hat ja nun funktioniert.

Ich hatte in der Erfassung zum Test eine Eingabe weggelassen und ausgerechnet für diesen Wert die Formel im Sheet intern falsch gehabt, so dass intern!H46 noch immer statt auf 6 auf 7 stand.

Dann: Hatte nicht "If Else" gewollt, sondern nur If und dann zwei Aktionen zur Ausführung gebracht (frmCheck.Show + Exit Sub).

Bei IF ELSE gebe ich Dir recht, wäre es in einer Zeile unübersichtlich.

Gruß Rainer


  

Betrifft: ...soll aber schneller sein! ;-) Gruß owT von: Luc:-?
Geschrieben am: 05.12.2009 01:24:26

:-?


  

Betrifft: AW: ...soll aber schneller sein! ;-) Gruß owT von: Rainer
Geschrieben am: 05.12.2009 12:52:54

Hallo Luc,

habe ich richtig interpretiert, Du meinst

If ... Then
  Anweisung 1
  Anweisung 2
Else
  Anweisung 3
End If
wird schneller ausgeführt als
If ...  Then ... Anweisung 1: Anweisung 2

Anweisung 3
Frage nochmal, da ich für "Geschwindigkeit" immer zu haben bin.

Gruß Rainer


  

Betrifft: AW: dann lies mal das hier: von: Daniel
Geschrieben am: 05.12.2009 14:13:14

http://www.online-excel.de/excel/singsel_vba.php?f=98

wenn man allerdings nicht für andere sondern für sich selbst programmiert, sollte man Zeitverlust durch unübersichtliche Programmierung bei Erstellung und Pflege durchaus gegen den Zeitgewinn durch schnellere Laufzeit abwägen.

Gruß, Daniel


  

Betrifft: Nee! Genau umgekehrt! Gruß owT von: Luc:-?
Geschrieben am: 05.12.2009 15:12:39

:-?