Excel button mit makro erst ausführen wenn Zellen x1 y1 z1 ausgefüllt sind. teilweise >0 teilweise text. Ich bekomme es einfach nicht hin. bräuchte euere Hilfe?

... komplette Frage anzeigen

3 Antworten

Versuchs so

Sub Main()

If [Deine erste Zelle].Value >0 And [Deine zweite Zelle].Value <>"" And [Deine dritte Zelle] [Deine dritte Bedingung] Then

[Dein Makro]

Else Exit Sub

End Sub

Du prüfst also ob alle Deine Bedingungen erfüllt sind, wenn nicht verlässt Du Dein Makro mittels Exit Sub direkt wieder.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von pauli995
24.06.2016, 09:39

schade, klappt nicht... trotzdem danke!

0
Kommentar von Orsovai
24.06.2016, 09:52

Dann hast Du etwas falsch gemacht. Poste bitte einfach mal Deinen Code.

2
Kommentar von Orsovai
28.06.2016, 07:38

Ich glaube, Du greifst falsch auf Zellen zu. Das macht man so: Cells(Zeile,Spalte).

Dabei werden Zeile und Spalte als Zahl angegeben, wobei A=1, B=2...

Also

If Cells(4,4).Value >0 And Cells(6,8).Value <>"" And Cells.Value(2,4) <>"" Then...

1
Kommentar von Orsovai
05.07.2016, 10:37

Ich habe es doch oben nochmals geschrieben:

[3,8].Value ist Blödsinn. Ersetze das durch Cells(3,8).Value.

0

Excel button mit makro erst ausführen wenn Zellen x1 y1 z1 ausgefüllt sind.

Orsovais Vorschlag müsste eigentlich auch funktionieren.
Aber ich gebe Dir mal eine Alternative, so wie ich es verstehe:

Private Sub CommandButton1_Click()
If WorksheetFunction.CountA(Range("X1:Z1")) < 3 Then Exit Sub

'################
' Hier Dein Makro
'################
End Sub

Teste auf jeden Fall genau.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
24.06.2016, 21:58

...und man kann das auch als Worksheet_change()-Ereignismakro ins Codeblatt der Tabelle schreiben.

Das blöde an dieser Formel ist der Name:

Anzahl=Count

Anzahl2 = CountA, das muss man sich einfach merken und auch, dass es eine Funktion ist und deshalb nicht Range("X1:Z1").CounrA heisst!

1

Habe es jetzt so gemacht und es klappt auch wenn es etwas umständlich ist: 

Sub xbutton()


Dim rng As Range

Set rng = ActiveSheet.Range("C8, E8, G8, C12, E12, C16")

If Application.CountA(rng) < rng.Count Then

MsgBox ("Bitte folgende Eingabefelder ...")

Else: Call ybutton

End If

If Application.CountA(rng) < rng.Count Then

Exit Sub

End If

End Sub
Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?