Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Anzahl If nichtleer
29.04.2005 10:14:10
Gregor
Hallo
Mit folgender If-Abfrage überprüfe ich 16 Einträge:
If Spalte_P_F "" Or Spalte_P_J "" Or Spalte_P_M "" Or Spalte_P_P "" _
Or Spalte_G_F "" Or Spalte_G_J "" Or Spalte_G_M "" Or Spalte_G_P "" Then
If Spalte_P_F "" Or Spalte_P_J "" Or Spalte_P_M "" Or Spalte_P_P "" _
Or Spalte_G_F "" Or Spalte_G_J "" Or Spalte_G_M "" Or Spalte_G_P "" Then
MsgBox "Test"
End if
Wie kann ich nach dieser Prüfung die Anzahl nichtleeren Spalten eruieren. Benötige das für die MsgBox-Meldung.
Vielen Dank und Gruss
Gregor

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

Betreff
Datum
Anwender
Anzeige
AW: Anzahl If nichtleer
29.04.2005 10:22:24
Cardexperte
Hello Gregor,
entweder zu machst das mit Zählenwenn im Blatt selbst und leist das in deine MSGBOX ein, oder eben mit der Workshettfunction countif
Gruss WS
AW: Anzahl If nichtleer
29.04.2005 10:31:25
Gregor
Hallo Cardexperte
Ich versuchte es nach der If-Abfrage wie folgt:
Dim Zahl
Zahl = WorksheetFunction.CountIf
MsgBox Zahl
Funktioniert so nicht. Kannst du noch weiterhelfen?
Danke und Gruss
Gregor
AW: Anzahl If nichtleer
29.04.2005 10:30:39
u_
Hallo,
so:

Sub nichtLeer()
Dim appWF As WorksheetFunction, iAnz As Integer
Set appWF = Application.WorksheetFunction
iAnz = ((appWF.CountA(Spalte_P_F) > 0) + _
(appWF.CountA(Spalte_P_J) > 0) + _
(appWF.CountA(Spalte_P_M) > 0) + _
(appWF.CountA(Spalte_P_P) > 0) + _
(appWF.CountA(Spalte_G_F) > 0) + _
(appWF.CountA(Spalte_G_J) > 0) + _
(appWF.CountA(Spalte_G_M) > 0) + _
(appWF.CountA(Spalte_G_P) > 0)) _
* -1
If iAnz > 0 Then MsgBox Anz
End Sub

Gruß
Anzeige
AW: Anzahl If nichtleer
29.04.2005 11:10:55
Gregor
Hallo u_
Danke für die Lösung.
Leider erhalte ich als Wert iAnz immer 8. Ich versuchte es noch wie folgt, erhalte aber einen Typenfehler:
Dim appWF As WorksheetFunction
Dim iAnz
Set appWF = Application.WorksheetFunction
iAnz = ((appWF.CountA(Spalte_P_F) "") + _
(appWF.CountA(Spalte_P_J) "") + _
(appWF.CountA(Spalte_P_M) "") + _
(appWF.CountA(Spalte_P_P) "") + _
(appWF.CountA(Spalte_G_F) "") + _
(appWF.CountA(Spalte_G_J) "") + _
(appWF.CountA(Spalte_G_M) "") + _
(appWF.CountA(Spalte_G_P) "")) _
* -1
Woran kann das liegen?
Gruss Gregor
Anzeige
AW: Anzahl If nichtleer
29.04.2005 11:24:14
u_
Hallo,
wenn meine Funktion immer 8 zurückgibt, steht in den Bereichen auch was drin.
Deine Version kann nicht gehen, da CountA eine Zahl zurückgibt (entspricht Anzahl2).
Wenn du nur Zahlen berücksichtigen willst, ändere CountA in Count.
Wenn du eine Überschrift hast, die nicht berücksichtigt werden soll, ändere wie folgt:

Sub nichtLeer()
Dim appWF As WorksheetFunction, iAnz As Integer
Set appWF = Application.WorksheetFunction
iAnz = ((appWF.CountA(Spalte_P_F)-1 > 0) + _
(appWF.CountA(Spalte_P_J)-1 > 0) + _
(appWF.CountA(Spalte_P_M)-1 > 0) + _
(appWF.CountA(Spalte_P_P)-1 > 0) + _
(appWF.CountA(Spalte_G_F)-1 > 0) + _
(appWF.CountA(Spalte_G_J)-1 > 0) + _
(appWF.CountA(Spalte_G_M)-1 > 0) + _
(appWF.CountA(Spalte_G_P)-1 > 0)) _
* -1
If iAnz > 0 Then MsgBox Anz
End Sub

Gruß
Anzeige
Danke
29.04.2005 14:28:25
Gregor
Hallo u
Vielen Dank für deinen Lösungsvorschlag. Aber irgendwie klappt es nicht, es ergibt immer die Anzahl 8. Vermutlich, weil die Variablen nicht wirklich leer sind sondern den Wert "" enthalten.
Spalte_P_J = "" oder eben einen Text
Gruss Gregor

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige