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

wieRelativeAdresseBei .FormulaR1C1 = "=Countif(..

wieRelativeAdresseBei .FormulaR1C1 = "=Countif(..
23.08.2007 12:33:36
felix
Guten Tag, bitte helft mir.
ActiveWorkbook.Worksheets("Übersicht").Cells(iRow, 5).FormulaR1C1 = "=Countif(LV!R9C2:R8300C2" & "," & "R" & iRow & "C4" & ")"
erzeugt (über eine Schleife) die Formeln, die ich benötige, allerdings nur mit absoluten Bezügen. Das Ergebnis sieht dann z.B. so aus
=ZÄHLENWENN(LV!$B$9:$B$8300;$D$26)
Ich benötige jedoch
=ZÄHLENWENN(LV!$B$9:$B$8300;$D26)
da die gezählten Objekte immer mal wieder neu/anders sortiert werden.
Wer kann mir mit Denkanstößen helfen?

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

Betreff
Datum
Anwender
Anzeige
Schalt mal um auf die Z1S1-Bezugsart...
23.08.2007 12:36:32
{Boris}
Hi,
...und schau Dir die Syntax eines relativen Verweises an.
Grüße Boris

AW: Schalt mal um auf die Z1S1-Bezugsart...
23.08.2007 13:03:00
felix
Hallo Boris, danke für Deinen Beitrag. Verstanden habe ich Folgendes:
ActiveWorkbook.Worksheets("Übersicht").Cells(iRow, 2).FormulaZ1S1 = "=Countif(LV!Z9S99:Z8301S99" & "," & "Z" & iRow & "S1" & ")"
Das war wohl aber nicht gemeint? Denn VBA bricht mit Fehler ab. Sollte ich zunächst explizit
Application.ReferenceStyle = xlR1C1
setzen, oder was meinst Du mit umschalten? Ob ich Deinen Hinweis auf die Syntax "eines relativen Verweises" richtig verstehe weiß ich nicht. Bitte sag noch genauer was Du meinst.
Danke und Gruß.

Anzeige
AW: Schalt mal um auf die Z1S1-Bezugsart...
23.08.2007 13:09:18
Rudi
Hallo,
Extras-Optionen-allgemein-Haken bei Z1S1 rein und mal eine relative Formel eingeben.
Bist nun Profi oder nicht? (Ich wäre da seeeehr vorsichtig)
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Schalt mal um auf die Z1S1-Bezugsart...
23.08.2007 15:06:00
felix
Hallo Rudi,
Deine Frage verstehe ich so, dass Du Dich in die Irre geleitet fühlst. Das tut mir leid.
"und gib mal eine Formel ein" hilft nicht weiter, da die betreffenden Formeln ja per VBA in die betreffenden Zellen gelangen. Aber vielleicht bin ich auch beim Verständnis dieser Hilfestellung noch nicht weit genug.
Danke für Deine Hilfe.
Hallo an alle,
anhaken von "Z1S1" führt zu folgendem Ergebnis:
=ZÄHLENWENN(LV!Z9S99:Z8301S99;Z26S1)
Meine Problemsituation löst das leider nicht, da nach einem Sortiervorgang keine Anpassung von
Z26S1
passiert. Die Zelle mit dieser Formel wird dann zwar mit dem Produkt derselben Zeile in eine andere Zeile sortiert, zeigt dann aber immer noch in die (alte) Zeile 26.
Beispiel:
In Spalte Anzahl stehen die Zählenwenn-Formeln
Produkte: Anzahl:
C8 2
RC110 3
RC112 3
B8 2
RD112 1
D1 1
D5 1
Nach einer Sortierung nach Produkte sieht der Bereich so aus
Produkte: Anzahl:
B8 1
C8 2
D1 3
D5 1
RC110 2
RC112 1
RD112 3
Erklärung:
Die Zählenwenn-Funktion von z.B. Produkt B8 wird zwar mitsortiert, zeigt aber nach der Sortierung auf die Zelle, in der B8 vor der Sortierung stand. Dort steht jetzt D5. Wie man aus dem Stand vor Sortierung sehen kann, kommt das Produkt D5 einmal vor. Zählenwenn arbeitet also richtig. Allein der Bezug stimmt nach der Sortierung nicht mehr. Folge: das Ergebnis ist unbrauchbar.
Ich habe per manueller Änderung verifiziert, daß das Sortierproblem bei folgender Bezugsart (wie schon im einleitenden Thread dargestellt) nicht auftritt:
=ZÄHLENWENN(LV!$B$9:$B$8300;$D26)
statt
=ZÄHLENWENN(LV!$B$9:$B$8300;$D$26)
Kleiner Hinweis: in der "Echten" Anwendung handelt es sich nicht um nur 7 Produkte, sondern je nach Auswertung um bis zu 200.

Anzeige
Gib mal in eine Zelle folgendes ein:
23.08.2007 15:37:00
{Boris}
Hi Felix,
=A1
Ist ja ein relativer Bezug. Besser noch für Dein konkretes Beispiel:
=$A1
da Du ja einen gemischten Bezug abbilden möchtest.
Jetzt wechselst Du mal unter Extras-Optionen in die Z1S1-Bezugsart und schau Dir Deine Formel mal an. Da tauchen irgendwo Klammern auf mit nem - (oder auch nem Plus, wenn Du auf Zellen NACH der Formelzelle referenzierst).
Und diese Formelsyntax musst Du nun in Deinem VBA-String nachbilden.
Grüße Boris

AW: Gib mal in eine Zelle folgendes ein:
24.08.2007 11:42:49
felix
Hallo Boris,
kaum macht man's richtig, schoin funktioniert's :-))
DANKE
Da ich's nicht auf Anhieb geblickt habe, erläutere ich für alle Interessierten nochmal die Einzelschritte.
Ich erhielt ja
=ZÄHLENWENN(LV!$B$9:$B$8300;$D$26)
Das änderte ich manuell in der erzeugten Datei auf
=ZÄHLENWENN(LV!$B$9:$B$8300;$D26)
Dann hakte ich in der erzeugten Datei Z1S1-Bezugsart an unter EXTRAS-OPTIONEN-ALLGEMEIN.
Die Formel änderte sich dann in
=ZÄHLENWENN(LV!Z9S99:Z8301S99;ZS1)
Daraufhin änderte ich in meinem VBA zur Erzeugung der Formel
VON
ActiveWorkbook.Worksheets("Übersicht").Cells(iRow, 2)._
FormulaR1C1 = "=Countif(LV!R9C99:R8301C99" & "," & "R" & iRow & "C1" & ")"
(in iRow steht/stand der Schleifenzähler, der an dieser Stelle nicht mehr benötigt wird)
IN
ActiveWorkbook.Worksheets("Übersicht").Cells(iRow, 2)._
FormulaR1C1 = "=Countif(LV!R9C99:R8301C99" & "," & "RC1" & ")"
Es ist nicht erforderlich, dass die Z1S1-Bezugsart in der Datei mit dem VBA-Code angehakt ist. In meinem konkreten Fall ist das zur Vermeidung von "Verhaltensänderungen" an anderen Kodestellen sogar unerwünscht.
Nochmals danke an Boris!
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige