Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Dateneingabe u. Arbeitsblatt kopieren

Betrifft: Dateneingabe u. Arbeitsblatt kopieren von: Maiks
Geschrieben am: 10.06.2008 17:25:48

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

  

Betrifft: AW: Dateneingabe u. Arbeitsblatt kopieren von: fcs
Geschrieben am: 11.06.2008 00:19:18

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




  

Betrifft: AW: Dateneingabe u. Arbeitsblatt kopieren von: Maiks
Geschrieben am: 11.06.2008 10:24:21

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


  

Betrifft: AW: Dateneingabe u. Arbeitsblatt kopieren von: fcs
Geschrieben am: 11.06.2008 11:43:26

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


  

Betrifft: herzlich dank! von: Maiks
Geschrieben am: 11.06.2008 12:13:47


Hallo Franz,

vielen vielen dank!!

klappt jetzt.

Gruß
Maiks


 

Beiträge aus den Excel-Beispielen zum Thema "Dateneingabe u. Arbeitsblatt kopieren"