Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1540to1544
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

leider nochmal Sheet kopieren

leider nochmal Sheet kopieren
25.02.2017 13:28:45
Kurt
Hallo nochmal zusammen,
ich bin auf in der 1. Tabelle, diese sollte einfach kopiert werden.
gruß
kurt k

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
erledigt -)
25.02.2017 13:32:51
Kurt
Hallo,
erledigt, habe aufgezeichnet und verändert, klappt.
ActiveSheet.Copy Before:=Sheets(Sheets.Count)
gruß
kurt k
Nachfrage zum löschen
25.02.2017 13:55:34
Kurt
Hallo,
ich möchte beim löschen die Tabelle1 und die Tabelle "Übersicht" nicht löschen.
Hiermit kommt Fehlermeldung:
Application.DisplayAlerts = False
'ActiveWindow.SelectedSheets.Delete
If Sheets("Tabelle1") Sheets("Übersicht") Then
MsgBox "dürfen nicht gelöscht werden"
Exit Sub
Else
ActiveSheet.Delete
End If
gruß
kurt k
AW: Nachfrage zum löschen
25.02.2017 14:10:30
Daniel
Hi
da musst du mit einer Schleife über die gewählten Blätter laufen und Einzeln den Namen überprüfen:
dim wsh as Worksheet
for each wsh in ActiveWindow.SelectedSheets
Select Case wsh.Name
Case "Tabelle1", "Übersicht"
Case Else
wsh.Delete
End select
Next
Gruß Daniel
Anzeige
AW: Löschen ohne Aktivierung
25.02.2017 14:34:22
Gerd
Hallo Kurt,
was soll der Codeschnipsel? So groß wird deine ganze Prozedur ja nicht sein, dass du sie nicht ganz zeigen könntest.
Sub Entblaettern()
Dim Sh As Object
Application.DisplayAlerts = False
For Each Sh In ThisWorkbook.Sheets
Select Case Sh.namm
Case "Tabelle1", "Übersicht"
Case Else
If ThisWorkbook.Sheets.Count > 1 Then Sh.Delete
End Select
Next
Application.DisplayAlerts = True
End Sub
Gruß Gerd
Danke Gerd und Daniel, aber ...
25.02.2017 16:43:58
Kurt
Hallo Gerd und Daniel,
danke für die Beispiele, leider wird die Tabelle1 in beiden Beispielen, gelöscht, wenn diese
aktiviert habe.
Die Tabelle "Übersicht" nicht !
Die Tabelle1 hat zwar einen Namen z.B."Werksstatt", da die aber immer bleiben
muss.
Public Sub ActiveSheet_löschen()
Application.DisplayAlerts = False
Dim wsh As Worksheet
For Each wsh In ActiveWindow.SelectedSheets
Select Case wsh.Name
Case "Tabelle1", "Übersicht"
Case Else
wsh.Delete
End Select
Next
Application.DisplayAlerts = True
End Sub
Könnte man noch eine MSGBOX Hinweis einbauen, wollen Sie tatsächlich diese Sheet löschen.
gruß
kurt k
Anzeige
AW: Danke Gerd und Daniel, aber ...
25.02.2017 16:57:59
Daniel
HI
Tabellenblätter haben zwei Namen.
einen festen, den Codenamen, diesen kannst du nur über die Eigenschaftsliste änderen (dh in der Regel nur der Programmierer)
und einen variablen Namen, den Indexnamen. Dieser ist variabel, weil er vom Anwender direkt geändert werden kann.
der Codename steht im Projektexplorer vor der Klammer, der Indexname in der Klammer.
In der Eigenschaftsliste steht der Codename immer an erster Stelle, der Indexname steht in der Liste eingereiht.
der Indexname steht auch auf den Reitern in Excel.
wenn du jetzt also den Namen deines Tabellenblatts abfragst und vergleichst, musst du dir schon darüber klar sein, welchen du verwenden willst.
a) den Indexnamen vom Reiter, dann Select Case wsh.Name
b) den Codenamen, dann Select Case wsh.CodeName
der Name muss in jedem Fall im Code korrekt geschrieben sein.
Gruß Daniel
Anzeige
Hab verstanden Daniel aber es klapp
25.02.2017 17:42:09
Kurt
Hallo Daniel,
leider klappt meine Idee nicht.
Public Sub ActiveSheet_löschen()
Application.DisplayAlerts = False
Dim wsh As Worksheet
For Each wsh In ActiveWindow.SelectedSheets
Select Case wsh.Name & wsh.CodeName
Case "Übersicht", "Tabelle1"
Case Else
wsh.Delete
End Select
Next
Application.DisplayAlerts = True
End Sub
gruß
kurt k
AW: Hab verstanden Daniel aber es klapp
25.02.2017 17:49:53
Daniel
Hi
deine Idee ist auch ziemlich bescheuert.
mit & verkettest du die beiden Namen zu einem Text.
du musst dich schon entscheiden, ENTWEDER Indexname ODER Codename, aber nicht beides gleichzeitig.
so wie du das verkettest hast, müsstest du bei Case folgendes hinschreiben (Namen geraten, da ich deine Codenames nicht kenne)
Select Case wsh.Name & wsh.CodeName
Case "ÜbersichtTabelle2", "Tabelle1Tabelle1"

Gruß Daniel
Anzeige
Ich hab eine Lösung !!!!! -
25.02.2017 18:03:41
Kurt
Hallo Daniel,
durch deinen Hinweis mit CodeName, bin ich auf die Idee gekommen es anders
aufzubauen, siehe da es klappt !!!
Bin doch nicht ganz so DUMM,
gruß
kurt k
Hoffentlich 'ne g'scheite, denn man kann ...
25.02.2017 18:50:32
Luc:-?
CodeNames auch ändern, Kurt,
und projektspezifisch festlegen. Tabelle1 etc u.ä. ist nur ein Default-Name, ebenso wie DieseArbeitsmappe und VBAProject. Auf Dateien mit solchen (internen) CodeNames kann man im VBEditor nämlich nicht verweisen und damit deren Prozeduren nicht oW in andere Projekte einbinden!
Gruß, Luc :-?
Besser informiert mit …
Anzeige
.hat zwar einen Namen-bisher nicht !
25.02.2017 17:06:10
robert
..und Änderung von "Tabelle1" auf "Werkstatt" schaffst Du nicht ?
Hallo Robert
25.02.2017 17:43:55
Kurt
Hallo Robert,
aber diese Tabelle Werkstatt wird auch für eine andere Abteilung
gebraucht also wieder ein anderer Name aber immer CODEName Tabelle1.
gruß
kurt k
erledigt -)
25.02.2017 13:50:49
Kurt
Hallo,
erledigt, habe aufgezeichnet und verändert, klappt.
ActiveSheet.Copy Before:=Sheets(Sheets.Count)
gruß
kurt k

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige