Clever-Excel-Forum

Normale Version: Excel VBA Wert von 4 Zellen prüfen wenn Wahr dann Makro GO
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo liebe Excel Community,

ich habe folgendes Problem:
Der Grundgedanke war das ich die Überschriften einiger spalten Prüfe und erst danach mein Makro fortsetze.
Dies dient als Kontrolle falls sich die Spalten verschieben oder neue hinzugefügt werden.
Nun würde ich dies gerne ohne eine extra Formel in der Datei selbst verwirklichen.
Eine Formel um dies abzudecken hätte ich bereits schon jedoch weis ich nicht ob man in VBA selbst eine Formel auf WAHR prüfen kann.


Code:
Die Formel:
=WENN(UND(AU10="quantity
returns
(for stock)
pcs.";AV10="quantity
returns
(for tracking)
pcs.";AW10="quantity
stock

pcs.";AY10="quantity
delivered
actual
pcs.");WAHR;FALSCH)


Man sieht das mit Alt+Enter einige Textumbrüche eingefügt wurden.
Nun möchte ich wenn die Formel WAHR ergibt das Makro ausgeführt wird.

Kann mir hierbei jemand helfen?

Viele Grüße!
Hallo, 19 

das geht mit "Evaluate". Du evaluierst also die Formel in VBA. Ein Beispiel: 21 

In A1 staht "Das ist ein Beispiel". mit der Formel...

Code:
=ISTZAHL(SUCHEN("Beispiel";A1))

... bekomme ich ein "WAHR". In VBA machst du das dann so: 21

Code:
Option Explicit
Public Sub Main()
    MsgBox Application.Evaluate("=ISNUMBER(SEARCH(""Beispiel"",A1))")
End Sub

Da nimmst du statt der MsgBox eine Variable und arbeitest mit der weiter.
VBA:

Code:
msgbox [AU10]&[AV10]&[AW10]&[AY10]="quantity returns (for stock) pcs.quantity returns (for tracking) pcs.quantity stock pcs.quantity delivered actual pcs."

oder reicht schon:
Code:
Msgbox (left([AU10],8)="quantity")*(left([AV10],8)="quantity") *(left([AW10],8)="quantity") *(left([AY10],8)="quantity")
WOW!

Vielen vielen Dank an beiden. :)