Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
320to324
320to324
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

makro ausführen wenn zellen gefüllt sind

makro ausführen wenn zellen gefüllt sind
08.10.2003 16:28:52
oli
Hallo.
Ich habe ein Makro erstellt, dass eine neue Datei mit einer Tabelle erstellt, deren Inhalt aus einer anderen Datei kommt.
Schick wäre es jetzt, wenn das Makro nur ausgeführt wird, wenn die entsprechenden Zellen auch gefüllt sind. Am besten noch mit einer Fehlermeldung nach dem Stil:
"Informationen nicht verfügbar".

Ich komme da mit meinen vba-kenntnissen nicht mehr weiter. Wie mache ich die Abfrage und die Fehlermeldung?

Vielen Dank schonmal, Grüße
oli

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
mein erster ansatz
08.10.2003 17:00:01
oli
also, ich habe inzwischen doch noch was gefunden, dass mich aber nur tlw. weiterbringt.

If Range("'3 Overview'!d10") = "" Then
MsgBox "Erst Zelle Customer füllen"
Else
'mein Makro
End If

Allerdings müssen die Zellen d10, d11 und noch weitere gefüllt sein. Kann ich das irgendwie schachteln?

sollte sich noch jemand erbarmen, vielen dank
AW: Hinweis
08.10.2003 17:07:08
Hajo_Zi
Hallo

durch Deinen zweiten Beitrag ist Dein Beitrag aus der Liste der offenen Beiträge raus, da Du selber ja eine Antwort gegeben hast.

Bitte kein Mail, Probleme sollen im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.

http://home.media-n.de/ziplies/

Anzeige
AW: mein erster ansatz
08.10.2003 17:08:43
börni
hallo oli,

ich bin zwar selbst kein spezialist, aber ich hätts mal so probiert:


Private Sub test()
If Range("A1").value = "" Then
MsgBox "Der Bereich ist leer!"
Else
DEIN MAKRO
End If
End Sub


das einzige problem dabei ist: range("A1:D5") zb nimmt er nicht an! ich weiß auch nicht wieso!

grüße
börni
AW: mein erster ansatz
08.10.2003 17:09:51
ChrisL
Hi Oli

Anhand deiner Beschreibung kann ich nur raten...

With Worksheets("3 Overview")

If .Range("D10") = "" Or .Range("D11") = "" Or .Range("X1") = "" Then
MsgBox "Erst Zelle Customer füllen"
Exit Sub
Else
'mein Makro
End If

End With

Gruss
Chris
Anzeige
AW: mein erster ansatz
08.10.2003 17:12:15
ChrisL
oder noch ein anderer Ansatz... schau mit der Funktion ISTLEER bzw. CountBlank ob es in einem bestimmten Bereich Leerzellen gibt...

If Application.WorksheetFunction.CountBlank(Worksheets("3 Overview").Range("D10:D14") > 0 Then ...

Gruss
Chris
AW: mein erster ansatz
08.10.2003 17:22:23
oli
Hallo Chris,
vielen Dank.

Vielen Dank auch den Anderen und vor allem auch Hajo, für den Hinweis. Das war mir nicht bewusst.

Chris: Dein Makro gefällt mir prächtig, Problem ist nur, dass am besten immer unterschiedliche Meldungen ausgegeben werden sollten.

Wahrscheinlich bleibt mir dann nur eine Wiederholung der If-Abfrage, oder? (sieht so unelegant aus).

Etwa so:
If Range("'3 Overview'!l9") = "" Then
MsgBox "First fill cell in sheet 3 Overview"
Else
If Range("'1 Coversheet'!d28") = "<>" Then
MsgBox "First fill cell in sheet 1 Coversheet"
Else
If Range("'3 Overview'!c25") = "0,00 T€" Then
MsgBox "First fill sheet 4 Budgeted Costs"
Else
If Range("'3 Overview'!L10") = "01.01.1971" Then
MsgBox "First fill cells in sheet 3 Overview"
Else
If Range("'3 Overview'!L11") = "01.01.1971" Then
MsgBox "First fill cells in sheet 3 Overview"
Else
If Range("'3 Overview'!L10") = "" Then
MsgBox "First fill cells in sheet 3 Overview"
Else
If Range("'3 Overview'!L11") = "" Then
MsgBox "First fill cells in sheet 3 Overview"
Else
If Range("'3 Overview'!d10") = "" Then
MsgBox "First fill cell in sheet 3 Overview"
Else
If Range("'3 Overview'!d11") = "" Then
MsgBox "First fill cell in sheet 3 Overview"
Else

'mein Makro

End If
End If
End If
End If
End If
End If
End If
End If
End If
Anzeige
AW: mein erster ansatz
08.10.2003 17:29:48
ChrisL
Hi Oli

Einzeln ist in dem Fall vermutlich schon am einfachsten. Der Übersichtlichkeit wegen würde ich aber wie folgt:

If Range("'3 Overview'!l9") = "" Then
MsgBox "First fill cell in sheet 3 Overview"
Exit Sub
End If

If Range("'1 Coversheet'!d28") = "<>" Then
MsgBox "First fill cell in sheet 1 Coversheet"
Exit Sub
End If

etc.

Gruss
Chris
Vielen Dank
08.10.2003 17:36:24
oli
Hallo Chris,

ja, das ist toll so. Vielen Dank Dir.

Grüße
oli
AW: mein erster ansatz
08.10.2003 18:53:30
Reinhard
Hi Oli,
ob meins eleganter ist? *hmmh* Ansichtssache, auf jeden Fall kürzer:-)

Sub oli()
arrDat = Array("nix", "3 Overview", "1 Coversheet", "4 BudgetCosts")
arrFehl = Array(1, "L9", "", 1, 2, "D28", "<>", 2, 1, "C25", "0,00 T€", 3, _
1, "L10", "01.01.1971", 1, 1, "L11", "01.01.1971", 1, _
1, "L10", "", 1, 1, "L11", "", 1, 1, "D10", "", 1, 1, "D11", "", 1)
For n = 0 To 8
If Worksheets(arrDat(arrFehl(4 * n))).Range(arrFehl(4 * n + 1)) = arrFehl(4 * n + 2) _
Then MsgBox "first fill cells in " & arrDat(arrFehl(4 * n + 3))
Next n
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge