Microsoft Excel

Herbers Excel/VBA-Archiv

Werte in Zellen überschreiben | Herbers Excel-Forum


Betrifft: Werte in Zellen überschreiben von: Friedhelm
Geschrieben am: 16.11.2009 20:51:30

Hallo,

möchte gerne Werte im Bereich D20:F23 eingeben. Wenn in einer dieser Zellen ein Wert vorhanden ist,
so soll dieser in den Bereich A1:C23 eingetragen werden. Wenn kein Wert im Bereich D20:F23 vorhanden ist
möchte ich im Bereich A1:C23 Werte eingeben können ohne das diese mit Null-Werten überschrieben wird.

Bin mal angefangen was aber nicht funktioniert. Wenn ich eine Zelle abfrage funktioniert es muß nur noch die Bedingung wert vorhanden eingefügt werden.

Kann man überhaupt ganze Bereiche abfragen oder muß ich dieses für jede Zelle machen.
Es soll ja auch so sein das die Werte sofort übertragen werden sobald sich etwas ändert und es muß bei einem geschützten Tabellenblatt funktionieren

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
     Application.EnableEvents = False
     [A1:C3] = [D20:F23]
     Application.EnableEvents = True
End Sub

Gruß Friedhelm

  

Betrifft: AW: Werte in Zellen überschreiben von: fcs
Geschrieben am: 17.11.2009 00:40:54

Hallo Friedhelm,

mit folgedender Anpassung sollte es funktionieren.
Vor dem aktivieren des Blattschutzes muss du für den Bereiche D20:F23 unter Zellformat--Schutz die Sperrung der Zellen deaktivieren.

Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Range("D20:F23")) Is Nothing Then
     Application.EnableEvents = False
     Me.Unprotect
     [A1:C3].Value = [D20:F23].Value
     If Application.WorksheetFunction.CountA(Me.Range("D20:F23")) = 0 Then
        Me.Range("A1:C3").Locked = False
     Else
        Me.Range("A1:C3").Locked = True
     End If
     Me.Protect
     Application.EnableEvents = True
  End If
End Sub



  

Betrifft: AW: Werte in Zellen überschreiben von: Friedhelm
Geschrieben am: 17.11.2009 20:51:51

Hallo Franz,

so richtig klappt es noch nicht.
Ich denke aber das ich mich auch nicht richtig ausgedrückt habe.

Also die Werte im Bereich D20:F23 kommen aus einem anderen Arbeitsblatt. Wenn nun in diesem Bereich Daten vorhanden sind sollen diese im Bereich A1:C3 angezeigt werden. Wenn keine Werte vorhanden sind möchte ich selber Werte in A1:C3 eintragen können. Dieses soll aber für jede Zelle einzeln gelten.

Kann ich dieses überhaupt mit einem Zellenbereich machen oder muß ich dieses für jede Zelle einzelnd machen?

Gruß, Friedhelm


  

Betrifft: AW: Werte in Zellen überschreiben von: fcs
Geschrieben am: 17.11.2009 23:25:47

Hallo Friedhelm,

ich hab nochmals nach den neuen Infos die Prozeduren angepasst.

Hier eine Beispieldatei.
https://www.herber.de/bbs/user/65991.xls

Gruß
Franz


  

Betrifft: AW: Werte in Zellen überschreiben von: Friedhelm
Geschrieben am: 18.11.2009 06:30:39

Hallo Franz,

soweit ist es ok.
Nur sollen die Werte in den einzelnen Zellen der Tabelle1 Bereich A1:C4 nur geändert werden wenn sich die Werte der einzelnen Zelle im Bereich D20:F23 auch ändert. Wenn Zelle D20 sich ändert soll dieser Wert in A1 angezeigt werden, wenn sich der Wert nicht ändert soll der Wert drin stehen bleiben der angezeigt wird.

Gruß Friedhelm


  

Betrifft: AW: Werte in Zellen überschreiben von: Friedhelm
Geschrieben am: 18.11.2009 06:32:36

https://www.herber.de/bbs/user/65995.xls


  

Betrifft: AW: Werte in Zellen überschreiben von: fcs
Geschrieben am: 18.11.2009 11:50:29

Hallo Friedhelm,

ich denke mal so passt es jetzt.
Da du ja eigenlich die Änderungen im Tabellenblatt 2 verfolgst, hab ich die Ereignisprozeduren entsprechend angepasst und eingefügt. Die unter dem Tabellenblatt1 eingefügten Prozeduren sind nur kleine Rückversicherungen.

Gruß
Franz
https://www.herber.de/bbs/user/66009.xls


Beiträge aus den Excel-Beispielen zum Thema "Werte in Zellen überschreiben"