Microsoft Excel

Herbers Excel/VBA-Archiv

Kopieradresse mit einer Formel bestimmen

Betrifft: Kopieradresse mit einer Formel bestimmen von: Harry
Geschrieben am: 12.10.2014 22:08:52

Hallo ihr Lieben,
ich habe folgenes Problem..
ich möchte mit einem Macro ein Formelwert in unterschiedlichen Zellen kopieren.
Nach meiner ersten Eingabe ergibt die Zelle A1 einen wert von 48. Diesen Wert möchte ich nun in die Zelle B2 schreiben lassen.Es folgt nun die nächste Eingabe. Der Wert der Zelle A1 ändert sich auf 24. Dieser Wert soll nun in Zelle B3 erscheinen usw..
wer kann dabei helfen?
Gruß harry

  

Betrifft: AW: Kopieradresse mit einer Formel bestimmen von: {Boris}
Geschrieben am: 12.10.2014 22:28:41

Hi Harry,

in das Klassenmodul der entsprechenden Tabelle:

Private Sub Worksheet_Calculate()
Cells(Rows.Count, 2).End(xlUp).Offset(1) = Cells(1, 1)
End Sub
VG, Boris


  

Betrifft: AW: Kopieradresse mit einer Formel bestimmen von: Harry
Geschrieben am: 12.10.2014 22:53:29

hallo Boris,
vielen Dank für deine Antwort, aber ich beschäftige mich erst seit 3 TAgen mit makros.
Was ist den ein klassenmodul?
Hast du für mich ein paar kleinere Schritte?
Wenn ich in Zelle A1 48 eintrage und nach dem aktivieren meines makros die Zahl in Zelle B1 erscheint.Und ich danach 24 in zelle a1 schreibe und dieser wert in Zelle B2 nach auslösen meines makros ercheint bin ich der glücklichste Ahnungsloser dieser welt
Liebe Grüße
Harry


  

Betrifft: Dann sag mal genau... von: {Boris}
Geschrieben am: 12.10.2014 23:22:40

Hi Harry,

...was Du machst:

Ich habe es so verstanden, dass in A1 eine FORMEL steht. Dieses Formelergebnis wiederum ist abhängig von irgendwelchen Eingaben in der Mappe. Und immer dann, wenn es neu berechnet wird, soll der Wert in Spalte B fortlaufend eingetragen werden.

Jetzt schreibst Du aber, dass Du in A1 MANUELL einen Wert (z.B. 48) einträgst. Das ist ein Unterschied.

Also: Was machst Du genau?

VG, Boris


  

Betrifft: Das hat er ja nun teilweise getan, ... von: Luc:-?
Geschrieben am: 13.10.2014 23:50:46

Boris! ;-)
So, Harry;
Boris meint sicher die Ereignisse des TabBlatts, die man dafür nutzen kann. Die Mappe und jedes ihrer Blätter wird im VBEditor angezeigt. Quasi die Rückseiten dieser Blätter sind für VBA sog Dokument-KlassenModule, auf denen man Pgmm, die auf bestimmte ausgelöste Ereignisse reagieren sollen, eintragen kann. Dazu klickt man das gewünschte BlattModul im VBE-VerzeichnisBaum an, wählt dann im VBE-HptFenster (rechts daneben) im Kopf links das relevante Dokument aus und dann im Kopf rechts das gewünschte Ereignis, was in deinem Fall wohl Change wäre. Allerdings ist der VBE übereifrig und legt sofort den ProzedurRahmen für das Standard­Ereignis SelectionChange an. Da beide Ereignisse einen nahezu identischen Rahmen haben, kannst du auch einfach das Selection aus dem angelegten ProzedurNamen entfernen. Die LeerZeile zwischen ProzedurKopf und -Fuß musst du dann nur noch mit einem Pgm oder dem Aufruf eines Pgms füllen, wobei das bzw letzterer gleich vom Parameter Target im ProzedurKopf abhängig gemacht wdn sollte. Der beinhaltet nämlich eine Referenz auf die geänderte Zelle, die ja wohl bei dir immer die Zelle A1 ist. Die Abfrage dieses Kriteriums kann also …
If Intersect(Target, Me.Cells(1, 1)) Is Nothing Then Exit Sub lauten. In der nächsten Zeile kannst du dann deinen PgmAufruf oder ab dieser das Pgm für diesen Fall notieren.
In diesem Pgm hast du nun verschiedene Möglichkeiten, die Werte zu berechnen bzw per Fml berechnete Werte zu fixieren. Das kommt auch darauf an, ob immer mit derselben Fml in derselben Zelle gerechnet wdn soll. Ist das der Fall, muss vor der Eingabe eines neuen Werts noch das vorherige Ergebnis fixiert wdn, sprich in B1 bzw die jeweilige NachfolgeZelle eingetragen wdn. Welches Verfahren dabei gewählt wdn kann, hängt davon ab, ob das pro XlSitzung wieder von vorn anfangen oder stetig fortgesetzt wdn soll.
Wdn die Ergebnisse aber nicht mit einer Fml, sondern mit deinem Makro ermittelt, sollte aus der Ereignisprozedur heraus dein Makro aufgerufen wdn, wobei das auch das flfd Eintragen übernehmen sollte, weil sonst eine GlobalVariable für sein Ergebnis gesetzt wdn müsste, damit die Ereignis­Prozedur das machen kann (oder dein Makro müsste eine FktsProzedur sein).
Da wir aber nichts Näheres über den Ablauf wissen, können wir auch keine FertigLösung liefern. So ist auch Boris' Frage, Was machst Du genau?, zu verstehen.
Aber evtl reicht dir das ja schon… ;-]
Gruß, Luc :-?

Besser informiert mit …


  

Betrifft: OT: Übrigens will ... von: Luc:-?
Geschrieben am: 14.10.2014 01:11:19

…sich da wohl ein gewisser Jemand wohl nun auch noch mit dir anlegen, Boris…!
Deine Aktion war zwar sicher gut gemeint, ich hätte das aber in diesem Zusammenhang nicht getan (der Link war für dich & evtl Interessenten → vgl meine Anmerkungen vor Ort!)…
Gruß, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "Kopieradresse mit einer Formel bestimmen"