Microsoft Excel

Herbers Excel/VBA-Archiv

Kopieren von Zellbereichen, nur Werte


Betrifft: Kopieren von Zellbereichen, nur Werte
von: Schorsch
Geschrieben am: 04.12.2018 22:25:46

Hallöchen,

vielleicht könnt ihr mir weiterhelfen.

Ich habe zwei Tabellenblätter, dort möchte ich vom einen in das andere Blatt mehrere Zellbereiche kopieren. Es sind in etwa 5 Zellbereiche (bsp. F10:AHK20, F25:AHK30, ...) usw. Diese befinden sich auf Tabellenblatt 1 und sollen in das Tabellenblatt 2. Tabellenblatt 2 ist genauso aufgebaut, nur müssen die jeweiligen Bereiche 4 Spalten zurück eingefügt werden.

Als kleinen Wehrmutstropfen...was wäre, wenn sich auf Tabellenblatt 2 irgendwo in dieser Range zb schon ein Wert befindet. Kann man das dann abfragen, ob man das überspielen möchte... und dann weitermachen?

Für einen brauchbaren Code wäre ich Euch super dankbar.

Schorschi

  

Betrifft: AW: Kopieren von Zellbereichen, nur Werte
von: Schorsch
Geschrieben am: 04.12.2018 22:27:54

Achja, die Formatierungen (und bedingten Formatierungen) im neuen Blatt dürfen nicht überschrieben werden.


  

Betrifft: AW: Kopieren von Zellbereichen, nur Werte
von: Daniel
Geschrieben am: 05.12.2018 00:21:52

Hi
Nur Werte übertragen, dabei bereits ausgefüllte Zellen nicht überschreiben geht so:

dim Zelle as range
for each Zelle in Sheets("das eine Blatt").Range("F10:AHK20,F25:AHK30,...")
    with Sheets("das andere Blatt").Range(Zelle.Address).Offset(0, -4)
        if .Formula = "" Then .Value = Zelle.Value
    end with
Next
Gruß Daniel


  

Betrifft: AW: Kopieren von Zellbereichen, nur Werte
von: Schorsch
Geschrieben am: 05.12.2018 05:49:52

Hey Daniel Danke für deine Formel.

Hast du auch eine Lösung mit Abfrage ? Wie zb... Achtung Kollision in Zelle XY25, möchten Sie den neuen Wert tatsächlich überschreiben oder den alten behalten? Ja/nein?

Geht sowas auch?


  

Betrifft: AW: Kopieren von Zellbereichen, nur Werte
von: Schorsch
Geschrieben am: 05.12.2018 06:15:49

Ach ja, noch etwas ganz wichtiges, was ich vielleicht noch erwähnen sollte. Es dürfen keine Leerzellen kopiert werden. D.h., den Bereich, den ich kopiere, darf nur die Zellen auch auf die neue Tabelle kopieren, die Inhalt haben. Sonst überschreibt es mir ggf. etwas auf der Zielliste bzw löscht andere Einträge .


  

Betrifft: AW: Kopieren von Zellbereichen, nur Werte
von: Andi
Geschrieben am: 05.12.2018 08:15:50

Ich würde es so lösen:

Sub kopieren()
Dim Zelle As Range
  For Each Zelle In Sheets("Tabelle2").Range("Deine Bereiche")
      With Sheets("Tabelle1").Range(Zelle.Address).Offset(0, -4)
      
      If Zelle.Value <> "" Then
        If .Formula <> "" Then
            If .Formula <> Zelle.Value Then
                If MsgBox("Datenkollision! Werte ueberschreiben?", vbYesNo + vbDefaultButton1, " _
Datenkollision bei Übertragung") = vbYes Then .Value = Zelle.Value
            End If
        Else
        .Value = Zelle.Value
        End If
      End If
      End With
  Next
End Sub



  

Betrifft: AW: Kopieren von Zellbereichen, nur Werte
von: Schorsch
Geschrieben am: 05.12.2018 09:04:25

Das stimmt leider nicht... da bekomme ich immer Fehlermeldungen


  

Betrifft: AW: Kopieren von Zellbereichen, nur Werte
von: Piet
Geschrieben am: 05.12.2018 15:03:37

Hallo

schau mal bitte diesen Codeteil, da habe ich einen Fehler entdeckt. Diese Zeile müsste auch Rot sein!
vbDefaultButton1, " _ .. Das " Zeichen gehört hinter den Unterstrich, direkt vor den Text "Datenkollision"! Danach sollte es klappen. Teste es bitte mal.

mfg Piet