Office-Fragen.de
Range nicht von Zeile abhängig - Druckversion

+- Office-Fragen.de (https://office-fragen.de)
+-- Forum: Microsoft Office (https://office-fragen.de/forum-1.html)
+--- Forum: Excel (https://office-fragen.de/forum-2.html)
+--- Thema: Range nicht von Zeile abhängig (/thread-1148.html)



Range nicht von Zeile abhängig - Achmed - 05.07.2019

Hallo zusammen,

Ich bin neu hier im Forum und habe leider nichts zu meinem Problem finden können. Sollte ich etwas übersehen haben, bitte darauf hinweisen.

Ich habe eine Liste mit Preisen für bestimme Produkte. Diese Spalte L ist in 2 Kategorien unterteilt.
Dann lasse ich mittels Makro Formeln auf die Spalte L in Spalte M anwenden. Daraufhin wird der Wert von M in N kopiert.

Das Problem, das ich nun habe ist folgendes:
Für die beiden Kategorien werden unterschiedliche Formeln angewandt:
ActiveCell.FormulaR1C1 = "=(RC[-1]*R8C12)*R9C12" für die Zeilen von M15 - M268

ActiveCell.FormulaR1C1 = "=(RC[-1]*R8C12*3)" für die Zeilen von M269 bis M297

Soweit so gut. Leider kommt es im Laufe des Jahres immer wieder dazu, dass dort Produkte raus genommen werden oder auch hinzugefügt werden.
Somit stimmt die Range nicht mehr mit der Liste überein.

Kann man die Formel nicht auch anders festmachen? Also nicht an der Zeile sondern zBsp an der Überschrift/Kategorie?
Sodass die Range variieren kann.
Oder welche andere Möglichkeiten könnte es geben?

Anbei eine Beispieldatei.

Vielen Dank für eure Hilfe
MfG
Achmed


RE: Range nicht von Zeile abhängig - GMG-CC - 05.07.2019

Moin Achmed,
nicht jeder Helfer lädt VBA-verdächtige Files von fremden Quellen herunter.
Ich gehöre zu dieser Spezies.
Wenn du also das File als *.xlsx hoch lädst, hast du bessere Chancen. Und auch die verwendete Excel-Version wäre hilfreich.


RE: Range nicht von Zeile abhängig - mumpel - 05.07.2019

(05.07.2019, 21:37)GMG-CC schrieb: Wenn du also das File als *.xlsx hoch lädst, hast du bessere Chancen.
Damit hat er keine Chance. XLSX enthält keinen VBA-Code. Du meinst XLSM. Wink


RE: Range nicht von Zeile abhängig - GMG-CC - 06.07.2019

@ Mumpel
Wenn du mit "er" mich meinst: Nein, ich lade weder *.xlsm noch *.xlsb und auch keine *.xlsx aus dem Netz. Bei den beiden erstgenannten Dateitypen ist es schließlich möglich, den VBA-Code zu exportieren und die "saubere" xlsx getrennt hoch zu laden.


RE: Range nicht von Zeile abhängig - maninweb - 06.07.2019

Hallo,

Achmed, die Struktur der Tabellen ist so wie sie in der Beispieldatei zu sehen ist, meines Erachtens nicht optimal.
Es ist jetzt ein wenig schwierig, eine bessere Struktur vorzuschlagen, da die Mappe anscheinend reduziert wurde;
aber generell empfiehlt es sich nur in Ausnahmefällen unterschiedliche Formeln in eine Spalte zu haben.

Dein Code greift auf verschiedene Bereiche zu. Diese könntest Du auslesen, indem Du die Bereiche nicht im Code
als Text ablegst, sondern in einer Excel-Zelle. Beispiel:

Code:
Selection.AutoFill Destination:=Range("M15:M268"), Type:=xlFillDefault

würde dann werden zu ...

Code:
Selection.AutoFill Destination:=Range(ActiveSheet.Range("Z1").Value), Type:=xlFillDefault

In Z1 steht dann M15:M268 als Text oder als Ergebnis einer Formel: 

Code:
=ADRESSE(ZEILE(M15);SPALTE(M15);4)&":"&ADRESSE(ZEILE(M268);SPALTE(M268);4)

Der Code sieht insgesamt nach einer Makroaufzeichnung aus. Select-Anweisungen sind z.B. zu 99% überflüssig.
Ich kann Dir jetzt an dieser Stelle keinen VBA-Kurs geben, aber google mal danach. Und nach vollständige
Referenzierung in VBA.

Gruß


RE: Range nicht von Zeile abhängig - Achmed - 09.07.2019

Hallo zusammen,

Effektiv hätte ich daran denken müssen, die Datei als *.xlsx hoch zu laden.

Deshalb Danke an maninweb dass er sich das trotzdem angeschaut hat.

Ich werde Deinen Vorschlag mal testen und melde mich danach.

Vielen Dank!!
MfG
Achmed


RE: Range nicht von Zeile abhängig - Achmed - 10.07.2019

Hat geklappt.

Vielen Dank

MfG
Daniel