Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
392to396
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
392to396
392to396
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
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
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

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige