Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellenbezug fest machen

Forumthread: Zellenbezug fest machen

Zellenbezug fest machen
05.10.2024 10:34:25
Saffi
Hallo Freunde,

ich komm irgendwie nicht weiter.^^

Ich habe eine DB in der ich mittels Makro Datensätze in einen Bereich eines Tabellenblattes schreibe. Entweder fortlaufend oder aber Bereich löschen und dann neu ausfüllen. Der Bereich selbst ist fix.

Von diesem Bereich nehme ich mir (je nach Inhalt) Werte heraus, die ich weiter verarbeiten möchte. Dies mache ich mit Zellbezügen. bspw. B25 oder D31. Diese habe ich auch mit $B$25 $D$31 als absolut gesetzt. Wenn ich aber nun mittels Makro den Bereich verändere also fortlaufend schreibe oder neu befüll, dann stehen in den Zellen für die Weiterverarbeitung nur #bezug in den Formeln anstatt der Zelladressen. Wie kann ich das besser lösen? oder geht das so nicht?

Danke euch.
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellenbezug fest machen
05.10.2024 10:39:10
Oberschlumpf
Hi,

zumindest ich würd jetzt gerade deine Fragen mit "weiß ich nicht" beantworten.
Wieso?
Weil ich gar nich weiß, wie deine Datei/dein Code aussieht.

Zeig bitte per Upload eine Bsp-Datei mit genügend Bsp-Daten in den richtigen Zellen und zerig auch deinen Code, den du bisher verwendest.

Ciao
Thorsten
Anzeige
AW: Zellenbezug fest machen
05.10.2024 10:57:30
Saffi
Nunja, die komplette Datei kann und möchte ich jetzt nicht hier posten. Aber ich habe mal eine Tabelle erstellt, wo man sieht was gemeint ist.

https://www.herber.de/bbs/user/172591.xlsx

AW: Zellenbezug fest machen
05.10.2024 11:01:24
Oberschlumpf
Hi,

"...wo man sieht was gemeint ist." = falsch! Denn deinen Code sieht man nich...wieso nich?...finde den Fehler!

"...In den Spalten S bis T sind Formeln. Habe jetzt alle nochmal eingefügt, aber ohne fixe Zelladresse..."
Wieso? Genau darum geht es dir doch bei deiner Frage, oder?

Ciao
Thorsten
Anzeige
AW: Zellenbezug fest machen
05.10.2024 11:15:28
Saffi
Hallo Torsten,

es war ja egal ob die Adressen fix $B$25 oder B25 waren. Nach jedem Run war da nur noch #Bezug drin.

Den Code kann ich wenn nur als Schnipsel hier posten.

Die Routine, mit der dann die Tabelle gefüllt wird:

Private Sub CB_Transfer_Click()

'Variablen dimensionieren
Dim tbl As ListObject
Dim lr As ListRow
Dim Zeile As Long

'das richtige Tabellenblatt aktivieren
'ThisWorkbook.Worksheets("Prüfung").Activate
ThisWorkbook.Worksheets("Druckkosten").Activate

'Tabelle einlesen
'Set tbl = Worksheets("Prüfung").ListObjects("Druckkosten")
Set tbl = Worksheets("Druckkosten").ListObjects("Druckkosten4")

'Überprüfen ob Schalter für Tabelle leeren angewählt ist
If tblleeren = True Then

'Tabelle leeren
If Not tbl.DataBodyRange Is Nothing Then tbl.DataBodyRange.Delete

End If

'Schleife über alle Elemente der Listbox
For Zeile = 0 To ListBoxBewegungen.ListCount - 1

'Prüfen, ob Element ausgewählt
If ListBoxBewegungen.Selected(Zeile) = True Then

'Neue Zeile hinzufügen
Set lr = tbl.ListRows.Add

'Zeile befüllen
lr.Range(1, 1).Value = ThisWorkbook.ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row - 3 'ID fortlaufend
lr.Range(1, 2).Value = ListBoxBewegungen.List(Zeile, 8) 'Kommentar / Druckauftrag
lr.Range(1, 3).Value = ListBoxBewegungen.List(Zeile, 5) 'Filament
lr.Range(1, 4).Value = ListBoxBewegungen.List(Zeile, 6) 'Preis aus EKP Filament
lr.Range(1, 5).Value = 1 'ListBoxBewegungen.List(Zeile, 8) Vorerst wird hier Standard 1 gesetzt
lr.Range(1, 6).Value = ListBoxBewegungen.List(Zeile, 9) 'Druckzeit
lr.Range(1, 7).Value = ListBoxBewegungen.List(Zeile, 7) 'Menge in g für den Druck
lr.Range(1, 8).Value = (ListBoxBewegungen.List(Zeile, 7) * ListBoxBewegungen.List(Zeile, 6) / 1000) * 1

End If

Next Zeile

End Sub


Hoffe das hilft soweit.
Anzeige
AW: Zellenbezug fest machen
05.10.2024 11:25:43
Oberschlumpf
Hi,

eigtl hatte ich gehofft, du zeigst alles an notwendigem Code IN einer Datei per Upload.
Allein schon der Hinweis: "nur ein Codeschnipsel" nimmt mir leider die Lust am Weiterhelfen, weil ja genau ein Codeteil davon zu deinem beschriebenen Fehler führen könnte, den du uns - nicht - zeigst.

Aber na gut, ich bin ja nich der einzige Helfer.
Weiter viel Erfolg!

Ciao
Thorsten (mein Vorname wird übrigens mit H geschrieben)
Anzeige
AW: Zellenbezug fest machen
05.10.2024 11:54:51
Saffi
Hallo Thorsten,

sorry. Ich möchte ungern jetzt meine DB mit empfindlichen Daten hochladen.

Weiß nicht wie ich das Makro lauffähig ohne allen anderen Gram hier posten könnte.^^

Generell glaube ich nicht, dass es am Makro selbst liegt. Vielmehr hat Excel ein Problem, das alte Bezüge verändert wurden und nun nicht weis, ob diese weiterhin Bestand auf die Zellen selbst haben.

Aber ok. Ich schau mal was ich machen kann. Danke Dir trotzdem für Deine Mühe.

Gruß Mike
Anzeige
AW: Zellenbezug fest machen
05.10.2024 11:50:51
schauan
Hallöchen,

hast Du mal geschaut, ob der Fehler auch auftritt, wenn Du die Tabelle nicht leerst? Ich tippe auf Nein.
Du kannst in der Tabelle auch mal manuell nur eine Zeile am Anfang löschen und schauen, ob Dein $B$25 immer noch bei 25 steht oder schon bei 24 ...



AW: Zellenbezug fest machen
05.10.2024 12:04:26
Saffi
Ich habe händig gelöscht, dann bleib alles so. Wenn ich aber über Makro Zeilen oder Leeren neu hinzufüge, dann wandert in der rechten Tabelle der Zellbereich nur in den "leeren" Zeilen um die jeweiligen eingfügten Zeilen in der linken Tabelle. Sehr verworren!

Bin am Überlegen, ob ich gleich per Makro Formeln in die linke Tabelle einfüge. Dann kann ich die Berechnungen auch gleich in der einen Tabelle vornehmen.

Anzeige
Eine Möglichkeit ist,...
05.10.2024 12:19:41
Case
Moin, :-)

... statt den Formeln in N:Q, das zu schreiben: ;-)

=Druckkosten4[[ID]:[Preis]]

Der Bereich sollte leer sein, da sich die Formel "ausdehnt". ;-)

Oder sowas für einen Bereich:

=INDEX(Druckkosten4;SEQUENZ(4;1;4);SEQUENZ(1;4))

Oder alles per VBA. Das ist bei "ListObjscts" recht einfach. ;-)

Servus
Case
Anzeige
AW: Zellenbezug fest machen
05.10.2024 12:20:05
schauan
...jupp, das wäre wohl ganz gut. Der Punkt ist eben, dass Du da Zeilen löschst oder einfügst.
Da verschieben sich auch feste Bezüge. Es könnte funktionieren, wenn Du in der Tabelle nur die Inhalte löschst und die Tabelle dann verkürzt.
Beim Einfügen hilft da zuweilen Anfügen am Ende und anschließend sortieren.
Oder Du stellst Bezüge z.B. mit INDEX her. Wenn Du dabei komplette Spalten und für die Zeile nur die Zahl angibst, dann passt es immer, z.B.
=INDEX(A:B; 25; 2)
für B25


Anzeige
AW: Zellenbezug fest machen
05.10.2024 13:44:33
Saffi
Vielen Dank euch beiden. Waren gute Ansätze.

Habe mir jetzt so geholfen, dass ich gleich per Makro in der jeweiligen Zelle die passende Formel einfüge. Irgendwie habe ich zu kompliziert gedacht.
Ihr hattet recht, manche Dinge sind viel einfacher als man es gern möchte.^^

Meine Lösung als Beispiel sieht so aus:

lr.Range(1, 8).Value = "=[@Preis]/1000*[@[in Gramm pro Druck]]*[@Anzahl]"


Mit dieser Formel kann ich dann bei Bedarf meine kurzzeitigen Überschläge gleich in der eignetlichen Tabelle machen, ohne dafür unnötigerweise eine Zweittabelle anzufertigen.

Vielen Dank nochmal an alle für die Inspirationen! Schönes WE
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige