Registriert seit: 21.12.2017
Version(en): 2010
Hallo Zusammen,
ich brauche mal einen Rat von den Spezialisten
Ich arbeite mit Excel 2010 und habe folgendes Problem:
Ich habe eine Excel Ziel-Tabelle in welche, über ein VBA Script, Werte aus anderen Tabellen eingetragen werden.
Das Script ist so aufgebaut, dass - sofern in die Zieltabelle bereits Werte eingetragen wurden, die bereits eingetragenen Werte (angeordnet in Spalten) um 5 Spalten nach rechts verschoben werden, die neuen Werte werden dann in die 5 freigewordenen Spalten eingetragen.
Hintergrund hierfür: die "Neusten" Werte stehen immer in den Spalten "M-N-O-P-Q"
In der Zieltabelle verwende ich für die Ermittlung von Teilsummen den SUMMEWENN(..) Befehl, nach folgendem Kriterien
=SUMMEWENN($B$3:$B$480;Suchkriterium,$M$3:$M$480)
Und jetzt ergibt sich folgendes Problem:
Nach dem "Einfügen" der neuen Spalten passt Excel automatisch den absoluten Zellenbezug $M$3:$M$480 auf $R$3:$R480 an
Meine Frage wäre: Wie lässt sich dies Unterbinden?
Vielen Dank für eure Unterstützung!!
Gruß
Dirk
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
ich weiss nicht ob sich das automatische Anpassen des Zellbezugs vermeiden laesst. Wenn man aber mit Vba arbeitet könnte man alternativ am Ende des Makro für die entsprechende Spalte den Replace Befehl einfügen! Einfach mal ausprobieren ....
Columns(xx).Replace "$R", "$M"
mfg Gast 123
Registriert seit: 10.04.2014
Version(en): Office 2019
(21.12.2017, 22:17)Gast 123 schrieb: Hallo
ich weiss nicht ob sich das automatische Anpassen des Zellbezugs vermeiden laesst. ...
mfg Gast 123
Hallo, sicher geht das - mit INDIREKT() - aber ich frage mich nach dem Sinn Spalten dazwischen einzufügen...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Registriert seit: 10.04.2014
Version(en): 2007, Office 365
(21.12.2017, 22:44)Jockel schrieb: Hallo, sicher geht das - mit INDIREKT() - aber ich frage mich nach dem Sinn Spalten dazwischen einzufügen...
Ich denke, damit die aktuellen Werte möglich weit links stehen, um nicht scrollen zu müssen.
Man könnte aber auch die neuen Werte rechts einfügen und die nicht benötigten Spalten mit "älteren Werten" per VBA ausblenden lassen.
Gruß Conny :)
_______________________________________________________________
Die Summe der Intelligenz auf unserem Planeten ist konstant, aber die Bevölkerung wächst!
Registriert seit: 09.09.2017
Version(en): O365
Hallo
man könnte auch
- mittels VBA die Formel neu reinschreiben, da VBA eh verwendet wird
- =SUMMEWENN($B$3:$B$480;Suchkriterium;BEREICH.VERSCHIEBEN($B$3:$B$480;;11;;)), keine Ahnung wie das gegenüber INDIREKT() abschneidet
- alternativ und wohl besser(?) für Bereich.Verschieben INDEX($B$3:$M$480;;12)
bei dem scheinbar kleinen Bereich sollte es mit keiner der bisher vorgestellten Lösungen Performanceprobleme geben, ich selbst würde wohl meinen Punkt 1 vorziehen, da habe ich auch gleich ne eingebaute Dokumentation, bzw. Auto-Restore falls es jdn. einfällt, die Formeln zu überschreiben :-)
Willie
Registriert seit: 10.04.2014
Version(en): Office 2019
(22.12.2017, 01:25)Willie017 schrieb: Hallo
...
=SUMMEWENN($B$3:$B$480;Suchkriterium;BEREICH.VERSCHIEBEN($B$3:$B$480;;11;;)), keine Ahnung wie das gegenüber INDIREKT() abschneidet
Hallo, ob das klappt, weiß ich nicht, weil's mich auch nicht interessiert (ohhhh) , hier ist wohl INDIREKT() direkt eifacher und kürzer...
PHP-Code:
=SUMMEWENN($B$3:$B$480;Suchkriterium;INDIREKT("M3:M480"))
Aber ich muss das mit dem Verschieben (der Spalten) immer noch nicht verstehen. Das macht mich nicht an... und wie ich finde, die Sache nur unnötig schwieriger...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Registriert seit: 09.09.2017
Version(en): O365
(21.12.2017, 23:58)coemm schrieb: Ich denke, damit die aktuellen Werte möglich weit links stehen, um nicht scrollen zu müssen.
sehe ich auch so, aber irgendwann fällt dem TE dieses Datenmodell auf die Füße
Zitat:Man könnte aber auch die neuen Werte rechts einfügen und die nicht benötigten Spalten mit "älteren Werten" per VBA ausblenden lassen.
dann muss man aber die Formel auch neu 'berechnen', INDEX() in Verbindung mit ANZAHL2() würde wohl helfen
Willie
Registriert seit: 09.09.2017
Version(en): O365
Hallo
Zitat:Jockel
Hallo, ob das klappt, weiß ich nicht, weil's mich auch nicht interessiert (ohhhh) , hier ist wohl INDIREKT() direkt eifacher und kürzer...
mich schon, INDIREKT() ist m.W. volatil und deshalb für große Datenbereiche eher nicht geeignet, deshalb versuche ich immer 'bessere' Alternativen für mich zu finden, was mir zugegeben oft erst durch Versuch und Irrtum gelingt. Für den konkreten Fall gebe ich dir uneingeschränkt recht
Zitat:PHP-Code:
=SUMMEWENN($B$3:$B$480;Suchkriterium;INDIREKT("M3:M480"))
Aber ich muss das mit dem Verschieben (der Spalten) immer noch nicht verstehen. Das macht mich nicht an... und wie ich finde, die Sache nur unnötig schwieriger...
würde er transponieren, hätte er immerhin noch ca. 480 Spalten. Wir kennen die Gründe und Daten nicht, dauerhaft Daten sammeln und irgendwann auswerten ist bei dieser Vorgehensweise sicher nicht (gut) möglich, evtl. aber gar nicht geplant...
Willie
Registriert seit: 18.05.2016
Version(en): die, die da ist
Hallo,
so?
=SUMMEWENN($B$3:$B$480;1;INDEX(3:3;;13):INDEX(480:480;;13))
Die Formel darf allerdings nicht in Zeile 3 oder Zeile 480 stehen.
VG
von René und seinen 3 Gehirnzellen