HERBERS Excel-Forum - das Archiv
Dateneingabe u. Arbeitsblatt kopieren
Maiks

Hallo Zusammen,
ich werde erst mal mein Problem so ausdrücken:
Dateneingabe mit Übernahme in einer anderen Arbeitsmappe und Tabellensblatt in bestimmten Ordner kopieren.
mit hilfe von Josef Ehrensberger (noch mal dankeschön Sepp) habe ich geschaft über Button-klick:
Daten von bestimmten Zelle eine Excel-Datei in andere Excel-Datei (genannt: Preisliste.xls und mit Pfad: "C:\Artikelliste\Preisliste.xls") zu übertragen. und das funktioniert einwandfrei!!
damit ist das erste Teil meine Problemstellung schon gelöst- nämlich: Dateneingabe mit Übernahme in einer anderen Arbeitsmappe
hier lade ich erstmal dies Makro hoch: https://www.herber.de/bbs/user/52992.xls
meine Problem bleibt jetzt das zweite Teil: und Tabellensblatt in bestimmten Ordner kopieren.
ich möchte nun dies Makro ergänzen: es soll nicht nur dieser Befehl ausführen, auch dabei
das ganze Tabellensblatt ("Kalkulation") und Tabellensblatt ("Machbarkeit") auf C:\ in bestimmte Ordner kopieren mit folgende Bedingungen.
- wenn Zelle D13 von Tabellensblatt ("Kalkulation") ="Vor"; denn Kopieren Tabellensblatt ("Kalkulation") und Tabellensblatt ("Machbarkeit") in Pfad: C:\Artikelliste\Vorkalkulation\Kunde1\Blech.xls
PS: der Ordner Kunde1= text in Zelle B5
die Name der Arbeitsmappe Blech= Text in Zelle B9
diese beide Angabe sollen variable bleiben, weil der Kunde u. Teil Bezeichung sich ändern
- aber wenn Zelle D13 von Tabellensblatt ("Kalkulation") ="Nach"; denn Kopieren Tabellensblatt ("Kalkulation") und Tabellensblatt ("Machbarkeit") in Pfad: C:\Artikelliste\Nachkalkulation\Kunde1\Blech.xls PS: der Ordner Kunde1= text in Zelle B5
die Name der Arbeitsmappe Blech= Text in Zelle B9
diese beide Angabe sollen variable bleiben, weil der Kunde u. Teil Bezeichung ändern
- sollte der Ordner Kunde1 noch nicht vorhanden sein, denn soll ein Fehlermeldung fordern den Ordner zuerst zu erstellen.
Achtung: der Button-Klick in dem Tabellensblatt ("Kalkulation") darf nicht mitkopieren werden
ich habe schon alle probiert, leider kriege ich das nicht hin... für euer hilfe bin ich sehr dankbar.
im voraus danke
Maiks

AW: Dateneingabe u. Arbeitsblatt kopieren
fcs

Hallo Maiks,
hier eine Prozedur zum Kopieren der Blätter. Diese muss du halt am Ende der vorhandenen Prozedur aufrufen.
Gruß
Franz


Sub BlaetterSpeichern()
Dim wksKalk As Worksheet
Dim wbKopie As Workbook
Dim strDateiname As String
Dim strKunde As String
Dim strKalkulation As String
Dim strNameMappe As String
On Error GoTo Fehler
Set wksKalk = Worksheets("Kalkulation")
Const strPfadVorKalk As String = "C:\Artikelliste\Vorkalkulation"
Const strPfadNachKalk As String = "C:\Artikelliste\Nachkalkulation"
strKunde = wksKalk.Range("B5")
strNameMappe = wksKalk.Range("B9") & ".xls"
strKalkulation = wksKalk.Range("D13")
'Prüfen in welchen Ordner kopiert werden soll, ggf. Ordner erstellen
If strKalkulation = "Vor" Then
If Dir(strPfadVorKalk & "\" & strKunde, vbDirectory) = "" Then
VBA.MkDir strPfadVorKalk & "\" & strKunde
End If
strDateiname = strPfadVorKalk & "\" & strKunde & "\" & strNameMappe
ElseIf strKalkulation = "Nach" Then
If Dir(strPfadNachKalk & "\" & strKunde, vbDirectory) = "" Then
VBA.MkDir strPfadNachKalk & "\" & strKunde
End If
strDateiname = strPfadNachKalk & "\" & strKunde & "\" & strNameMappe
Else
MsgBox "Falsche Auswahl in Zelle B13!"
GoTo Beenden
End If
'Blätter kopieren
ThisWorkbook.Sheets(Array("Kalkulation", "Machbarkeit")).Copy
Set wbKopie = ActiveWorkbook
'Schaltfläche löschen
wbKopie.Worksheets("Kalkulation").Shapes("Schaltfläche 1").Delete
'Datei speichern
wbKopie.SaveAs FileName:=strDateiname, addtomru:=True
wbKopie.Close
Beenden:
Fehler:
If Err.Number <> 0 Then
MsgBox "Fehler: " & Err.Number & vbLf & Err.Description & vbLf _
& "in Prozedur BlaetterSpeichern"
End If
Set wksKalk = Nothing
Set wbKopie = Nothing
End Sub


AW: Dateneingabe u. Arbeitsblatt kopieren
Maiks

Hallo fcs,
vielen dank für deine Antwort und deine Mühe.
die einzeln Prozedur funtioniert einwandfrei
aber, da ich der Makro über eine Button-klick ausführen lassen.
möchte ich, dass bei klick.
zuerst die Prozedur
BlaetterSpeichern
und danach
Daten_eintragen
habe ich an etwas so gedacht: und der Makro speichern an Button zuweisen.


Sub speichern()
BlaetterSpeichern
Daten_eintragen
End Sub


leider funktioniert diese kleiner Makro "speichern" nicht, hab Fehlermeldung
kann mir jemand sagen , was in der Prozedur speichern falsch ist?
vielen dank im voraus
Maik

AW: Dateneingabe u. Arbeitsblatt kopieren
fcs

Hallo Maiks,
deine Prozedur DatenEintragen schaltet auch den Blattschutz ein. In deiner Hochgeladenen Datei war der Schutz nicht aktiv. So läuft die Kombination der Makros einmal durch und beim 2. Durchlauf funktioniert das Löschen der Schaltfläche nicht mehr, da das Blatt Kalkulation geschützt ist.
Deswegen muss in der Kopie vor dem Löschen der Schaltfläche der Blattschutz vorübergehend der Blattschutz deaktiviert werden. Passe folgende Zeilen in der Prozedur BlaetterSpeichern an:


'Schaltfläche löschen
With wbKopie.Worksheets("Kalkulation")
.Unprotect
.Shapes("Schaltfläche 1").Delete
.Protect
End With
'Datei speichern

Gruß
Franz

herzlich dank!
Maiks

Hallo Franz,
vielen vielen dank!!
klappt jetzt.
Gruß
Maiks