Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Blatt kopieren ohne cmd-Button

Forumthread: Blatt kopieren ohne cmd-Button

Blatt kopieren ohne cmd-Button
05.03.2004 09:51:35
Rico
nochmals ne Frage die ich aber separat stellen möchte:
das folgende Makro kopiert mir ein Blatt aus der aktuellen Mappe in eine (noch geschlossene) Mappe und ersetzt die dort vorhandene.

Sub MontagekalenderIntern()
Workbooks.Open FileName:= _
"C:\Dokumente und Einstellungen\RS\Desktop\Montagekalender.xls"
ActiveWindow.WindowState = xlMinimized
Windows("AVOR.xls").Activate
ActiveWindow.WindowState = xlMaximized
Sheets("Montage-Kalender").Select
Sheets("Montage-Kalender").Copy After:=Workbooks("Montagekalender.xls"). _
Sheets(2)
ActiveWindow.SmallScroll Down:=30
Sheets("Montage-Kalender (2)").Select
ActiveWindow.SelectedSheets.Delete
End Sub

Leider kopiert es auch den cmd-Button den ich aus der Formularwekzeugliste mit dem Makro verknüpft habe mit auf das neue Blatt.
Kann ich das mit einem Code ergänzen damit das nicht passiert?
Merci für die sicher hilfreichen Tips
Rico
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Blatt kopieren ohne cmd-Button
05.03.2004 11:02:27
Dieter Klemke
Hallo Rico,
ich schlage folgende Prozedur vor

Sub MontagekalenderIntern_1()
Dim btn As Button
Dim wbA As Workbook ' AVOR.xls
Dim wbM As Workbook ' Montagekalender.xls
Dim wsM As Worksheet
Set wbA = ThisWorkbook
Set wbM = Workbooks.Open(Filename:= _
"C:\Dokumente und Einstellungen\RS\Desktop\Montagekalender.xls")
wbA.Sheets("Montage-Kalender").Copy After:=wbM.Sheets(2)
Set wsM = wbM.ActiveSheet
' Buttons in der Kopie entfernen
For Each btn In wsM.Buttons
btn.Delete
Next btn
End Sub

Das Löschen des kopierten Blattes habe ich weggelassen. Da müsstest du noch mal beschreiben, was du dir da vorstellst.
MfG
Dieter
Anzeige
löschen....
05.03.2004 11:11:56
Rico
Hallo Dieter
also; so wie das Makro jetzt abläuft, wird eine auf dem Desktop gespeicherte Mappe geöffnet und das Blatt aus der aktuellen Mappe wird dort reinkopiert. Das in der "Zielmappe" vorhandene Blatt wird ersetzt, d.h. das neue Blatt ist die aktualisierte Version des bereits vorhandenen Blattes und deshalb soll dieses nach dem Kopiervorgang gelöscht werden.
Ich hoffe, ich konnte das mehr oder weniger verständlich mitteilen :-))
Link zur Beispieldatei: https://www.herber.de/bbs/user/4092.xls

Gruss Rico
Anzeige
AW: löschen....
05.03.2004 12:04:29
Dieter Klemke
Hallo Rico,
dann könnte dein Makro so aussehen:

Sub MontagekalenderIntern_2()
Dim btn As Button
Dim wbA As Workbook ' AVOR.xls
Dim wbM As Workbook ' Montagekalender.xls
Dim ws As Worksheet
Dim wsM As Worksheet
Set wbA = ThisWorkbook
Set wbM = Workbooks.Open(Filename:= _
"C:\Dokumente und Einstellungen\RS\Desktop\Montagekalender.xls")
' ein ev. bereits vorhandenes Blatt "Montage-Kalender"
' in "Montagekalender.xls" löschen
Application.DisplayAlerts = False
For Each ws In wbM.Worksheets
If ws.Name = "Montage-Kalender" Then ws.Delete
Next ws
Application.DisplayAlerts = True
' Neues Blatt "Montage-Kalender" nach
' "Montagekalender.xls" kopieren
wbA.Sheets("Montage-Kalender").Copy After:=wbM.Sheets(2)
Set wsM = wbM.ActiveSheet
' Buttons in der Kopie entfernen
For Each btn In wsM.Buttons
btn.Delete
Next btn
End Sub

MfG
Dieter
Anzeige
laufzeitfehler
05.03.2004 12:51:58
Rico
bekomme ständig nen laufzeitfehler und dann im debugger die meldung, dass er das makro nicht findet obwohl es gleich heisst (hab das andere ersetzt) und im "original-modul" vom anderen makro drin ist .. :-s
AW: laufzeitfehler
05.03.2004 14:31:05
Dieter Klemke
Hallo Rico,
wie rufst du denn das Makro auf? Hast du bei der Ersetzung des alten Makros beachtet, dass mein Makro "MontagekalenderIntern_2" heißt?
MfG
Dieter
Anzeige
Makro ersetzt sich von selbst
08.03.2004 08:00:28
Rico
Wenn ich Deinen Code in das vom Makro erstellte Modul setze (das andere rauslösche..) ändert sich automatisch der Titel des Makros (wenn ich unter "Extras/Makros" nachschauen gehe). Trotzdem bleibt er hängen... ich denke aber, dass er das Makro als solches erkennt, denn er bleibt ja im Makro drin hängen.
Anzeige
AW: Makro ersetzt sich von selbst
08.03.2004 09:53:54
Dieter Klemke
Hallo Rico,
was meinst du mit "in das vom Makro erstellte Modul setze"? Das Makro erstellt kein Modul.
Wenn du dein altes Makro "MontagekalenderIntern" gegen mein Makro austauschst, musst du den Prozedurnamen von "MontagekalenderIntern_2" in "MontagekalenderIntern" ändern, ansonsten ist dem CommandButton in der Tabelle nicht die richtige Prozedur zugeordnet.
MfG
Dieter
Anzeige
Laien-Deutsch :-)
08.03.2004 10:11:15
Rico
ahso.. ja klar.. das Makro selbst erstellt kein Modul, aber indem ich einen cmd-button setze bekomme ich in der VBA-Umgebung ein neues Modul. Und in dem Modul dieses speziellen Buttons sehe ich den Code vom aufgezeichneten Makro. Deshalb dachte ich, ich könnte diesen Code einfach durch Deinen ersetzen (was scheinbar funzt, da ich ja dann den Laufzeitfehler erhalte wenn ich erneut den cmd-button anklicke).
Darf ich Dir sonst evt. die Mappe mal senden damit Du siehst was ich mit "Modul" meine?
Gruss Rico
Anzeige
AW: Laien-Deutsch :-)
08.03.2004 20:27:15
Dieter Klemke
Hallo Rico,
natürlich kannst du mir deine Mappe schicken. Meine eMail findest du unter "Profile".
Wenn du willst, kannst du die Datei auch uploaden.
MfG
Dieter
Anzeige

Infobox / Tutorial

Excel-Blatt kopieren ohne CMD-Button


Schritt-für-Schritt-Anleitung

Um ein Excel-Blatt ohne CMD-Button zu kopieren, kannst du das folgende Makro verwenden. Dieses Makro kopiert das Blatt "Montage-Kalender" in eine andere Datei und entfernt dabei alle CMD-Buttons von dem kopierten Blatt.

  1. Öffne dein Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul ein, indem du auf Einfügen > Modul klickst.

  3. Kopiere den folgenden Code in das Modul:

    Sub MontagekalenderIntern()
       Dim btn As Button
       Dim wbA As Workbook ' AVOR.xls
       Dim wbM As Workbook ' Montagekalender.xls
       Dim wsM As Worksheet
    
       Set wbA = ThisWorkbook
       Set wbM = Workbooks.Open(Filename:= _
           "C:\Dokumente und Einstellungen\RS\Desktop\Montagekalender.xls")
    
       ' Überprüfe und lösche das bestehende Blatt
       Application.DisplayAlerts = False
       On Error Resume Next
       wbM.Sheets("Montage-Kalender").Delete
       On Error GoTo 0
       Application.DisplayAlerts = True
    
       ' Kopiere das Blatt
       wbA.Sheets("Montage-Kalender").Copy After:=wbM.Sheets(2)
       Set wsM = wbM.ActiveSheet
    
       ' Entferne alle Buttons
       For Each btn In wsM.Buttons
           btn.Delete
       Next btn
    End Sub
  4. Schließe den VBA-Editor und speichere deine Datei.

  5. Du kannst das Makro jetzt ausführen, um das Blatt zu kopieren.


Häufige Fehler und Lösungen

  • Laufzeitfehler beim Ausführen des Makros:

    • Überprüfe, ob du den richtigen Namen für das Makro verwendet hast. Der Name muss mit dem in deinem CMD-Button verknüpften Namen übereinstimmen.
  • Das Blatt wird nicht kopiert:

    • Stelle sicher, dass der Pfad zur Zieldatei korrekt ist und die Datei nicht bereits geöffnet ist.
  • CMD-Button wird nicht gelöscht:

    • Achte darauf, dass in dem kopierten Blatt tatsächlich Buttons vorhanden sind. Ansonsten wird der Löschvorgang übersprungen.

Alternative Methoden

Eine einfache Möglichkeit, ein Excel-Blatt in eine andere Datei zu kopieren, besteht darin, die Strg + C und Strg + V Tastenkombinationen zu verwenden. Diese Methode funktioniert jedoch nur, wenn die Zieldatei geöffnet ist und kann zu Verknüpfungen führen, wenn nicht richtig gehandhabt.

Eine weitere Möglichkeit ist, die Funktion "Blatt kopieren" über das Kontextmenü zu verwenden. Rechtsklicke auf das Blatt, wähle „Verschieben oder Kopieren“ und wähle die Zielarbeitsmappe aus.


Praktische Beispiele

Hier ist ein praktisches Beispiel, um das Blatt "Montage-Kalender" aus der Datei "AVOR.xls" in die Datei "Montagekalender.xls" zu kopieren:

  1. Stelle sicher, dass die Datei "Montagekalender.xls" auf deinem Desktop vorhanden ist.
  2. Führe das oben genannte Makro aus, um das Blatt zu kopieren und alle CMD-Buttons zu entfernen.

Tipps für Profis

  • Verwende benutzerdefinierte Tastenkombinationen: Du kannst eine Tastenkombination für dein Makro festlegen, um den Prozess schneller zu machen. Gehe dazu zu Extras > Makros > Makros, wähle dein Makro und klicke auf Optionen, um eine Tastenkombination festzulegen.

  • Vermeide Verknüpfungen: Wenn du ein Excel-Blatt in eine andere Datei kopierst, achte darauf, die Option „Verknüpfungen“ zu deaktivieren, um unerwünschte Referenzen zu vermeiden.


FAQ: Häufige Fragen

1. Kann ich das Blatt auch ohne VBA kopieren? Ja, du kannst das Blatt manuell kopieren, indem du mit der rechten Maustaste auf das Blatt klickst und „Verschieben oder Kopieren“ auswählst.

2. Was mache ich, wenn das Makro nicht funktioniert? Überprüfe die Pfade und die Namen der Blätter. Achte darauf, dass das Blatt existiert und dass du die richtigen Berechtigungen hast, um auf die Datei zuzugreifen.

3. Wie kann ich das Makro optimieren? Du kannst das Makro anpassen, um zusätzliche Funktionen wie das Erstellen von Backups der Originalblätter hinzuzufügen, bevor sie überschrieben werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige