Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
400to404
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
400to404
400to404
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bereich m.definierten Namen + Autofilter +Funktion

Bereich m.definierten Namen + Autofilter +Funktion
David
Hallo große Meister,
Folgendes Problem:
Ich habe ein paar Funktionen, die auf Werte in einem Bereich mit definierten Namen zugreifen. Soweit so gut.
Da sich die Input-Daten verändern, erstelle ich diesen Bereich mit def. Namen im Vorfeld über ein Makro, klappt alles wunderbar. (der Bereich erstreckt sich über eine Spalte und x-hundert Zeilen)
Das Problem: Dieser besagte Bereich mit den Werten für meine Funktionen wird über eine andere Spalte mit Autofilter gefiltert. Diese Filterung muss aber von der Funktion berücksichtigt werden!!
Beispiel:
Die Funktion addiert alle Werte
In dem Bereich sind die Zahlen 5, 5, 5, 50, 50
ohne Filter wäre das Ergebnis 115, gut.
nun wird via Autofilter gefiltert und es sind nur noch 50 und 50 zu sehen
Das Ergebnis müsste nun 100 sein, ist es aber nicht.....weil sich der Bereich ja auch über die ausgeblendeten Zeilen erstreckt....
Any Ideas wie ich das löschen kann?
AW: Bereich m.definierten Namen + Autofilter +Funktion
Ulf
Das sollte mit der Funktion Teilergebnis zu lösen sein.
Ulf
wichtiger Zusatz!
David
Der Autofilter wird gesetzt BEVOR der Bereich mit definierten Namen erstellt wird....
@ Ulf: klingt nett, aber mit Teilergebnis kenn ich mich nicht aus...hättest du da genaueren Input?
AW: wichtiger Zusatz!
Ulf
Dann kannst du auch Teilergebnis vergessen.
Ulf
manuell gehts
David
jo, danke trotzdem...
Ich verstehs trotzdem nicht: Wenn ich es manuell mache, also Filter setze, makieren und dann Name definiere, geht alles wunderbar.
Im Code mache ich es ja nicht anders: Ich suche die letzte Zeile, dann makiere ich den Bereich und dann definniere ich den Namen....DANN bezieht er aber auch die gefilterten Zeilen mit ein!?!?
Anzeige
AW: automatisch auch
Nepumuk
Hallo David,
versuch es mal so:
ActiveWorkbook.Names.Add Name:="test", RefersToR1C1:="=Tabelle1!" & Range(Cells(2, 1), Cells(Cells(2, 1).End(xlDown).Row, 1)).SpecialCells(xlCellTypeVisible).Address(ReferenceStyle:=xlR1C1)
Im Beispiel befindet sich der Filter in Zelle A1.
Gruß
Nepumuk
sieht vielversprechend aus.......ABER ;-)
David
Hi Nepumuk,
das sieht sehr vielversprechend aus! Leider funktionierts nicht richtig:
Der betroffene Autofilter ist allerdings in Celle A1 bzw. in Zelle R1C1.
Er bricht mit dem Run-time Error 1004 --&gt "Unable to get the SpecialCells property of the Range class".
Dabei finde ich dann bei ReferenceStyle x1R1C1 = -4150....und das macht -glaaub ich- keinen Sinn.......idee woran es liegt?
Anzeige
AW: sieht vielversprechend aus.......ABER ;-)
Nepumuk
Hallo David,
-4150 ist der Wert der Konstante xlR1C1. Warum das bei dir nicht klappt, kann ich so nicht sagen. Wie sieht die Zeile den nach deinen Modifikationen jetzt aus?
Gruß
Nepumuk
AW: sieht vielversprechend aus.......ABER ;-)
David
Du meinste meine Zeile Code? hier you go...
ActiveWorkbook.Names.Add Name:="Test", RefersToR1C1:="=tabelle1!" & Range(Cells(ZeileÜberschrift(2), SpalteÜberschriftBis(2) + 1), Cells(SectorCoverageBis, SpalteÜberschriftBis(2) + 1)).SpecialCells(xlTypeVisible).Address(ReferenceStyle:=xlR1C1)
Die Variablen/Arrays enthalten nur jeweils die "Eckdaten" für den Bereich. Das ist aer auch soweit verifiziert und funktioniert.
k.A. woran es liegt :-(
Anzeige
AW: sieht vielversprechend aus.......ABER ;-)
Nepumuk
Hallo David,
und was steht in den Variablen drin?
Gruß
Nepumuk
AW: sieht vielversprechend aus.......ABER ;-)
David
Die Range erstreckt sich von Zeile 1 bis Zeile 169 in Spalte 18....
Also ZeileÜberschrift(2) = 1
SpalteÜberschriftBis + 1 = 18
SectorCoverageBis = 169
Dummer Fehler?
David
Hey,
ich hab gerade nochmal geguckt:
Es heißt nicht xlTypeVisible, sondern XLCellTypeVisible, oder?
Leider funktioniert es jetzt auch nicht.....jetzt hat die Funktion #Value! Error....also doch noch nciht gelöst?
AW: Dummer Fehler?
Nepumuk
Hallo David,
dein Name erstreckt sich von Zeile 1 bis Zeile 169 in Spalte R. Da ist die Überschrift noch mit drin.
Gruß
Nepumuk
Anzeige
AW: Dummer Fehler?
David
ja ich weiß, das habe ich anders gelöst. Ist also net gegeben. (Fehler vorhin meinerseits)
Problem bleibt --&gt die Funktion hat nen #Value! Error. Ich kann nciht nachvollziehen wieso!?
AW: Dummer Fehler?
Nepumuk
Hallo David,
ich habe es nur mit Summe(test) versucht, und da bekomme ich den richtigen Wert zurück. Lass mal das Programm den Namen vergeben, heb den Autofilter auf und markiere über Bearbeiten - Gehe zu, den Namensbereich. Dann siehst du schon mal, welche Zellen zu dem Bereich gehören. Da muss der Fehler ja drinstecken.
Gruß
Nepumuk
AW: Dummer Fehler?
David
Hi Nepumuk,
du hast und hattest recht, ich habe einen Denkfehler gemacht:
Ich habe da einfach zeileüberschrift +1 gemacht, Problem dabei: DIESE Zeile ist nicht teil der gefilterten Zeilen ---&gt richtig wäre gewesen Zeile 87.
Also, das Problem ist soweit gelöst, jetzt ist ein neues da, ebenfalls AutoFilter betreffend (gebe ja zu, dass ich da nicht so bewandert bin*g*)
Jetzt will ich die 1.gefilterte Zeile finden, um ENDLICH das ganze zu lösen ;-)
.....any Ideas? Wenn nicht DANKE für die Hilfe!
Cheers David
Anzeige
AW: Dummer Fehler?
Nepumuk
Hallo David,
so:
Range(Cells(2, 1), Cells(Cells(2, 1).End(xlDown).Row, 1)).SpecialCells(xlCellTypeVisible).Range("A1")
Gruß
Nepumuk
nachvollziehen?
David
Hi Nepumuk,
tut mir leid, wenn ich NOCHMAL nachfrage:
Ich kann bei deinem Code:
Range(Cells(2, 1), Cells(Cells(2, 1).End(xlDown).Row, 1)).SpecialCells xlCellTypeVisible).Range("A1")
nicht nachvollziehen, wie ich damit die erste SICHTBARE Zeile nach der Überschrift bekomme......das ist ja mein Ziel: Ich will eine Variable, die damit füttern und dann später für den Namensbereich als obere Grenze angeben.....
AW: nachvollziehen?
Nepumuk
Hallo David,
Zeilennummer so:
Range(Cells(2, 1), Cells(Cells(2, 1).End(xlDown).Row, 1)).SpecialCells(xlCellTypeVisible).Range("A1").Row
Gruß
Nepumuk
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige