Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
984to988
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
984to988
984to988
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code aus Sheet nach Kopieren löschen

Code aus Sheet nach Kopieren löschen
20.06.2008 12:13:57
Jonathan
Hey,
nach der Prüfung von Änderungen mit Hilfe des Codes von Daniel muss ich das betreffende Tabellenblatt kopieren und umbenennen. Das klappt auch wunderbar, allerdings muss dann noh der vorhandene Code des ursprünglichen Tabellenblattes in der Kopie gelöscht werden.
Hier mal mein Code zum Kopieren:

Sub fertig()
Dim shtName As String
Dim shtNameneu As String
Dim shtAltNr As Integer
Dim objSheet As Object
With Sheets("Cache")
shtNameneu = Sheets("Daten").Range("E1").Value & "-" & .Range("B8").Value & "-" & _
.Range("B9").Value & "-" & .Range("B10").Value & "-" & .Range("B4").Value & "-" & _
.Range("B6").Value & "-" & .Range("B5").Value
End With
For Each objSheet In ThisWorkbook.Sheets
If objSheet.Name = shtNameneu Then
iclick = MsgBox("Es ist bereits eine Arbeit mit gleichen Eckdaten abgespeichert.  _
Haben Sie diese geöffnet und bearbeitet, kann der Datensatz nun überschrieben werden." & Chr(10) & Chr(10) & _
"Möchten Sie den Datensatz nun überschreiben?", 32 + 4, "überschreiben?")
If iclick = vbYes Then
MsgBox "überschreiben"
Application.DisplayAlerts = False
shtAltNr = Sheets(shtNameneu).Index
Sheets(shtNameneu).Delete
MsgBox shtAltNr
With Sheets("Cache")
.Copy after:=Sheets(shtAltNr - 1)
Sheets(shtAltNr).Name = Sheets("Daten").Range("E1").Value & "-" & .Range(" _
B8").Value & _
"-" & .Range("B9").Value & "-" & .Range("B10").Value & "-" & .Range("B4"). _
Value & "-" & _
.Range("B6").Value & "-" & .Range("B5").Value
End With
Application.DisplayAlerts = True
ElseIf iclick = vbNo Then
MsgBox "nicht überschreiben"
End If
End If
Next
End Sub


Hier müsste nach Kopieren nun noch eine Codezeile eingefügt werden, welche im neuen Tabellenblatt (Sheets(shtAltNr)) den Code löscht.
Danke schon mal für Eure Hilfe!
Jonathan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code aus Sheet nach Kopieren löschen
20.06.2008 12:40:51
Chris
Servus Jonathan,
das sollte so gehen:

Sub fertig()
Dim shtName As String
Dim shtNameneu As String
Dim shtAltNr As Integer
Dim objSheet As Object
With Sheets("Cache")
shtNameneu = Sheets("Daten").Range("E1").Value & "-" & .Range("B8").Value & "-" & _
.Range("B9").Value & "-" & .Range("B10").Value & "-" & .Range("B4").Value & "-" & _
.Range("B6").Value & "-" & .Range("B5").Value
End With
For Each objSheet In ThisWorkbook.Sheets
If objSheet.Name = shtNameneu Then
iclick = MsgBox("Es ist bereits eine Arbeit mit gleichen Eckdaten abgespeichert.  _
Haben Sie diese geöffnet und bearbeitet, kann der Datensatz nun überschrieben werden." & Chr(10) & Chr(10) & _
"Möchten Sie den Datensatz nun überschreiben?", 32 + 4, "überschreiben?")
If iclick = vbYes Then
MsgBox "überschreiben"
Application.DisplayAlerts = False
shtAltNr = Sheets(shtNameneu).Index
Sheets(shtNameneu).Delete
MsgBox shtAltNr
With Sheets("Cache")
.Copy after:=Sheets(shtAltNr - 1)
Sheets(shtAltNr).Name = Sheets("Daten").Range("E1").Value & "-" & .Range(" _
B8").Value & _
"-" & .Range("B9").Value & "-" & .Range("B10").Value & "-" & .Range("B4"). _
Value & "-" & _
.Range("B6").Value & "-" & .Range("B5").Value
End With
MsgBox Sheets(shtAltNr).Name
Dim WB As Workbook ' Hier wird der Code gelöscht
Set WB = ActiveWorkbook
With WB.VBProject.VBComponents(Sheets(shtAltNr).CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With ' bis hier
Application.DisplayAlerts = True
ElseIf iclick = vbNo Then
MsgBox "nicht überschreiben"
End If
End If
Next
End Sub


Unter Extras-Makros-Sicherheit-Vertrauenswürdige Herausgeber den Haken bei Zugriff auf VBAProjekt vertrauen setzten.
Gruß
Chris

Anzeige
AW: Code aus Sheet nach Kopieren löschen
20.06.2008 12:44:00
Jonathan
Hey Chris,
das sieht gut aus - vielen Dank für die schnelle Hilfe!
(was würde ein Laie wie ich nur ohne herber.de und die super Hilfe von allen Usern machen?!)

vertrauen VBA Projekt?
20.06.2008 16:43:33
Jonathan
Hallo Chris,
ich finde unter Excel 2007 die Einstellung nicht.

AW: vertrauen VBA Projekt?
22.06.2008 17:04:46
Hajo_Zi
Hallo Jonathan,
- Office Symbol (oben links)
- Excel-Optionen
- Vertrauensstellungscenter
- Einstellungen für das Vertrauensstellungscenter...
- Einstellungen für Makros hier wählen "Alle Makros mit Benachrichtigung deaktivieren"
Hier befindet sich auch der Punkt "Zugriff auf das VBA-Projektmodell vertrauen". Diesen Punkt auswählen falls das VBA Projekt über VBA verändert werden soll.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige