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

kopieren-speicher-ablegen

kopieren-speicher-ablegen
Fatih
Hallo,
mit dem unten stehenden Code soll eine einzige Tabelle kopiert und auf dem Desktop abgespeichert werden.
Nur das Problem ist, einmal funktioniert es und einmal funktioniert es nicht.
Bekomme immer die Meldung : Laufzeitfehler 1004
die copy-methode des worksheet-objektes konnte nicht ausgeführt werden
was kann ich denn da machen? habt ihr vielleicht eine idee?
Vielen Dank im Voraus
lg fatih
Sub Bild8_BeiKlick()
Application.ScreenUpdating = True
Dim strToReceiver As String
Dim strSubject As String
Dim strBody As String
Dim wbMail As Workbook, strAttachment As String, strPfad As String
'Blatt Daten kopieren und als Datei speichern
With ActiveWorkbook
strPfad = .Path
.Worksheets("Daten").Copy 'HIER BLEIBT ER IMMER HÄNGEN
End With
Set wbMail = ActiveWorkbook
With wbMail
'Dokumenteigenschaften setzen
.BuiltinDocumentProperties("Title") = "Blatt Daten, Stand: " & Date
.BuiltinDocumentProperties("Subject") = "Helvetia Action Tracking"
'Dokument im Excel 2003-Format speichern
.SaveAs Filename:=strPfad & Application.PathSeparator _
& "ActionTrackingTabelle " & Format(Date, "YYYY-MM-DD"), FileFormat:=xlExcel7
strAttachment = .FullName
.Close
End With
'Mailprogramm aufrufen
strToReceiver = "vpmonitoring@helvetia.at"
strSubject = "Helvetia Action Tracking"
Call ShellExecute(0&, "Open", "mailto:" & strToReceiver _
& "?Subject=" & strSubject, "", "", 1)
Call ShellExecute(0&, "Open", "mailto:" & strToReceiver _
& "?Subject=" & strSubject & "?Attachment=" & strAttachment, "", "", 1)
Application.ScreenUpdating = False

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

Betreff
Benutzer
Anzeige
AW: kopieren-speicher-ablegen
06.04.2010 16:50:29
Ramses
Hallo
"..Nur das Problem ist, einmal funktioniert es und einmal funktioniert es nicht. .."
Toll :-) Da kann man alles probieren.
Da sich die "With" - Anweisung auf das "ActiveWorkbook" bezieht,... vermute ich mal, dass "ActiveWorkbook" bei Ausführung des Makros nicht immer das Workbook ist, das du meinst. Soll heissen, die Tabelle ist in diesem Workbook nicht vorhanden.
Prüf doch einfach ob das richtige Workbook beim Start auch wirklich das AKTIVE ist und nicht eine andere Mappe.
Gruss Rainer
AW: kopieren-speicher-ablegen
06.04.2010 17:05:58
Fatih
Hallo Rainer,
also die Tabelle ist schon vorhanden, nur sie ist versteckt mit (xlSheetVeryHidden).
Ist das der Grund vielleicht? wenn ja, wie kann ich das ändern?
lg
fatih
Anzeige
AW: kopieren-speicher-ablegen
06.04.2010 17:09:38
Ramses
Hallo
"...Ist das der Grund vielleicht?..."
Aber sicher,... nur warum ist sie mal sichtbar und mal nicht ?
"...wenn ja, wie kann ich das ändern?..:"
Na einfach einblenden vor dem kopieren und nach dem kopieren wieder unsichtbar machen
Gruss Rainer
AW: kopieren-speicher-ablegen
06.04.2010 17:15:41
Fatih
Hi Rainer,
also die Tabelle soll sie immer versteckt bleiben.
Diese wird mittels Formular befüllt aber nicht von mir sondern von anderen Mitarbeitern.
Muss ich im Code was umändern damit die Tabelle immer versteckt bleibt.?
Danke nochmals für deine Antwort
lg
fatih
Blatt vorübergehend ausblenden
06.04.2010 18:48:17
Erich
Hi Fatih,
Rainer hat dir eigentlich schon geschrieben, wie du das hinbekommen kannst.
Hier noch ein Schmankerl mehr: In visS merkt man sich die "Visibility" des Blatts, dann wird es eingeblendet
und nach dem Copy (in der Quellmappe) wieder in den Vor-Zustand gebracht.
In der durch Copy entstehenden neuen Mappe ist das Blatt sichtbar.
Der aktuelle Benutzer sieht es aber wegen des "Application.ScreenUpdating = False" trotzdem _ nicht:

Sub Bild8_BeiKlick()
Dim strToReceiver As String
Dim strSubject As String
Dim strBody As String
Dim strAttachment As String, strPfad As String
Dim visS As XlSheetVisibility
Application.ScreenUpdating = False ' ##### NICHT True
'Blatt Daten kopieren und als Datei speichern
With ActiveWorkbook
strPfad = .Path
With .Worksheets("Daten")
visS = .Visible
.Visible = xlSheetVisible
.Copy 'HIER BLEIBT ER IMMER HÄNGEN
.Visible = visS
End With
End With
' durch das Copy entstand ein neues ActiveWorkbook
With ActiveWorkbook
'Dokumenteigenschaften setzen
.BuiltinDocumentProperties("Title") = "Blatt Daten, Stand: " & Date
.BuiltinDocumentProperties("Subject") = "Helvetia Action Tracking"
'Dokument im Excel 2003-Format speichern
.SaveAs Filename:=strPfad & Application.PathSeparator _
& "ActionTrackingTabelle " & Format(Date, "YYYY-MM-DD"), FileFormat:=xlExcel7
strAttachment = .FullName
.Close
End With
'Mailprogramm aufrufen
strToReceiver = "vpmonitoring@helvetia.at"
strSubject = "Helvetia Action Tracking"
Call ShellExecute(0&, "Open", "mailto:" & strToReceiver _
& "?Subject=" & strSubject, "", "", 1)
Call ShellExecute(0&, "Open", "mailto:" & strToReceiver _
& "?Subject=" & strSubject & "?Attachment=" & strAttachment, "", "", 1)
Application.ScreenUpdating = True ' ##### NICHT False
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Blatt vorübergehend ausblenden
07.04.2010 12:23:21
Fatih
Hallo Erich,
vielen Dank für dein Tipp, jetzt hab ich nur noch eine kurze Frage.
Beim Ausführen der Prozedur soll diese Tabelle auf den Desktop des Benutzers abgelegt werden.
Habe im google ein bisschen gesucht und habe das hier gefunden
Environ("Userprofile") & "\Desktop"
in welcher zeile muss ich diese denn ersetzen.
Lg
fatih
Verzeichnis ändern
07.04.2010 12:32:12
Erich
Hi Fatih,
dazu brauchst du wohl nur die Zeile
strPfad = .Path
zu ersetzen durch
strPfad = Environ("Userprofile") & "\Desktop"
Mal ne Frage:
Ich dachte, der User soll die Tabelle nicht sehen...? Jetzt ist sie überhaupt nicht mehr versteckt.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Verzeichnis ändern
07.04.2010 12:49:28
Fatih
Hallo Erich,
also die Datei ist jetzt versteckt, habs genauso gemacht wie du es beschrieben hast.
Ich wollte die Datei deswegen verstecken weil, wenn ich jetzt auf dem formular die Daten eingebe und auf "übertragen" klicke schreibt er die daten automatsch in die Tabelle aber danach kann man die Tabelle im Hintergrund immer sehen und das schaut halt irgendwie nicht schön aus.
Ich kann dir die Datei mal zukommen lassen, wenn es für dich ok ist. Dann kannst du es sehen was ich damit meine.
lg fatih
Danke - alles klar - und zu (owT)
07.04.2010 13:37:54
Erich
(owT) = ohne weiteren Text

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige