Referenzen automatisieren

05/07/2008 - 12:04 von Boris Kirkorowicz | Report spam
Hallo,
ich habe die Pflege einer Tabelle geerbt, die intensiv mit VBA arbeitet
-mit VBA habe ich aber nichts am Hut. Stattdessen will ich ein paar
kleinere Anpassungen mit Formeln machen und brauche dafür etwas "Nachhilfe".

Über Makros wird eine Datenbank ausgelesen und mit den so gewonnenen
Daten gut 200 Arbeitsblàtter gefüllt. Diese Arbeitsblàtter werden
automatisch benannt: deren Name setzt sich zusammen aus einer Art
Seriennummer (alphanumerisch), einem von vier möglichen Schlüsselwörtern
und der Zeilennummer der Übersichtsseite. Beispiel: DE1234_other_4

Der Inhalt dieser Quell-Arbeitsblàtter kann sich bei Anwendung des
Makros àndern, u.U. können auch Arbeitsblàtter hinzukommen (z.B.
DE123456_wintel_4) oder fortfallen. Deshalb (und weil es bei >200
Arbeitsblàttern eine fürchterliche und fehlertràchtige Tipparbeit ist)
möchte ich Bezüge auf Zellen in diesen Quell-Arbeitsblàttern in der
Auswertungsseite automatisieren.

So möchte ich in der Übersicht die Anzahl der Vorkommen von "yes" in
einer bestimmten Spalte für eine Seriennummer summieren. Von Hand
eingetippt würde das so aussehen:


=COUNTIF(DE1234_wintel_4!CP:CP;"yes")+COUNTIF(DE1234_other_4!CP:CP;"yes")



Das würde mir die Summer aller "yes"-Eintràge der Seriennummer DE1234
ausgeben -tut es auch. Mein Versuch, das zu automatisieren, ist hierbei
steckengeblieben:


=COUNTIF(D5&"_wintel_"&ROW()-1&"!CP:CP";"yes")+COUNTIF(D5&"_other_"&ROW()-1&"!CP:CP";"yes")



Die Seriennummer steckt also in der Spalte D, die auszuwertende Spalte
der Quellenseiten ist stets CP, und von der Zeilennummer muss 1
abgezogen werden, weil eine Überschriftenzeile hinzugefügt wurde.
Dummerweise funktioniert das nicht, sondern zeigt bestenfalls #NAME als
Ergebnis. Welchen Fehler mache ich?




Zweite Stufe:
"""""""""""""
Es gibt vier mögliche Schlüsselwörter, aber nicht alle werden bei jeder
Seriennummer benutzt -es existieren also nicht alle aus allen möglichen
Kombinationen zu bildenden Arbeitsblàtter. Wenn ich in die Formel aber
alle möglichen Kombinationen aufnehme, etwa so:


=COUNTIF(D5&"_wintel_"&ROW()-1&"!CP:CP";"yes")+COUNTIF(D5&"_other_"&ROW()-1&"!CP:CP";"yes")+COUNTIF(D5&"_aix_"&ROW()-1&"!CP:CP";"yes")+COUNTIF(D5&"_nsd_"&ROW()-1&"!CP:CP";"yes")



dann würde es nur bei einigen wenigen Seriennummern ohne Fehler
funktionieren, denn die meisten Seriennummern treffen nur auf ein, zwei
oder drei Schlüsselwörter. Dann öffnet sich ein Dateiauswahldialog, weil
Excel wohl von einer externen Datei ausgeht, wenn der das Arbeitsblatt
in der Tabelle nicht gefunden wird. Gibt es die Möglichkeit, so etwas
wie eine IF-EXIST-Abfrage einzubauen, oder alternativ diese
Fehlerbehandlung zu unterdrücken?





Gruss Greetings
Boris Kirkorowicz



Gruss Greetings
Boris Kirkorowicz

Falls Ihre E-Mail versehentlich im Spamfilter haengengeblieben zu sein
scheint, bitte das Formular unter http://www.kirk.de/mail.shtml nutzen.
If your eMail seems to be caught by the SPAM filter by mistake, please
use the form at http://www.kirk.de/mail.shtml to drop me a note.
 

Lesen sie die antworten

#1 {Boris}
05/07/2008 - 16:25 | Warnen spam
Hi Namensvetter,

On 5 Jul., 12:04, Boris Kirkorowicz wrote:
Hallo,
ich habe die Pflege einer Tabelle geerbt, die intensiv mit VBA arbeitet
-mit VBA habe ich aber nichts am Hut. Stattdessen will ich ein paar
kleinere Anpassungen mit Formeln machen und brauche dafür etwas "Nachhilfe".

Über Makros wird eine Datenbank ausgelesen und mit den so gewonnenen
Daten gut 200 Arbeitsblàtter gefüllt. Diese Arbeitsblàtter werden
automatisch benannt: deren Name setzt sich zusammen aus einer Art
Seriennummer (alphanumerisch), einem von vier möglichen Schlüsselwörtern
und der Zeilennummer der Übersichtsseite. Beispiel: DE1234_other_4

Der Inhalt dieser Quell-Arbeitsblàtter kann sich bei Anwendung des
Makros àndern, u.U. können auch Arbeitsblàtter hinzukommen (z.B.
DE123456_wintel_4) oder fortfallen. Deshalb (und weil es bei >200
Arbeitsblàttern eine fürchterliche und fehlertràchtige Tipparbeit ist)
möchte ich Bezüge auf Zellen in diesen Quell-Arbeitsblàttern in der
Auswertungsseite automatisieren.

So möchte ich in der Übersicht die Anzahl der Vorkommen von "yes" in
einer bestimmten Spalte für eine Seriennummer summieren. Von Hand
eingetippt würde das so aussehen:

> =COUNTIF(DE1234_wintel_4!CP:CP;"yes")+COUNTIF(DE1234_other_4!CP:CP;"yes")

Das würde mir die Summer aller "yes"-Eintràge der Seriennummer DE1234
ausgeben -tut es auch. Mein Versuch, das zu automatisieren, ist hierbei
steckengeblieben:

> =COUNTIF(D5&"_wintel_"&ROW()-1&"!CP:CP";"yes")+COUNTIF(D5&"_other_"&ROW()-1­&"!CP:CP";"yes")

Die Seriennummer steckt also in der Spalte D, die auszuwertende Spalte
der Quellenseiten ist stets CP, und von der Zeilennummer muss 1
abgezogen werden, weil eine Überschriftenzeile hinzugefügt wurde.
Dummerweise funktioniert das nicht, sondern zeigt bestenfalls #NAME als
Ergebnis. Welchen Fehler mache ich?

Zweite Stufe:
"""""""""""""
Es gibt vier mögliche Schlüsselwörter, aber nicht alle werden bei jeder
Seriennummer benutzt -es existieren also nicht alle aus allen möglichen
Kombinationen zu bildenden Arbeitsblàtter. Wenn ich in die Formel aber
alle möglichen Kombinationen aufnehme, etwa so:

> =COUNTIF(D5&"_wintel_"&ROW()-1&"!CP:CP";"yes")+COUNTIF(D5&"_other_"&ROW()-1­&"!CP:CP";"yes")+COUNTIF(D5&"_aix_"&ROW()-1&"!CP:CP";"yes")+COUNTIF(D5&"_ns­d_"&ROW()-1&"!CP:CP";"yes")

dann würde es nur bei einigen wenigen Seriennummern ohne Fehler
funktionieren, denn die meisten Seriennummern treffen nur auf ein, zwei
oder drei Schlüsselwörter. Dann öffnet sich ein Dateiauswahldialog, weil
Excel wohl von einer externen Datei ausgeht, wenn der das Arbeitsblatt
in der Tabelle nicht gefunden wird. Gibt es die Möglichkeit, so etwas
wie eine IF-EXIST-Abfrage einzubauen, oder alternativ diese
Fehlerbehandlung zu unterdrücken?

Gruss                    Greetings
       Boris Kirkorowicz

Gruss                    Greetings
       Boris Kirkorowicz

Falls Ihre E-Mail versehentlich im Spamfilter haengengeblieben zu sein
scheint, bitte das Formular unterhttp://www.kirk.de/mail.shtmlnutzen.
If your eMail seems to be caught by the SPAM filter by mistake, please
use the form athttp://www.kirk.de/mail.shtmlto drop me a note.



Dein Problem erschlàgst Du mit der Funktion INDIRECT (englische
Schreibweise).
Schau mal in die Hilfe. Wenn Du nicht weiterkommst, melde Dich
nochmal.

Grüße Boris

Ähnliche fragen