Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1884to1888
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

Fehler bei CountIf

Fehler bei CountIf
02.06.2022 07:30:02
MiSchi
Guten Morgen im Forum,
ich weiß nicht wo ich nach dem Fehler suchen kann, wenn die Function.CountIf( ...) bei mehreren Durchläufen unterschiedliche Ergebnisse ausgibt.
Im Verlauf des MAcro werden in ein Array bei Übereinstimmung (Vergleich in Schleife) x oder xx in das letzte Feld eingetragen ar(z,6) = x
Dieses Array wird am Ende in die Tabelle Daten1 übertragen - gleiches Verfahren nur andere Anzahl der Übereinstimmung und somit x bzw xx in Daten2
Jetz möchte ich eine Zusammenfassung der x bzw xx erhalten mit ZahlenWenn /CountIf
Das Übertragen der beiden Array findet direkt vor den folgenden Zeilen statt.
Ich hoffte mit einer Pause oder Aktualisierung könnte das Problem gelöst werden.
Möglicherweise interessant
für Tabelle DAten1 werden korrekt 1 / 195 / 196 gefunden oder falsch 0 / 155 / 19
für Tabelle DAten2 werden korrekt 7 / 351 / 4509 gefunden oder falsch 1 / 195 / 196
hier der Code:
'Application.Wait (5000) 'x = Zeit in Millisekunden'
Application.Wait Now + TimeSerial(0, 0, 5) 'wartet 2 Sekunden 'Warten - mglw. ist tabelle noch nicht vollständig
Application.ThisWorkbook.RefreshAll
With tbl_Daten1
'Range("G1").Value = WorksheetFunction.CountIf(Range("G2:G" & lngZeile1Max), "xx")
x = WorksheetFunction.CountIf(Range("G2:G" & lngZeile1Max), "x")
xx = WorksheetFunction.CountIf(Range("G2:G" & lngZeile1Max), "xx")
ThisWorkbook.Worksheets("Daten1").Range("G1").Value = "'" & x & " / " & xx & " / " & (lngZeile1Max - 1) 'Ausgabe Anzahl: x / xx / Gesamt
End With
With tbl_Daten2
'Range("G1").Value = WorksheetFunction.CountIf(Range("G2:G" & lngZeile1Max), "xx")
x = WorksheetFunction.CountIf(Range("G2:G" & lngZeile2Max), "x")
xx = WorksheetFunction.CountIf(Range("G2:G" & lngZeile2Max), "xx")
ThisWorkbook.Worksheets("Daten2").Range("G1").Value = "'" & x & " / " & xx & " / " & (lngZeile2Max - 1)
End With
Habt Ihr eine Idee was ich falsch mache?
Danke, viele Grüße
MiSchi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler bei CountIf
02.06.2022 08:28:23
Luschi
Hallo MiShi
With tbl_Daten1 und With tbl_Daten2 laufen ins Leere, denn Du benutzt diese Referenz überhaupt nicht! So ist es korrekt und achte dabei auf den Punkt vor Range:
With tbl_Daten1
   'Range("G1").Value = WorksheetFunction.CountIf(.Range("G2:G" & lngZeile1Max), "xx")
   x = WorksheetFunction.CountIf(.Range("G2:G" & lngZeile1Max), "x")
   xx = WorksheetFunction.CountIf(.Range("G2:G" & lngZeile1Max), "xx")
End With
Analog dann beoi With tbl_Daten2
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Fehler bei CountIf
02.06.2022 10:07:35
MiSchi
Vielen Dank Luschi,
doofer Fehler - allerdings warum kommt dann überhaupt ein Ergebnis - und manchmal sogar das richtige?
Beim schrittweise Durchlaufen kam öfter das richtige Ergebnis wie beim normalen Ablauf - deshalb die Idee mit der Pause.
Viele Grüße
MiSchi
AW: Fehler bei CountIf
02.06.2022 10:37:22
Luschi
Hallo MiSchi,
ohne den Punkt vor Range greift vba auf das aktuell auf dem Monitor sichbare Tabellenblatt zurück (Activesheet) unf mit Punkt auf die Referenz der With Klausel.
Gru0 von Luschi
aus klein-Paris
PS:
- setze 1 Zeile unter With einen Haltepunkt (F9-Taste) und starte das Makro
- der Debugger hält am Haltepunkt den Programmablauf an
- im Drektfenster gebe dann ein: ? .Range("G2:G" & lngZeile1Max).Parent.Name
- und drücke Enter
- es wird Dir der Tabellenname des Range-Bereiches angezeigt
- das selbe kannst Du auch ohne Punkt machen
- mit F5 läuft dann der Programmcode weiter durch
Anzeige
AW: Fehler bei CountIf
02.06.2022 12:06:49
MiSchi
Klasse Luschi!
Vielen Dank für die ausführliche Erklärungen und Hilfe!
Bemerkenswert welch tolle Spezialisten es im Forum gibt!
Viele Grüße
MiSchi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige