Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Initiale letzte Zeile fixieren
#1
Hallo,

Wie kann ich den Wert der letzten Zeile des gelben Blocks in einer Makro fixieren, damit diese Information über die ganze Sub erhalten bleibt, und die Makro immer weiß, wo der gelbe Block aufhält. Es ist also die initiale letzte Zeile vor dem Ausführen der Makro die die letzte Zeile durch Hinzufügen von Daten (blauer Block) nach unten verschiebt.

Im Beispielblatt werden zuerst die Daten des gelben Blocks in A, B, C eingetragen, dann wird in D eine Formel eingefügt, bis zur letzten Zeile hinuntergezogen und im nächsten Schritt werden die Formeln durch ihre Werte ersetzt.

In einer zweiten Etappe werden die Daten des blauen Blocks eingefügt und um die selbe Formel für den blauen Block einzugeben muß ich wissen wo er anfängt. Ich kann nicht auf die Werte in B,C und D zurückgreifen, da es sein kann, dass die letzte Zeile des gelben Blocks lediglich das Datum enthält.

In der Makro muß ich "Range("D14").Select" ersetzen durch    "Range("D" & [letzte Zeile des gelben Blocks] + 1).Select" ersetzen, und da blicke ich nicht durch wie das geht, weil die Abgrenzung zwischen gelb und blau nicht mehr zu erkennen ist (außer durch die Farbgebung in der Beispieldatei natürlich, aber die dient lediglich zur Illustration).

Ich hatte mir vorgestellt, am Anfang der Sub die letzte belegte gelbe Zeile als Const zu fixieren, aber entweder geht das nicht, oder ich gebrauche Const nicht richtig. Ich wollte den Wert der hinter Const kommt durch eine Instruktion, die die letzte Zeile definiert ersetzen, aber das scheint nicht möglich zu sein.

Ich hoffe, mich irgendwie verständlich ausgedrückt zu haben.

Mit freundlichen Grüßen
Alooha


Angehängte Dateien
.xlsm   Initiale letzte Zeile.xlsm (Größe: 14,04 KB / Downloads: 4)
Antworten Top
#2
Hallo,

schau doch mal hier und versuche, Dich zu erinnern. Wink

Gruß Uwe
Antworten Top
#3
Hallo,

vielen Dank für den Hinweis!

Allerdings ist die Sache jetzt eine andere, auch wenn das nicht ersichtlich wird wenn man beide Beispieldateien vergleicht.

Mein Problem hier ist, dass ich keinen Anhaltspunkt sehe, wie ich den Anfang des blauen Blocks bestimmen kann, wenn alle anderen Spalten schon bis unten aufgefüllt sind und ich die Spalte, in die die Formeln eingesetzt werden sollen, nicht nehmen kann, weil die letzte leere Zelle der Spalte D im gelben Block nicht unbedingt die letzte Zeile des gelben Blocks ist, im Fall wo es keinen Wert in dieser Zelle gibt.

Meine Frage, ganz allgemein formuliert: wie kann ich, am Anfang der Aktion der Makro, die Info welche die erste Zeile ist in der sie aktiv werden muß, fixieren, da sie nachher nicht mehr erkennbar ist?

MfG
Alooha
Antworten Top
#4
Hallo Alooha,

markiere einfach vor Start des Makros die erste blaue Zeile (oder eine Zelle derer).

Code:
Sub aaa()
  Dim lngZeile As Long
 
  lngZeile = ActiveCell.Row
 
 
End Sub

Gruß Uwe
Antworten Top
#5
Hallo,
ich habe inzwischen eine Lösung gefunden, die zu funktionieren scheint.
Entgegen dem was ich zuerst meinte konnte ich mich trotzdem auf die letzte Zelle der Spalte E (ich habe eine Spalte mit Namen hinzugefügt) berufen, um die erste freie Zelle zu ermitteln, da es kein Problem ist wenn die letzte Zelle des vorherigen Blocks leer ist und die Formel "unnötigerweise" eingefüllt wird, da sie in jedem Fall durch ihren Wert ersetzt wird.
MfG
Alooha


Angehängte Dateien
.xlsm   Initiale letzte Zeile.xlsm (Größe: 14,8 KB / Downloads: 0)
Antworten Top
#6
Hallo,

Mein nächstes Problemchen: wenn eine Korrektur in einer Zelle der Daten vorgenommen wird soll die entsprechende Formel in E eingesetzt werden, um neu zu berechnen.
Ich habe folgenden Code gefunden, mit dem eine Aktion ausgelöst werden kann. Was fehlt ist die Information, um welche Zelle es sich handelt, die verändert wurde. Wie komme ich an diese Information?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("A1:B100")) Is Nothing Then

Range("F1").Select
    ActiveCell.FormulaR1C1 = "MODIF"

End If
End Sub
MfG
Alooha
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste