Eine Variante wäre, das Ergebnis zu kopieren und per Werte einfügen in 519 einzufügen. Dazu könnte man ein Makro verwenden. Ist dann der Zirkelbezug weg und vor allem, die Ergebnisse stimmen?
Eine andere Variante wäre, die Zirkelbezugzelle oberhalb der 569 in einen Wert zu wandeln. Ich glaube, es ist die 564. Daraufhin erscheint der Zirkelbezug eine Zelle tiefer, die müsste auch noch gewandelt werden.
Man könnte so ein Makro z. B. in ein Ereignismakro packen welches bei jeglicher Änderung in der Datei den Wert überträgt. Kann ich mir aber erst heute Abend anschauen falls es da nicht so warm ist - da fließen die Gedanken eher durch die Kehle als durch die Tastatur
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
mit diesem Code könntest Du den Bereich in Zeile 565 und 566 mit den Werten aus 509 und 540 aktualisieren und der Zirkelbezug ist weg. Ob das allerdings der richtige Ansatz ist kann ich nicht beurteilen. Ich bin da eher skeptisch … Der Code kommt in das Codemodul von DieseArbeitsmappe und wirkt dann bei jeglicher Eingabe in der Datei. Da die Formeln sich auf mehrere unterschiedliche Blätter und Bereiche darin beziehen wäre es recht aufwändig, die Reaktion auf relevante Zellen zu beschränken. Es werden alle 12 Monate des Jahres übergeben.
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Application.EnableEvents = False On Error GoTo errorhandler With Sheets("MCA Start-Up") .Range("AV565:BR565").Value = .Range("AV509:BR509").Value .Range("AV566:BR566").Value = .Range("AV540:BR509").Value End With errorhandler: Application.EnableEvents = True End Sub
Für die Summe aus 569 in 519 wäre das die Lösung. Du kannst aber nur eine von beiden Lösungen verwenden.
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Application.EnableEvents = False On Error GoTo errorhandler With Sheets("MCA Start-Up") .Range("AV519:BR519").Value = .Range("AV569:BR569").Value End With errorhandler: Application.EnableEvents = True End Sub
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
also habe ein Mokro angelegt..... das kann ich (hopefully)
Dann habe ich den zweiten Code (den ich so wie du ihn beschrieben hast gut find) hinkopiert. Code:
Code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) Application.EnableEvents = False On Error GoTo errorhandler With Sheets("MCA Start-Up") .Range("AV519:BR519").Value = .Range("AV569:BR569").Value End With errorhandler: Application.EnableEvents = True End Sub
es handelt sich um ein Ereignismakro, das durch eine Eingabe in einer Zelle ausgelöst wird. Es könnte aber sein, das bei dir die Ereignisse abgeschaltet sind. Gibt mal im Debug-Fenster folgendes ein
Und jetzt setze ich bewusst #45 ab und hole das Popcorn raus …
[Break]
Zitat:Was mach ich falsch
Nur meine persönliche Meinung: Du hast da ein Projekt vererbt bekommen, welches Dich (und uns!) überfordert. Uns eher deshalb, weil niemand in die Tiefen einer (sehr) großen Mappe hinabsteigen mag. Hole Dir professionelle Hilfe und alles wird gut … [/Break]
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
26.06.2019, 20:11 (Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2019, 20:11 von Käpt'n Blaubär.)
Hallo,
Zitat:also habe ein Mokro angelegt..... das kann ich (hopefully)
... ich denke eher, er hat ein allgemeines Modul angelegt und damit liegt der Code dann in der falschen Position. Denn das Makro lautet: Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) und gehört darum hinter das entsprechende Tabellenblatt.
Ich mag mir aber nicht 45 Einzelposts antun, nur um rauszufinden, welches Blatt gemeint sein könnte.
das Makro von Schauan ist um Klassen besser wie mein Beispiel, setzt aber n.E. zuviel VBA Fachwissen voraus. Das ist bei VBA Anfaenger nicht gegeben!! Ich biete mal meine Beispieldatei an. Das sind sog. "Simpel Makros", die man auch als Anfaenger verstehen kann, ohne über Application.EnableEvents Bescheid wissen zu müssen. Ich erklare es für absolute VBA Laien.
Das 1. Makro, Button "Makro direkt", übertraegt den Wert aus der Quell-Zelle direkt in die Ziel-Zelle! OHNE jede Prüfung! Das 2. Makro öffnet eine InputBox wo man die Adresse der Quell- und Zielzelle angeben muss. z.B. AV519, AV569 mit Komma als Trennzeichen! Das neue Makro zerlegt diesen String in Quell- und Zieladresse, springt nacheinander die Quell- und die Zielzelle an, damit man optisch sieht was wohin kopiert wird, und fragt ob beide Adressen stimmen? Wird mit "Ok" bestaetigt erfolgt das Werte übertragen in die Zielzelle. Auf die Art lernt man wie VBA funktioniert.
Das InputBox Makro ist Universal, weil hier jede beliebige Adresse im Blatt angesprochen werden kann.
Ich bekomme das nicht hin, auch mit der echt super Hilfe von euch. Tut mir echt leid, dass ihr euch so viel Mühe gegeben habt und es funktioniert nicht.
26.06.2019, 21:17 (Dieser Beitrag wurde zuletzt bearbeitet: 26.06.2019, 21:18 von schauan.)
Hallöchen,
ich schrieb
Zitat:Der Code kommt in das Codemodul von DieseArbeitsmappe
Wenn Du im VBA-Editor bist siehst Du auf der linken Seite den Projektexplorer. Wenn Du dort Deine Datei aufklickst kommen die Tabellenblätter und zuvor DieseArbeitsmappe. In diesem Codemodul muss der Code rein.
Das Makro wird nicht manuell ausgeführt. Ich schrieb
Zitat:und wirkt dann bei jeglicher Eingabe in der Datei
Du musst nur in irgendeiner beliebigen Zelle der Datei irgendetwas (oder auch nichts) eingeben und die Eingabe mit ENTER abschließen.
Anschließend musst Du die Datei auch als Datei mit Makros speichern (xlsm)
Ich hab Dir das Beispiel von gestern mal angehängt, das Makro ist da auch drin.
@Gast, Du hast eine xlsx geladen und keine xlsm
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Zitat:Ich bekomme das nicht hin, auch mit der echt super Hilfe von euch. Tut mir echt leid, dass ihr euch so viel Mühe gegeben habt und es funktioniert nicht.
Muß wohl profi Hilfe heranschaffen.
Also, ... ich habe oben eine Vermutung geäußert. Warum sehe ich keinerlei Reaktion darauf? Es ist sehr schwer, jemandem zu helfen, der keine weiterführenden Info's preisgibt.