Office: aus Tabellenblatt in neues Tabellenblatt kopieren

Helfe beim Thema aus Tabellenblatt in neues Tabellenblatt kopieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo liebes Forum, ich benötige einmal wieder die geballte Kompetenz hier. Problem: ich habe ein Tabellenblatt "Gas_2017" und möchte dies über einen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von eneg79, 26. August 2017.

  1. aus Tabellenblatt in neues Tabellenblatt kopieren


    Hallo liebes Forum,

    ich benötige einmal wieder die geballte Kompetenz hier.

    Problem:
    ich habe ein Tabellenblatt "Gas_2017" und möchte dies über einen Command-Button kopieren und in "Gas_2018" umbenennen. Dann soll im neuen Tabellenblatt "Gas_2018" der Bereich B10-B22 gelöscht werden.
    Das bekomme ich dank Hilfe hier im Forum hin.

    Code:
    Private Sub Neu_Click()
    ActiveSheet.Select
    ActiveSheet.Copy Before:=Sheets(65)
    ActiveSheet.Name = "Gas " & Year(Date) + 1
    ActiveSheet.Range("B10:B22").Select
    Selection.ClearContents
    End Sub

    Nun soll aber aus dem Original Blatt "Gas_2017" noch der Bereich B18-B22 kopiert werden und im neuen Blatt "Gas_2018" im Beriech B31-B35 eingefügt werden.
    Selbst dass würde ich hinbekommen, in dem ich starr die Blätter anspreche.
    Ich hätte es aber gern so:
    Im Moment bearbeite ich das Blatt "Gas_2017", anfang nächsten Jahres möchte ich dann mein Blatt für 2018 erzeugen und das gleiche wieder in den folgenden Jahren, ohne den Code ständig umschreiben zu müssen um das Vorjahresblatt zum kopieren zu erreichen.

    Ich hoffe ich habe mein Problem halbwegs verständlich geschildert.

    :)
     
  2. Moin
    Teste mal so.
    Code:
    Evtl. Pruefung einbauen ob Blatt *Vorjahr* bzw. Batt *neues Jahr* vorhanden ist.
    gruss hary
     
  3. Danke für die Antwort Hary.

    Dein Code hat bei mir zwar nicht funkioniert,
    er hängt sich bei der Zeile
    Set wksAlt = Worksheets("Gas " & Year(Date) - 1)
    auf.
    Trotzdem habe ich mein Problem durch deinen Code lösen können.
    Er ist zwar größer geworden aber funktioniert.

    Private Sub Neu_Click()
    ActiveSheet.Select
    ActiveSheet.Copy Before:=Sheets(65) kopiert die alte Jahrestabelle
    ActiveSheet.Name = "Gas_" & Year(Date) + 1 benennt sie um in Gas_2018
    ActiveSheet.Range("B31:B43").Select
    Selection.ClearContents löscht alte Daten
    ActiveSheet.Range("B18:B22").Select
    Selection.Copy kopiert wichtige Daten
    ActiveSheet.Range("B31").Select
    ActiveSheet.Paste fügt diese ein
    ActiveSheet.Range("B10:B22").Select
    Selection.ClearContents löscht alte Daten
    End Sub

    Dein Ansatz die Daten zum kopieren nicht aus dem alten Blatt, sondern aus dem neu erzeugten, was ja anfangs eine 1:1Kopie ist, zu nehmen, war der entscheidene Tipp.
    Könnte man auch selber drauf kommen.

    Vielleicht hast du ja eine Idee wie man meinen nun funktionierenden Code vereinfachen kann.
    Das mit dem Dim...as... usw. habe ich noch nicht verstanden.
    Kannst du mir das vielleicht in normal Deutsch erklären?
    Oder jemand anders, ich bin für jedes Wissen offen und bereit.
    Vielen Dank.
     
  4. aus Tabellenblatt in neues Tabellenblatt kopieren

    Hallo Eneg79,
    hary hat Dir ja oben schon den Code in vereinfachter Form gezeigt.
    Dim wksAlt as worksheet 'Hier wird eine Objektvariable erstellt vom Typ Worksheet... diese Objektvariable muß mann setten also
    Set wksAlt = Worksheet("Gas " & Year(Date)-1

    wenn Du hier nur Set wksAlt =.... schreibst ohne Dim wksAlt as worksheet kommt ein Fehler weil eben keine Objektvariable deklariert wurde.

    Select brauchst Du auch nicht also nicht das ist überflüssig.
    Und mit der With ActiveSheet Konstruktion vereinfachst Du Deinen Code nochmal da Du nur einmal diese schreiben mußt und nicht wie Du in Deinem Code jede Zeile mit ActiveSheet....beginnen mußt.

    HOffe es halbwegs erklärt zu haben .. Aber das ist ja eh alles schon im Code von hary enthalten brauchst ja nur nochmal genau ansehen.

    mfg
    Silentwolf
     
    Silentwolf, 29. August 2017
    #4
  5. Moin
    Zusaetzlich zur Erklaerung von Silentwolf
    Code:
    Year(Date) - 1 heisst, das jetzige Jahr minus 1 also 2016
    Evtl hast du kein Blatt mit dem Namen "Gas 2016"
    Deine Vorgabe war ja:
    Zum testen ging ich davon aus das du ein Blatt "Gas 2016" in der Mappe hast bzw. du hast zum testen das Systemdatum auf 2018 gestellt.

    Wenn du erst jetzt(2017) mit der Mappe anfaengst laeuft der Code in den Fehler. Ohne Datumsumstellung funzt der Code erst 2018.
    Solltest du jetzt nur Blatt "Gas 2017" haben, benenn es mal um in "Gas 2016"
    gruss hary
     
  6. Danke Hary und Silentwolf,

    ich habe den Code von Hary jetzt noch mal probiert und mein Arbeitsblatt auf "Gas 2016" umbenannt.
    Tatsächlich läuft der Code jetzt weiter, aber nur bis zur nächsten Zeile.
    Jetzt hängt er sich bei: wksAlt.Copy Before:=Sheets(65) auf.

    Auch mit der Vereinfarung von Harys Code habe ich mich befasst und glaube das fast verstanden zu haben.
    Ich übersetze das mal so:

    Dim wksAlt As Worksheet --> dimensioniere wksAlt als Arbeitsblatt (wobei man wksAlt wilkürlich nehmen kann, man könnte es auch wks16 nennen
    Set wksAlt = Worksheets("Gas " & Year(Date) - 1) --> leg fest wksAlt trägt den Namen Gas (aktuelles Jahr -1)
    wksAlt.Copy Before:=Sheets(65) --> kopiere wksAlt ("Before:=Sheets(65)" wofur steht das?)
    With ActiveSheet --> with-Schleife beginnt, das aktive Blatt ist die erzeugte Kopie
    .Name = "Gas " & Year(Date) --> gibt der Kopie den Namen Gas (aktuelles Jahr)
    .Range("B18:B22").Copy .Range("B31")
    .Range("B10:B22").ClearContents
    End With --> Ende der Schleife
    Set wksAlt = Nothing --> ??? keine Ahnung

    Vielen Dank euch beiden. Ich finde diese VB/VBA Welt echt interessant, aber es ist schwer sich da reinzufuxen. Ohne ein solches Forum hätte ich keine Chance und ohne Leute wie euch hätte das Forum keine Chance.

    Ein dickes Dankeschön.

    Gruß eneg

    PS: ein neues Problem in meinem Programm tut sich schon auf, aber dazu später, ich versuche es erstmal selber. Auch hier werdet ihr eine Lösung parat haben.
     
  7. Hallo eneg,
    Wie lautet denn die Fehlermeldung ?
    Meinst Du denn das Worksheet mit dem Namen 65 oder das 65. Sheet ?

    Gruß
    Aloys
     
    aloys78, 30. August 2017
    #7
  8. aus Tabellenblatt in neues Tabellenblatt kopieren

    wksAlt.Copy Before:=Sheets(65)*-oin
    Schreibe vom Handy.
    Das hier kam aus deinem ersten Beitrag.
    Sheets(65)
    So wie es aussieht hast du keine 65 Blaetter.
    Mach es mal so, so kommt das neue Blatt an das Ende.
    wksAlt.Copy After:=Sheets(Worksheets.count)
    Gruss hary
     
Thema:

aus Tabellenblatt in neues Tabellenblatt kopieren

Die Seite wird geladen...
  1. aus Tabellenblatt in neues Tabellenblatt kopieren - Similar Threads - Tabellenblatt Tabellenblatt kopieren

  2. VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern

    in Microsoft Excel Hilfe
    VBA: 2 Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm speichern: Hallo Excel-Freaks, ich bin gerade mit einem Code beschäftigt und komme nicht weiter. Gewünscht wäre ein Makro: Zwei Tabellenblätter Inhalte kopieren und in eine Excelmappe einfügen und als .xlsm...
  3. Tabellenblatt in neue Mappe kopieren

    in Microsoft Excel Hilfe
    Tabellenblatt in neue Mappe kopieren: Hallo zusammen, ich hoffe, jemand kann mir weiterhelfen. Das Vorhaben: Nach Befüllen einer Excel-Tabelle soll ein Blatt daraus in eine eigenständige Mappe kopiert werden und alle Verknüpfungen...
  4. Daten aus einem Tabellenblatt in ein anderes kopieren ohne Leerzellen anzuzeigen

    in Microsoft Excel Hilfe
    Daten aus einem Tabellenblatt in ein anderes kopieren ohne Leerzellen anzuzeigen: Hallo zusammen, ich habe folgendes Problem. Ich würde gerne in einem Tabellenblatt, bestimmte Daten aus einem anderen Tabellenblatt automatisch anzeigen lassen. Tabellenblatt 1 = Grundlage...
  5. Automatisches Kopieren aus Tabelle in anderes Tabellenblatt

    in Microsoft Excel Hilfe
    Automatisches Kopieren aus Tabelle in anderes Tabellenblatt: Hi liebes Forum, ich habe folgende Frage/Problemstellung: Ich habe eine Exceldatei, die aus vielen verschiedenen Blättern besteht. Für jedes Projekt ein Blatt (alle sind gleich aufgebaut). Jetzt...
  6. VBA Code Tabellenblatt kopieren und UserForm

    in Microsoft Excel Hilfe
    VBA Code Tabellenblatt kopieren und UserForm: Hallo, ich hoffe mir kann jemand helfen. Schon mal vielen Dank für die Unterstützung. Folgende Thematik: In dem Blatt 1 ist ein ComandButton. Mit Klick soll über VBA folgendes abgefragt...
  7. Daten aus verschiedenen Tabellenblättern kopieren

    in Microsoft Excel Hilfe
    Daten aus verschiedenen Tabellenblättern kopieren: Hallo zusammen, bin neu hier in diesem Forum und darf mit getrost als Excel Anfänger beschreiben :) Ich habe eine Frage, ich möchte aus verschiedenen Tabellenblätter Daten in eine neue Tabelle...
  8. Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren

    in Microsoft Excel Hilfe
    Zeilen aufgrund von bestimmten Informationen in anderes Tabellenblatt kopieren: Hallo zusammen, ich bin erst vor ein paar Tagen auf die Excel VBA gestoßen und kenne mich deswegen leider so gut wie gar nicht aus. Ich würde gerne aus den Tabellen 3 - 11, bestimmte Zeilen in die...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden