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

Arbeitsblatt in neues Workbook speichern

Arbeitsblatt in neues Workbook speichern
Bernd
Hallo Excelfreunde,
folgende Problematik
in meinem neuen Projekt werden Daten aus einer Userform in ein neues Arebitsblatt des Workbooks geschrieben. Dieses wird mal gedruckt, bzw. soll auch mal als Mail versandt werden.
Den vorherigen Code lasse ich mal weg, weil das Programm die Daten brav dahin schreibt, wohin sie sollen. Probleme bereitet mir die nachfolgende Aktion.
Dim datop As String, datei As String
'neues Workbook anlegen klappt
Workbooks.Add
Set ziel = ActiveWorkbook.Worksheets(1)
Set quelle = ThisWorkbook.Worksheets("Objektformular")
datop = ActiveWorkbook.Name
'kopieren und einfügen klappt
quelle.UsedRange.Copy ziel.Cells(1, 1)
'Speicher freigeben
Set quelle = Nothing
Set ziel = Nothing
Bis dahin ok.
Jetzt fangen die Probleme an, das neue Workbokk soll nun versandt werden. Aber schon das speichern klappt nicht.
datei = lw + pfad + datop
ActiveWorkbook.SaveAs Filename:=datei
Windows("Objektliste Planer").Activate
Windows(datop).Close
Frage kann ich auch einfacher ein einzelnes Blatt aus einem Workbokk als eigene Datei speichern und über sendmail versenden. Oder wie kann ich das neue Workbook speichern und versenden.
Ich hoffe auf Eure Tipps
Gruß
Bernd
aus Halle

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

Betreff
Benutzer
Anzeige
AW: Arbeitsblatt in neues Workbook speichern
15.02.2010 20:56:51
Ramses
Hallo
"...Den vorherigen Code lasse ich mal weg, ..."
Solltest du aber zeigen. Schliesslich funktioniert ja irgendwas nicht richtig.
"...Aber schon das speichern klappt nicht..."
Tja nun,... wie und wo werden die Variablen denn gefüllt ?
"...datei = lw + pfad + datop..."
Das sind doch Textvariablen,... die kannst du NICHT ADDIEREN (+) sondern müssten allenfalls mit "&" zusammengehängt werden.
Schreib doch in die nächste Zeile einfach mal
msgbox Datei
und schau mal was dann angezeigt wird
Gruss Rainer
AW: Arbeitsblatt in neues Workbook speichern
16.02.2010 07:32:59
Bernd
Erst einmal Danke für Deine Antwort
Hier mal der komplette Code. Übrigens, datei=lw+pfad+datop funtkioniert. In der Msgbox wird geneu der Dateipfad angezeigt den ich haben wollte. Habe ich auch schon öfters ohne Probleme gemacht. das gleiche Ergebnis wie bei der Verknüpfung mit &.
Nochmal das Problem : Ich habe alle relevanten Daten der Userform in das Arbeitsblatt kopiert.
Dieses Arbeitsblatt und nicht das gesamte Workbook soll per Mail versandt werden.
Private Sub cmdmail_Click()
Dim datop As String, datei As String
Application.ScreenUpdating = False
Sheets("Objektformular").Activate
With UFObjekt
Cells(26, 5).Value = .lbnummer
datop = "Objektmeldung" + "-" + .lbnummer.Caption
Cells(26, 3).Value = .Tberfdatum
Cells(27, 3).Value = .Cbart.Value
Cells(7, 2).Value = .Tbobjekttitel.Value
Cells(8, 2).Value = .Tbobjektstrasse.Value
Cells(9, 2).Value = .Tbobjektplz.Value + "-" + .Tbobjektort.Value
Cells(10, 2).Value = .tbbauherr.Value
Cells(11, 2).Value = .Tbhstrasse.Value
Cells(12, 2).Value = .Tbbhplz.Value + "-" + .Tbbhort.Value
Cells(20, 2).Value = .Cbhaendler.Value
Cells(21, 2).Value = .Tbhndstrasse.Value
Cells(22, 2).Value = .Tbhndplz.Value + "-" + .Tbhndort.Value
Cells(17, 2).Value = .Cbunternehmer.Value
Cells(18, 2).Value = .tbuntstrasse.Value
Cells(19, 2).Value = .Tbuntplz.Value + "-" + .Tbuntort.Value
Cells(13, 2).Value = .Carchitekt.Value
Cells(14, 2).Value = .Tbarchstrasse.Value
Cells(15, 2).Value = .Tbarchplz.Value + "-" + .Tbarchort.Value
Cells(16, 2).Value = .Tbarchname.Value
Cells(24, 2).Value = .Cbsystem.Value
Cells(30, 3).Value = .Tbflaechegeplant.Value
Cells(43, 2).Value = .Cbadm.Value
Cells(26, 7).Value = .Tbwvdatum.Value
'Cells(34, 2).Value = .Tbbemerkung.Value
textboxinhalt = .Tbbemerkung.Value
textlaenge = Round(Len(textboxinhalt) + 1)
Tabellenzeile = 34
runden = Round(textlaenge / 60 + 1)
For zaehler = 1 To runden
For zeichen = 1 To textlaenge
buchstabe = Mid(textboxinhalt, zeichen, 1)
If buchstabe = " " And zeichen > 65 Then
Cells(Tabellenzeile, 2).Value = Mid(textboxinhalt, 1, zeichen)
textboxinhalt = Mid(textboxinhalt, zeichen + 1, textlaenge - zeichen)
Tabellenzeile = Tabellenzeile + 1
Exit For
End If
Next
If textlaenge  36 Then Exit For
Next
Cells(38, 2).Value = .Cbstatus.Value
Cells(38, 7).Value = .Tbumsatz.Value
Cells(38, 5).Value = .Tbflaecherealisiert.Value
End With
Workbooks.Add
Set ziel = ActiveWorkbook.Worksheets(1)
Set quelle = ThisWorkbook.Worksheets("Objektformular")
datop = ActiveWorkbook.Name
'kopieren und einfügen
quelle.UsedRange.Copy ziel.Cells(1, 1)
'Speicher freigeben
Set quelle = Nothing
Set ziel = Nothing
datei = lw + pfad + datop
Hier fangen die Probleme an . bei Workbokk save sind beide Varianten möglich. Funtionieren tut  _
keine.
'ActiveWorkbook.SaveAs Filename:=datei
'ActiveWorkbook.SaveAs Filename:=datop
Windows("Objektliste Planer").Activate
Windows(datop).Close
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Arbeitsblatt in neues Workbook speichern
16.02.2010 11:46:51
Ramses
Hallo
"..In der Msgbox wird geneu der Dateipfad angezeigt den ich haben wollte..."
Kann ich fast nicht glauben, weil in deinem Code die Variablen "lw" und "pfad" nicht definiert werden.
Ich kann, und will das, jetzt nicht nachbauen, aber bassierend auf dem Code den du gezeigt hast, muss es eigentlich
datei = lw + pfad + datop & ".xls"
Weil die Dateierweiterung in der Variable
datop = ActiveWorkbook.Nam
nicht ankommt. Mit "Workbooks.Add" erhältst du ja nur eine Datei mit dem Namen "Mappe1" ohne Erweiterung "xls".
Ausserdem solltest du dir zwingend angewöhnen die Variablen sauber zu deklarieren und die Variablen nicht für völlig unterschiedle Dinge zu verwenden:
datop = "Objektmeldung" + "-" + .lbnummer.Caption
datop = ActiveWorkbook.Name
Gruss Rainer
Anzeige
AW: Arbeitsblatt in neues Workbook speichern
17.02.2010 07:45:39
Bernd
Hallo Rainer,
Die Deklaration der Variablen lw und pfad kannst Du nicht finden, da Sie in diesem Projekt als Public Variable deklariert worden.
datop = "Objektmeldung" + "-" + .lbnummer.Caption
datop = ActiveWorkbook.Name
Die beiden Dinge sind beim Herumbasteln entstanden. eigentlich gehört "datop=" nicht darein.Sollte eigentlich umgedreht sein. Wollte dem neuen Workbook einen Namen zu weisen.
Um die Sache zu vereinfachen habe ich eine Datei mit dem eigentlichen Problem unter https://www.herber.de/bbs/user/68055.xls
hochgeladen.
Hier wird mein Kernproblem behandelt.
Das Blatt drei wird in eine seperate Datei exportiert klappt
Datei soll gespeichert werden klappt nicht
Datei soll per sendmail versandt werden Habe ich hier noch nicht drin.
Anschließend wird die neue Datei geschlossen
Anzeige
AW: Arbeitsblatt in neues Workbook speichern
17.02.2010 09:39:13
Ramses
Hallo
wie schon gesagt:
Fehler in der Variablenzuweisung und fehlerhafte Datei- und Laufwerksangabe
Ich habe die Variablen jetzt mal alle deklariert und das läuft auch so wie gewollt
Private Sub CommandButton1_Click()
    Dim FileName As String, tarPath As String
    Dim Quelle As Worksheet, Ziel As Workbook
    FileName = "Testdatei.xls"
    tarPath = "D:\"
    Set Quelle = ThisWorkbook.Worksheets("Meldung")
    Set Ziel = Workbooks.Add
    Quelle.UsedRange.Copy Ziel.Sheets(1).Cells(1, 1)
    'Speicher freigeben
    Ziel.SaveAs FileName:=tarPath & FileName, FileFormat:=xlNormal, _
    Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
    CreateBackup:=False
    Ziel.Close
    Set Quelle = Nothing
    Set Ziel = Nothing
    Windows("export").Activate
End Sub

Gruss Rainer
Anzeige
AW: Arbeitsblatt in neues Workbook speichern
18.02.2010 18:37:56
Bernd
Sorry Rainer,
aber ich war die letzten beiden Tage viel Unterwegs. Es war tatsächlich die Variablen Deklaration. In meinem Beispiel hatte ich auch noch den Backslash als Slash gesetzt. gestern im Hotel hatte ich auch schon der Sache weiter herumgebastelt und es zum Laufen bekommen. Trotzdem ist mein Code etwas umständlicher gewesen, so war ich schnell bereit Deine Variante zu übernehmen.
Danke Nochmals
Grüße aus Halle/Saale
Bernd

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige