Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
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
Zählenwenn nur in aktivem Sheet
26.01.2014 17:19:05
Albert
Hallo zusammen,
ich verwende diesen Codeschnipsel, um in einem Sheet nach drei Bedingungen zu zählen.
Sub test()
.Label102.Caption = Application.WorksheetFunction.CountIfs( _
Sheets("Regelschichtplan").Range(Columns(rngDatum.Column), Columns(rngDatum. _
Column)), Left(.ComboBox2.Value, 1), _
Sheets("Regelschichtplan").Range("C:C"), .Label100.Caption, _
Sheets("Regelschichtplan").Range("B:B"), .TextBox5.Value)
End Sub
Mein Problem ist, dass die Formel nur funktioniert, wenn ich das aktive Sheet offen hab, in dem auch gezählt werden soll.
Sobald ich aber die Userform von einem anderen Sheet aus anzeigen lasse, läuft ein Fehler auf.
Was mach ich falsch...?
Danke schon mal für eure Hilfe
Gruß
A.

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

Betreff
Datum
Anwender
Anzeige
AW: Zählenwenn nur in aktivem Sheet
26.01.2014 17:23:19
Matze
Hallo Albert,
dann weise der Sub auch an das du immer im "aktuellen" Sheet was berechnen willst
with activeSheet
'Dein vorhaben
end with
Matze

AW: Zählenwenn nur in aktivem Sheet
26.01.2014 17:27:06
Matze
Sub test()
'wenn du nun im Blatt Regelschichtplan bist
With ActiveSheet
.Label102.Caption = Application.WorksheetFunction.CountIfs(.Range(Columns(rngDatum.Column),  _
Columns(rngDatum.Column)), Left(.ComboBox2.Value, 1), .Range("C:C"), .Label100.Caption, .Range("B:B"), .TextBox5.Value)
End Sub

AW: Zählenwenn nur in aktivem Sheet
26.01.2014 17:50:30
Albert
Servus Matze,
genau das möchte ich vermeiden, dass das Sheet Regelschichtplan offen ist...
Aber wie mach ich das?
Gruß
A.

Anzeige
AW: Zählenwenn nur in aktivem Sheet
26.01.2014 17:55:23
Matze

Sub test()
With Sheets("Regelschichtplan")'nur mit diesem Blatt
.Label102.Caption = Application.WorksheetFunction.CountIfs(.Range(Columns(rngDatum.Column), _
_
Columns(rngDatum.Column)), Left(.ComboBox2.Value, 1), .Range("C:C"), .Label100.Caption, .Range( _
"B:B"), .TextBox5.Value)
End Sub

AW: Zählenwenn nur in aktivem Sheet
26.01.2014 18:47:26
Albert
Selbiges Problem...
sobald ich den Code laufen lasse und ein anderes Sheet aktiv ist, funktioniert es nicht mehr
Shit...
A.

AW: Zählenwenn nur in aktivem Sheet
26.01.2014 19:01:38
Matze
hallo Albert,
ich bin leider aufen Sprung, was bekommste denn für ne Fehlermeldung?
Kannst du die Datei nicht einstellen?
Matze

Anzeige
AW: Zählenwenn nur in aktivem Sheet
26.01.2014 19:03:55
Albert
Laufzeitfehler 1004 - Anwendungs- oder objektdefinierter Fehler
Und ich denke mit 100%iger Bestimmtheit, dass es am nicht aktiven Sheet Regelschichtplan liegt...
Danke derweil
A.

AW: Zählenwenn nur in aktivem Sheet
26.01.2014 23:32:40
Matze
benutz mal wenn du es aus einer UserForm aufrufst mit Private Sub
Soll das per Button gestartet werden? Oder mit einem UserForm_Ereignis?
Darfst du die Datei nicht einstellen, ersetze Namen durch ein paar Musterbeispiele,.
Ansonsten aus einem Modul aufrufen mit Sub test() wie gehabt.
Matze

AW: Zählenwenn nur in aktivem Sheet
27.01.2014 01:14:43
Erich
Hi Albert,
der Fehler ist seeehr beliebt... Such mal hier in der Recherche nach 'richtig referenzieren' - da findest du z. B.
https://www.herber.de/forum/archiv/1148to1152/1150616_Zeilen_einblenden.html#1150640
https://www.herber.de/forum/archiv/1212to1216/1214845_Letzte_Zeile_in_Spalte_A_bis_V.html#1214876
https://www.herber.de/forum/archiv/1252to1256/1254910_Bereich_kopieren_klappt_nicht.html#1254940
https://www.herber.de/forum/archiv/1308to1312/1310725_UserForm_ComboBox_aus_andere_sheet1.html#1310730
https://www.herber.de/forum/archiv/1324to1328/1326200_Laufzeitfehler_beim_Markieren_von_Zellen_in_VBA.html
Frage 1: Wo steht dein Code? Das ist bei solchen Fragen wesentlich:
(Ich vermute deinen Code im Codemodul einer UserForm.)
Hier kürze ich mal "Regelschichtplan" ab mit "Rsp" - ist übersichtlicher.
Du schreibst
Sheets("Rsp").Range(Columns(rngDatum.Column), Columns(rngDatum.Column))
Wo ist dieser Bereich?
Mit Sheets("Rsp").Range(...) möchtest du bewirken, dass er im Blatt Rsp liegt. Klar.
Aber wo ist die Spalte Columns(rngDatum.Column), wenn Rsp gerade mal nicht aktiv ist?
Klar - im gerade aktiven Blatt!
Da steht also - ausführlicher geschrieben - das hier, wenn "akt" das aktive Blatt ist:
Sheets("Rsp").Range(Sheets("akt").Columns(rngDatum.Column), Sheets("akt").Columns(rngDatum.Column))
Da wundert mich nicht, dass VBA einen Fehler liefert. :-)
Wenn du eine With-Klammer einsetzt und sie richtig nutzt, vermeidet man diesen Fehler leicht.
With Sheets("Rsp")
   .Range(.Columns(rngDatum.Column), .Columns(rngDatum.Column))
End With
Da stehen 3 "With-Punkte" - 1 vor Range, 2 vor den Columns.
Alles klar?
Zu deinem Post von 26.01.2014 21:24:52:
Frage 2: Warum startest du da einen neuen Thread für und bleibst nicht in diesem?
Frage 3: Was in diesem Post ist "Schichtwunscheingabe"?
Ist das der Name der UserForm, in der der Code steht?
Dann ist die Nennung dieses Namens im Code völlig überflüssig und man kann statt
Schichtwunscheingabe.Label100.Caption
einfacher
Me.Label100.Caption
oder
Label100.Caption
schreiben.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich
Anzeige

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige