Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
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
Inhaltsverzeichnis

VBA Zähler reagiert nicht

VBA Zähler reagiert nicht
09.01.2023 13:51:40
Kalle
Hallo an das Excelteam,
ich möchte gerne eure Hilfe in Anspruch nehmen, für eine Änderung fehlen mir hierfür weitere Kenntnisse.
Der VBA Code sollte den Zähler in Zelle M1 jedesmal mit den Bottomklick weiter aufaddieren lassen, aber der VBA Code reagiert nicht.
Ich denke, weil ich in den Zellen Q7:Q12 diese Formel in das Excel-Blatt Tabelle 1 (Tabelle1)
=WENN(ODER($Z$15=12);INDEX($Z$16:$Z$21;1;Spalte(A7));"") zum copieren eingegeben habe und auch stehen muß und wenn diese Bedingung erfüllt ist, dann auch der VBA Zähler-Code auf die selben Zelleninhalte von Q7:Q12 aktiviert wird und zur gleichen Zeit zugreift, um den Zählvorgang ausführen zu können, beides müßte aber zusammen funktionieren.

Private Sub Worksheet_SelectionChange(ByVal) Target As Range)
If Not Intersect(Target,(Range("Q7:Q12"))  Is Nothing Then
If Application.CountA(Range("Q7:Q12")) = 6 Then
Range("M1") = Range("M1") +1
' Range ("Q7:Q12". ClearContents
'Range("Q7"). Select
End If
End If
End Sub
Die Excel Formel sowie der VBA Code sind ohne Fehler, funktionieren aber nur alleine richtig, aber nicht zusammen ! Was könnte man da machen?
Gruß Kalle

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zähler reagiert nicht
09.01.2023 14:01:32
onur
Sorry, aber der "Code" ist Blödsinn.
AW: VBA Zähler reagiert nicht
09.01.2023 14:03:42
UweD
Hallo
unabhängig von Sinnhaftigkeit.... Klammern falsch gesetzt.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("Q7:Q12")) Is Nothing Then
If Application.CountA(Range("Q7:Q12")) = 6 Then
Range("M1") = Range("M1") + 1
Range("Q7:Q12").ClearContents
Range("Q7").Select ' löst sofort wieder das Event aus
End If
End If
End Sub
LG UweD
AW: VBA Zähler reagiert nicht
09.01.2023 14:50:47
Yal
Hallo Kalle,
wenn ich den Code richtig interpretiere, möchtest Du, nachdem eine Eingabe im Bereich Q7:Q12 gemacht wurde, und nur wenn diese 6 Zellen 6 Werte haben, dass der Zähler +1 bekommt und der Inhalt geleert wird. Richtig?
Dann müsstest Du das Ereignis "Change" anstatt SelectionChange. Beim letzteres ist Target die neuselektierte Zelle und ist damit unwahrscheinlich, dass diese in Q7:Q12 liegt.
Das Neuanstossen der Event ist nutzlos: wenn Du schon Q7:Q12 leerst, wie soll dann CountA(..) = 6 sein? Es ist in allgemein sinnvoll, die Events während solche Verarbeitung zu blockieren, um endlose Schleife zu vermeiden.
(Meine Änderungen basieren auf der Vorarbeit von UweD)

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
With Range("Q7:Q12")
If Not Intersect(Target, .Cells) Is Nothing Then
If Application.CountA(.Cells) = 6 Then
Range("M1") = Range("M1") + 1
.Cells.ClearContents
End If
End If
End With
Application.EnableEvents = True
End Sub
VG
Yal
Anzeige
AW: VBA Zähler reagiert nicht
09.01.2023 17:23:16
Kalle
Hallo Yan,
vielen Dank für deine schnelle Anwort und dein richtiges Verständnis.
Es funktioniert schon fast richtig der Zähler wurde auch um +1 addiert, aber die Formel in Q7:Q12 =WENN(ODER($Z$15=12);INDEX($Z$16:$Z$21;1;Spalte(A7));"") wurde gelöscht, sie müsste aber für die nächste Abfrage wieder vorhanden sein. Gibt es dafür vieleicht auch eine Lösung.
Im Voraus vielen Dank.
Gruß Kalle
AW: VBA Zähler reagiert nicht
09.01.2023 17:38:11
Kalle
Hallo Yal,
entschuldige bitte ich habe vor Aufregung wohl einen Fehler gemacht, habe nochmals den Code copiert, nun wird der Formel Code nicht mehr gelöcht aber er Zählt nicht weiter.
Gruß Kalle
Anzeige
AW: VBA Zähler reagiert nicht
09.01.2023 17:41:51
Yal
Hallo Kalle,
dann ist

Range ("Q7:Q12").ClearContents
bzw.

.Cells.ClearContents
zuviel. Lösche diese Zeile.
Du solltest auch die Prüfung CountA(..) = 6 auf diesen Zellen machen, weil, da dahinter eine Formel vorliegt, ist das Ergebnis immer 6.
Folgende Code sollte passender sein:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i, Z
Application.EnableEvents = False
With Range("Q7:Q12")
If Not Intersect(Target, .Cells) Is Nothing Then
For Each Z In .Cells
If Z.Value  "" Then i = i + 1
Next
If i = 6 Then Range("M1") = Range("M1") + 1
End If
End With
Application.EnableEvents = True
End Sub
Übrigens:
ODER($Z$15=12) kannst Du in $Z$15=12 kürzen.
INDEX($Z$16:$Z$21;1;Spalte(A7)) Kannst Du in $Z$16 kürzen, weil Spalte(A7) ist immer 1 (Spalte A ist Spalte 1). Dein Bereich Zx:Zy hat sowieso nur eine Spalte. Probiere mit Spalte(B7), dann bekommst Du "#BEZUG!".
VG
Yal
Anzeige
AW: VBA Zähler reagiert nicht
09.01.2023 18:34:03
Kalle
Hallo, eine Pause bis morgen es funktionert noch nicht, macht auch keine Fehler Meldung nach dem neuen Update.
Aber vielen Dank an alle bis in Kürze.
Gruß Kalle
AW: VBA Zähler reagiert nicht
09.01.2023 17:59:43
Kalle
Hallo Yal, wenn ich das Programm neu starte nachdem ich alles gesaved habe und danach das Programm neu starte, kommt die Fehler Meldung Laufzeitfehler '438'
Objekt unterstüzt diese Eigenart oder Methode nicht in der Zeile Application.EnableEvents = True , entschuldige bitte nochmals diese Meldung.
Gruß Kalle

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige