Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Werte eines Bereichs in anderen Bereich schreiben | Herbers Excel-Forum


Betrifft: Werte eines Bereichs in anderen Bereich schreiben von: Sascha
Geschrieben am: 11.01.2012 15:02:19

Hallo Experten,

Ich habe eine Frage betreffend Spalten automatisch duplizieren.

Wie kann ich diesen Code:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Range("B1") = Range("A1")
   Range("B2") = Range("A2")
   Range("B3") = Range("A3")
End Sub
ändern, so es den Bereich A1:A31 jeweils automatisch in den Bereich B1:B31 dupliziert?

LG Sascha

  

Betrifft: AW: Werte eines Bereichs in anderen Bereich schreiben von: Rudi Maintaire
Geschrieben am: 11.01.2012 15:14:33

Hallo,
wenn du das per selection_Change machst, passiert das jedesmal, wenn du auf eine andere Zelle gehst. Willst du das?

Range("B1:B31")=Range("A1:A31")

Gruß
Rudi


  

Betrifft: AW: Werte eines Bereichs in anderen Bereich schreiben von: Sascha
Geschrieben am: 11.01.2012 15:28:41

Hallo Rudi,

Nein eigentlich nicht.
Ich habe im Bereich AZ3:AZ33 Werte stehen die sich immer verändern.

Nun möchte ich dass es sobald ein Wert ändert, diesen automatisch auch noch in den Bereich C3:C33 schreibt.


  

Betrifft: AW: Werte eines Bereichs in anderen Bereich schreiben von: Rudi Maintaire
Geschrieben am: 11.01.2012 15:50:19

Hallo,
Werte stehen die sich immer verändern.
Wodurch? Eingabe oder Berechnung?
Eingabe:

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("AZ3:AZ33")) Is Nothing Then
    On Error GoTo ErrHandler
    Application.EnableEvents = False
    Range("C3:C33").Value = Range("AZ3:AZ33").Value
  End If
ErrHandler:
    Application.EnableEvents = True
End Sub

Gruß
Rudi


  

Betrifft: AW: Werte eines Bereichs in anderen Bereich schreiben von: Sascha
Geschrieben am: 11.01.2012 15:56:53

Hi Rudi, Demnach durch Berechnung...

Denn im Bereich AZ3:AZ33 sind Formeln enthalten, die die Summe berechnen. Diese Werte sollte es in C3:C33 auch eintragen

Gruss Sascha


  

Betrifft: AW: Werte eines Bereichs in anderen Bereich schreiben von: Sascha
Geschrieben am: 11.01.2012 16:32:02

Hallo Rudi, wollte noch fragen ob es überhaupt möglich ist, wenn bereits eine formel in den zellen steht ohne diese zu verändern oder zu löschen?

dein code funktioniert tiptop, aber nur wenn ich den zellwert eingebe...

so wie ichs habe sollte es aber den bereits berechneten wert übernehmen.

danke und gruss
sascha


  

Betrifft: AW: Werte eines Bereichs in anderen Bereich schreiben von: Sascha
Geschrieben am: 11.01.2012 23:01:32

Hallo Rudi,
Es funktioniert einfach nicht... kannst du mir helfen?

Habe es noch so probiert:

Private Sub Worksheet_Calculate()
With Range("AZ3:BC33")
   Range("C3:C33").Value = Range("AZ3:AZ33").Value
   Range("E3:E33").Value = Range("BA3:BA33").Value
   Range("D3:D33").Value = Range("BB3:BB33").Value
   Range("F3:F33").Value = Range("BC3:BC33").Value
End With
End Sub
aber dann stürzt excel einfach ab... :-(


  

Betrifft: AW: Werte eines Bereichs in anderen Bereich schreiben von: Sascha
Geschrieben am: 12.01.2012 15:40:09

Hallo Rudi,

Hast Du mir noch eine andere Lösung anstatt der Eingabe für die Berechnung?

Gruss Sascha


  

Betrifft: AW: Werte eines Bereichs in anderen Bereich schreiben von: fcs
Geschrieben am: 12.01.2012 21:30:08

Hallo Sascha,

die Prozedur
Private Sub Worksheet_Calculate()

führt bei dir wahrscheinlich in eine Endlosschleife, weil das Übertragen der Daten per Makro erneut eine Neuberechnung im Tabellenblatt auslöst, usw. usw. Das endet dann im Excel-Absturz.

Irgendwo in der Arbeitsmappe müssen doch die Werte eingegeben werden, die zu einer Neuberechnung der Werte in den Zellen mit den Formel führen.
Diese Zellen müssen mit Worksheet_Change-Prozeduren überwacht werden und ggf. den Kopiervorgang auslösen. Alles andere wird kaum zu einem sinnvollen Ergebnis führen.


Damit es nicht zu endlosen wiederholten Aufrufen der Ereignisprozeduren kommt kann man diese am Beginn einer Prozedur auch deaktivieren
Application.EnableEvents = False

und am Ende wieder aktivieren
Application.EnableEvents = True

Dies macht aber kaum einen Sinn im Zusammenhang mit dem Calculate-Ereignis.

Gruß
Franz


Beiträge aus den Excel-Beispielen zum Thema "Werte eines Bereichs in anderen Bereich schreiben"