Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1072to1076
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

Falsche Makro Zuweisung eines Buttons nach .Move

Falsche Makro Zuweisung eines Buttons nach .Move
09.05.2009 12:10:31
Jeziro
Hallo,
Ich komm einfach nicht weiter. Ich hab folgendes Problem. Ich möchte gerne ein einzelnes Tabellenblatt als Anhang für eine Mail versenden. Hierz habe ich ein Makro geschrieben, welches ich über einen Button (Formularsteuerelement) aufrufe.
Das Makro erzeugt hierzu ein neues Tabellenblatt, kopiert die gewünschten Daten hinein und verschiebt es mit der Funktion .Move in eine neue Excel-Datei. Diese Datei wird nun gespeichert und geschlossen.
Nun mein Problem: In der Originaldatei, in welcher ich das Makro aufrufe, ist nun die Makrozuweisung des Buttons verändert worden. Hier findet sich nun ein Verweis zur zuvor gespeicherten Datei. Dies gilt übrigens für alle Buttons im gesamten Workbook. Wie ist das möglich? Der Fehler tritt nach verwenden der Methode .Move auf.
Für Hilfe wäre ich dankbar.
Hier der Code
Option Explicit
Option Private Module

Sub Blatt_speichern()
Dim wks1 As Worksheet
Dim pfad As String
Dim dateiname As String
Set wks1 = ThisWorkbook.Sheets("Infos")
pfad = ThisWorkbook.Path
dateiname = "\info.xlsx"
Sheets.Add.Name = "Mail"
wks1.Range("A1:A3").Copy
ThisWorkbook.Sheets("Mail").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:= _
xlNone, SkipBlanks _
:=False, Transpose:=False
ThisWorkbook.Sheets("Mail").Move
ActiveWorkbook.SaveAs Filename:=pfad & dateiname _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
ActiveWorkbook.Close
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Steuerelementbuttons
09.05.2009 12:18:19
Daniel
Hi
was hast du denn für Buttons?
Steuerelemente oder Formularfelder?
wo steht der Code zum Button und wie wird der dem Button zugewiesen?
vermutlich verwendest du Formularfelder und der Code steht im allgemeinen Modul.
in deinem Fall solltest du lieber Steuerelement-Buttons verwenden, deren Code im Modul des Tabellenblatts liegt.
beim Verschieben mit MOVE wird dieser Code mitverschoben, der Code im allgemeinen Modul nicht.
Gruß, Daniel
AW: Copy statt Move ? o.T.
09.05.2009 12:24:25
Gerd
Gruß Gerd
AW: Steuerelementbuttons
09.05.2009 13:10:24
Jeziro
Hi Daniel,
Bei dem Button handelt es sich um ein Formularsteuerelement (s.o.), welchem ich über die rechte Maustaste ein Makro aus dem allgemeinem Makro Modul zuweise.
Das Problem liegt ja auch gar nicht darin, dass der Code verschoben wird. Das Problem liegt darin, dass die Zuweisung, welche ich mit der rechten Maustaste vorgenommen habe, abgeändert wird. Das gespeicherte Blatt enthält ja gar keinen Code (xlsx-Datei).
Ich geb dir mal ein Link zu einer Beispieldatei. (https://www.herber.de/bbs/user/61701.xlsm). Bei der Verwendung solltest Du dir die Zuweisung vor und nach dem Makrodurchlauf ansehen.
Gruß
Jens
Anzeige
AW: Steuerelementbuttons
09.05.2009 13:52:12
Tino
Hallo,
versuche es mal so.

Sub Blatt_speichern()
Dim myWB As Worksheet
Dim pfad As String
Dim dateiname As String
pfad = ThisWorkbook.Path
dateiname = "\info.xlsx"
ThisWorkbook.Worksheets("Infos").Copy
With ActiveWorkbook
.Sheets(1).Name = "Mail"
.Sheets("Mail").Shapes("Schaltfläche 1").Delete
.SaveAs Filename:=pfad & dateiname _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
.Close
End With
End Sub


Gruß Tino

AW: Steuerelementbuttons
09.05.2009 13:54:16
Tino
Hallo,
die Zeile
Dim myWB As Worksheet
kannst Du löschen, wird nicht gebraucht.
Gruß Tino
Anzeige
AW: Steuerelementbuttons
09.05.2009 14:14:03
Jeziro
Hallo Tino,
Danke für deinen Beitrag. Mit Hilfe der Copy Methode funktioniert es tatsächlich. Komisch, dass man mit Move nicht zum Ziel kommt, denn dann hätte ich mir eine Delete Methode gespart. Da ich noch viele weitere Buttons im Dokument habe und nicht jedes einzelne herauslöschen möchte, habe ich deine Idee folgendermaßen abgeändert.

Sub Blatt_speichern()
Dim wks1 As Worksheet
Dim pfad As String
Dim dateiname As String
Set wks1 = ThisWorkbook.Sheets("Infos")
pfad = ThisWorkbook.Path
dateiname = "\info.xlsx"
Sheets.Add.Name = "Mail"
wks1.Range("A1:A3").Copy
Application.DisplayAlerts = False
With ThisWorkbook.Sheets("Mail")
.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
.Copy
.Delete
End With
With ActiveWorkbook
.SaveAs Filename:=pfad & dateiname _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
.Close
End With
Application.DisplayAlerts = True
End Sub


So funktioniert es.
Gruß
Jens

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige