Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1692to1696
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Werte kopieren per VBA

Werte kopieren per VBA
28.05.2019 09:45:13
Markus
Hallo Expertenteam.
Ich möchte gerne in einer geschützten Arbeitsmappe ein spezielles Registerblatt kopieren und am Ende einfügen, den Blattschutz aufheben lassen und die Werte einfügen. Ansätze hierfür habe ich gefunden, benötige aber Modifikationen und somit eure Hilfe:
1.) Der Blattschutz muss aufgehoben werden
2.) Es soll lediglich ein bestimmtes Register wertkopiert werden und nicht nach allen gefragt werden.
Ansonsten ist das eigentlich super:
Sub Wertkopie_DBR_DBS_TM1()
Dim Z, Bl
Dim Alle
Calculate
Alle = MsgBox("Sollen alle Blätter wertkopiert werden?", vbYesNo, "TM1 -Wertkopie")
If Alle = vbYes Then
For Each Bl In Sheets
Call DBR(Bl)
Next
Else
Set Bl = ActiveSheet
Call DBR(Bl)
End If
Calculate
MsgBox ("Alle Funktionen wurden wertkopiert")
End Sub
Private Sub DBR(Bl)
Dim Z
On Error Resume Next
For Each Z In Bl.Cells.SpecialCells(xlCellTypeFormulas)
Select Case Left(Z.Formula, 4)
Case "=DBR", "=DBS", "=SUB", "=VIE", "=DIM"
Z.Value = Z.Value
End Select
Next Z
End Sub

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte kopieren per VBA
28.05.2019 10:58:45
Werner
Hallo Markus,
1. es wird geprüft, ob es ein Blatt mit dem Namen "Kopie" gibt
2. wenn ja, dann werden die Zellen im Blatt "Kopie" geleert
3. wenn nein, wird am Ende ein Blatt mit dem Namen "Kopie" angelegt
4. die Daten aus "Tabelle1" werden kopiert und im Blatt "Kopie" als Werte eingefügt
Public Sub Blatt_Werte_kopieren()
Dim wsTest As Worksheet
Application.ScreenUpdating = False
On Error Resume Next
Set wsTest = Worksheets("Kopie")
On Error GoTo 0
If wsTest Is Nothing Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Kopie"
'Blattname anpassen
Worksheets("Tabelle1").Cells.Copy
Worksheets("Kopie").Cells.PasteSpecial Paste:=xlPasteValues
Else
'Blattname anpassen
Worksheets("Kopie").Cells.Clear
Worksheets("Tabelle1").Cells.Copy
Worksheets("Kopie").Cells.PasteSpecial Paste:=xlPasteValues
End If
Application.CutCopyMode = False
Set wsTest = Nothing
End Sub
Gruß Werner
Anzeige
AW: Werte kopieren per VBA
28.05.2019 11:20:29
Markus
Das ist auch nicht schlecht. Danke erst einmal. Aber es sollten möglichst alle Formate auch übernommen werden und die MsgBox zu Beginn/Ende wäre halt schon super.
AW: Werte kopieren per VBA
28.05.2019 12:37:29
Werner
Hallo Markus,
so:
Public Sub Blatt_Werte_kopieren()
Dim wsTest As Worksheet, boKopiert As Boolean
Application.ScreenUpdating = False
If MsgBox("Soll Tabelle1 kopiert werden?", vbYesNo, "Tabellenblatt kopieren") _
= vbYes Then
On Error Resume Next
Set wsTest = Worksheets("Kopie")
On Error GoTo 0
If wsTest Is Nothing Then
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "Kopie"
'Blattname anpassen
Worksheets("Tabelle1").Cells.Copy
Worksheets("Kopie").Cells.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Worksheets("Kopie").Cells.PasteSpecial Paste:=xlPasteFormats
boKopiert = True
Else
'Blattname anpassen
Worksheets("Kopie").Cells.Clear
Worksheets("Tabelle1").Cells.Copy
Worksheets("Kopie").Cells.PasteSpecial Paste:=xlPasteValuesAndNumberFormats
Worksheets("Kopie").Cells.PasteSpecial Paste:=xlPasteFormats
boKopiert = True
End If
Application.CutCopyMode = False
End If
If boKopiert Then
MsgBox "Alle Funktionen wurden wertkopiert."
End If
Set wsTest = Nothing
End Sub
Gruß Werner
Anzeige
AW: Werte kopieren per VBA
28.05.2019 13:02:55
Markus
Klasse! Danke!
Gerne u. Danke für die Rückmeldung. o.w.T.
28.05.2019 13:21:25
Werner

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige