Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Variable in Makro
#1
Guten Morgen,

mein Problem ist folgendes: Ich habe eine Arbeitsmappe mit 31 Tabellen. Das erste Arbeitsblatt ("Belegung") stellt eine Übersicht für die folgenden Arbeitsblätter ("1" - "30") dar und man kann auch die einzelnen Arbeitsblätter von dort aus über kleine Button ansteuern. Ich möchte nun den Inhalt eines Arbeitsblattes (1-30) in ein anderes Arbeitsblatt (1-30) kopieren. Die Arbeitsblätter 1 -30 sind völlig identisch aufgebaut. Kann ich nun auf dem ersten Blatt (Belegung) in zwei Zellen jeweils die Blattnummern eingeben und das Makro 'liest' sich von dort die Blattnummern aus und kopiert dann das eine Blatt in das andere oder muss ich tatsächlich insgesamt 60 Kopiermakros dafür anlegen? Mit dem Anlegen einer solchen Variable in VBA bin ich überfordert... :s 

Vielen Dank für eure Hilfe!
Antworten Top
#2
Hallo VaterBaum,
das ginge schon. Wenn in Belegung!F4 die Nummer des Quellblattes und in Belegung!G4 die des Zeilblattes stehen, wird mit
Sub BlattKopieren()
    Application.DisplayAlerts = False 'Überschreib-Warnung übergehen
    Sheets(Sheets("Belegung").Range("F4")).Cells.Copy Destination:=Sheets(Sheets("Belegung").Range("G4")).Range("A1")
    Application.DisplayAlerts = True 'Überschreib-Warnung wieder aktivieren
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 14 - mit VBAHTML 12.6.0

der gesamte Inhalt von Blatt zu Blatt übertragen (und dabei der alte Inhalt im Zielblatt ohne Warnung gelöscht!).
Wolltest Du das so?
Gruß der AlteDresdner
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top
#3
Moin!
Gibt es einen Grund für den Mappenaufbau und die damit verbundenen Redundanzen?
Identisch aufgebaute Tabellen erschweren nur die Auswertung und blähen die Datei auf.
Für so etwas gibt es Auto/Spezialfilter, Pivottabellen, Auswertung per Dashboard uswusf

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Nochmal Ich:
Nachdem ich Deinen Post richtig gelesen habe, ist die eine Zeile zu ändern in
    Sheets(Sheets("Belegung").Range("F4").Text).Cells.Copy Destination:=Sheets(Sheets("Belegung").Range("G4").Text).Range("A1")
. Sonst kopiert er das n-te Blatt und nicht Blatt "n".
Gruß der AlteDresdner
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top
#5
Vielen Dank für die Antworten und die Mühe

Bei dem ersten Code bekomme ich die Meldung "Typen unverträglich",
beim zweiten Code stürzt Excel ab, hab allerdings in die Syntax auch tatsächlich nur 'Text' 
reingeschrieben  Sleepy 

@ralf: ja ich brauch die 30 identischen Blätter für 30 verschiedene Leute...

Gruß Steffen
Antworten Top
#6
Hi Steffen!
Zitat:@ralf: ja ich brauch die 30 identischen Blätter für 30 verschiedene Leute...
Dies ist ein denkbar schlechtes Argument!
"Mein" Excel hat 2^20 Zeilen und 2^14 Spalten pro Tabellenblatt.
Da lässt sich einiges unterbringen.
Z.B. eine zusätzliche Spalte mit der Personalnummer.

Ein Forum sollte in erster Linie nicht dazu dienen, konkret auf die Fragestellung angepasste Lösungen zu geben, sondern Alternativen aufzuzeigen.
Dazu wäre aber eine (anonymisierte) Beispieldatei notwenig.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#7
(10.11.2016, 16:02)VaterBaum schrieb: Bei dem ersten Code bekomme ich die Meldung "Typen unverträglich",
Hallo Steffen, das Makro setzt voraus, dass in Zelle F4 (Quellblatt) eine Zahl zwischen 1 und 30 und in G4 (Zielblatt) ebenso steht.
Wenn die Zahlen woanders stehen, müsstest Du den Code anpassen.
Beispieltabelle wäre hilfreich...
Gruß der AlteDresdner
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top
#8
Lieber alter Dresdner
Vielen Dank für die Antwort und die Mühe, leider ist es mir nicht gestattet, die Datei 
Online zu stellen, zudem kann ich derzeit auch nur über mein Tablet online sein.
Die Datei ist jedoch genauso, wie ich sie Eingangs beschrieben habe. 
Für deinen Code nochmals Herzlichen Dank, ich glaub, der geht ganz sicher in die Richtung,
Wie er sein müsste, leider hängt er sich immer auf. Vielleicht gibt es auch keine Lösung
Für das Problem. Dank nochmal! 
Der Steffen
Antworten Top
#9
Hi Steffen!
Schon mal über meine berechtigten Zweifel nachgedacht?
Eine Beispieldatei darf im Übrigen durchaus anonymisiert werden.
Kostet zwar etwas Mühe, aber Du möchtest ja schließlich etwas von der Community.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#10
(11.11.2016, 16:46)VaterBaum schrieb: Wie er sein müsste, leider hängt er sich immer auf. Vielleicht gibt es auch keine Lösung

Hallo Steffen,
was heißt 'er hängt sich auf'? Gibt es in den Blättern gesperrte Zellen, Bezüge zu anderen Dateien, Grafiken, ...
Anbei die bei mir gehende Lösung.
Gruß der AlteDresdner


Angehängte Dateien
.xlsm   BlattInhaltkopieren.xlsm (Größe: 20,56 KB / Downloads: 2)
Gruß der AlteDresdner (Win11, Off2021)
[-] Folgende(r) 1 Nutzer sagt Danke an AlterDresdner für diesen Beitrag:
  • VaterBaum
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste