Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellenblatt in derselben Arbeitsmappe kopieren

Tabellenblatt in derselben Arbeitsmappe kopieren
19.12.2005 12:24:47
Mikel
Hallo,
ich habe hier ein kleines Makro-Problem und hoffe das mir hier geholfen werden kann:
Ich möchte ein (Ursprungs-)Tabellenblatt (Beispielname: Berechnung) in derselben Arbeitsmappe kopieren, und dem neuen Tabellenblatt den Namen, Vornamen aus dem Ursprungs-Tabellenblatt (beides in F1) mit Tagesdatum (TT.MM.JJ) und eine fortlaufende Nummerierung geben.
Nun habe ich nur folgendes VBA-Macrorecorder-Ergebnis:

Sub Tabellenblattkopieren()
' Tabellenblattkopieren Makro
' Makro am 19.12.2005 von ... aufgezeichnet
Sheets("BERECHNUNG").Select
Sheets("BERECHNUNG").Copy After:=Sheets(12)
Sheets("BERECHNUNG (2)").Select
Sheets("BERECHNUNG (2)").Name = "BERECHNUNG_62_SGB (2)"
Range("F1:H1").Select
ActiveCell.FormulaR1C1 = "Pelz, Hasan"
Sheets("BERECHNUNG (2)").Select
Sheets("BERECHNUNG (2)").Name = "Pelz, Hasan"
Range("D8").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
Range("D8").Select
End Sub

...und folgendes Problem:
1. es klappt auch soweit - aber: sobald ich auf dem Ursprungs-Tabellenblatt "in F1" den Name, Vorname (hier: Pelz, Hasan) ändere (z.B. auf Kraus, Wilhelm), nimmt er -bei der Ausführung des Makros- trotzdem den alten Namen (hier: Pelz, Hasan).
2. ...und vergibt -bei wiederholten kopieren- densselben "ursprünglichen" Tabellennamen (hier: BERECHNUNG (2)) - ohne fortlaufende Nummerierung auf z. B.: BERECHNUNG (3) oder weiterlaufende. Hier erscheint auch die Makro-Fehlermeldung zum debuggen.
Fragen:
1. Wie füge ich manuell die Daten von F1 (Name, Vorname aus dem Ursprungs-Tabellenblatt) in das Makro (als neuer Tabellenblatt-Name) ein? "F1"
2. Wie füge ich manuell das aktuelle Tagesdatum (hinter dem Name, Vorname) in das Makro (als neuer Tabellenblatt-Name) ein? "Today()"
3. Wie füge ich manuell eine fortlaufende Nummerierung (hinter das Datum) in das Makro (als neuer Tabellenblatt-Name) ein? (Ähnlich der Nummerierung beim "normalen" kopieren ohne Makro)
Vielen Dank im vorab für die Hilfe
...schöne Grüße
''''''
(o)(o)
--ooo--(__)--ooo--
Gruß Mikel

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Tabellenblatt in derselben Arbeitsmappe kopieren
19.12.2005 13:27:50
Mikel
ups, ein kleiner Fehlerteufel im Makro:
Sub Tabellenblattkopieren()
'
' Tabellenblattkopieren Makro
' Makro am 19.12.2005 von ... aufgezeichnet
'
'
Sheets("BERECHNUNG").Select
Sheets("BERECHNUNG").Copy After:=Sheets(12)
Sheets("BERECHNUNG (2)").Select
Sheets("BERECHNUNG (2)").Name = "BERECHNUNG (2)"
Range("F1:H1").Select
ActiveCell.FormulaR1C1 = "Pelz, Hasan"
Sheets("BERECHNUNG (2)").Select
Sheets("BERECHNUNG (2)").Name = "Pelz, Hasan"
Range("D8").Select
ActiveWindow.ScrollWorkbookTabs Position:=xlFirst
Sheets("BERECHNUNG").Select
Range("D8").Select
...schöne Grüße
''''''
(o)(o)
--ooo--(__)--ooo--
Gruß Mikel
Anzeige
AW: Tabellenblatt in derselben Arbeitsmappe kopieren
19.12.2005 15:55:38
Mikel
Hallo noch mal, ich wollte bloss wissen, ob etwas nicht verstanden wurde (vielleicht bin ich doch etwas ungeduldig?).
...schöne Grüße
''''''
(o)(o)
--ooo--(__)--ooo--
Gruß Mikel
AW: Tabellenblatt in derselben Arbeitsmappe kopieren
19.12.2005 17:19:56
Hoffi
Hallo Mikel,
schreibe in deiner Ursprungstabelle in Zelle G1 eine 0.
Dann dieses Makro:

Sub Tabellenblattkopieren()
Dim nam As String
Sheets("Berechnung").Activate
[g1].Value = [g1].Value + 1
nam = Sheets("Berechnung").Range("F1") & Format(Now, " dd.mm.yy ") & Sheets("Berechnung").Range("G1")
Sheets("Berechnung").Copy After:=Sheets(12)
Sheets("Berechnung (2)").Name = nam
End Sub

Das Tabellenblatt bekommt den Namen, der in Berechnung F1 steht, das aktuelle Datum und durch G1 wird bei jedem kopieren des Blattes Berechnungen die Zahl um eins erhöht.
Falls Du Zelle G1 nicht nutzen kannst, dann nimm irgendeine Zelle in Berechnung und ändere die Zellennummer im Makro ab.
Rückmeldung wäre nett.
Grüße
Hoffi
Anzeige
AW: Tabellenblatt in derselben Arbeitsmappe kopie
19.12.2005 21:59:12
Mikel
Hi Hoffi,
ich bedanke mich bei im vorab vielmals bei Dir für die Mühe. Sorry meine Verspätung. Leider sitze ich jetzt nicht am richtigen PC und hab die Excel-Liste nicht zur Hand. Ich gebe morgen bescheid, wenns geklappt hat.
Danke nochmals
''''''
(o)(o)
--ooo--(__)--ooo--
Gruß Mikel
AW: Tabellenblatt in derselben Arbeitsmappe kopieren
20.12.2005 09:05:11
Mikel
Hi Hoffi,
...es sitzt, wackelt und hat Luft - das isses. Ich danke Dir nochmals.
Ich habe an der Formel noch einen Zusatz hinzugefügt (auch das Zellenblatt von G1 auf G55 abgeändert), damit ich in das Urprungstabellenblatt zurückspringen kann:

Sub Tabellenblattkopieren()
Dim nam As String
Sheets("Berechnung").Activate
[g55].Value = [g55].Value + 1
nam = Sheets("Berechnung").Range("F1") & Format(Now, " dd.mm.yy ") & Sheets("Berechnung").Range("G55")
Sheets("Berechnung").Copy After:=Sheets(12)
Sheets("Berechnung (2)").Name = nam
Sheets("Berechnung").Select
Range("D8").Select
End Sub

Dir schöne Weihnachten und einen guten Rutsch
Mikel
Anzeige
AW: wünsch ich Dir auch :-) - o.T.
20.12.2005 09:15:05
Hoffi
.
Einschränkung der Tabellenbeschriftung
21.12.2005 10:13:23
Mikel
Hi Hoffi,
es ist leider doch noch ein kleiner Fehler aufgetaucht, und habe eine entsprechende Frage zu diesem Problem: Beschränkung auf 31 Zeichen - einschließlich Leerzeichen und ohne Sonderzeichen bei der Tabellenbeschriftung.
Zur Zeit kommt -wenn es zuviele Zeichen sind- ein Debugg-Fehlerhinweis.
Hier zur Rekapitulation:
FOLGENDE ZELLENBEZÜGE:
In F1 ist die Zelle mit NAMEN, VORNAMEN
In G55 ist die Zelle in (am Anfang) eine 0 (Null) eingetragen
MAKROABLAUF (wie untenstehenden Formel von Hoffi ;-):
1. In Zelle G55 immer eine 1 auf dem Tabellenblatt "Berechnung" dazuzählen. ***siehe unten
2. Das Tabellenblatt "Berechnung" kopieren.
3. Das KOPIERTE Tabellenblatt umbennenen mit den Daten von dem Tabellenblatt "Berechnung" der Zelle F1 (Name, Vorname), dazu das Tagesdatum (im Format: dd.mm.yy) und die fortlaufende Nummerierung (das aus dem Tabellenblatt "Berechnung" von der Zelle G55 rüberkopiert wurde)
4. Danach zurück Tabellenblatt "Berechnung" in Zelle D8
DIE MAKROFORMEL:

Sub Tabellenblattkopieren()
Dim nam As String
Sheets("Berechnung").Activate
[g55].Value = [g55].Value + 1
nam = Sheets("Berechnung").Range("F1") & Format(Now, " dd.mm.yy ") & Sheets("Berechnung").Range("G55")
Sheets("Berechnung").Copy After:=Sheets(12)
Sheets("Berechnung (2)").Name = nam
Sheets("Berechnung").Select
Range("D8").Select
End Sub

MEINE LÖSUNG (oder besteht eine andere Möglichkeit?):
Einschränkung des Gesamtnamens (HIER: Name, Vorname) auf 17 Zeichen (ggf. 18 Zeichen, falls der ZUSATZ mit eingebaut werden könnte). Wobei eher der Vorname (NICHT der Name) gekürzt wird. Ggf. auch die Ausklammerung der Sonderzeichen?
ZUSATZ (mit Bezug):
***Gibt es ein zusätzliches Makro die Zelle G55 auf dem Tabellenblatt "Berechnung" beim Programmstart von diesem Excel-Berechnungsprogramm immer auf 0 zu setzen? Damit könnte man die Anzahl der Zeichen auch etwas (es wären beim Gesamtnamen 18 Zeichen möglich) einschränken.
Vielen Dank im vorab,
sowie dem gesamten Team und allen anderen
eine schöne Weihnacht
und guten Rutsch ins neue Jahr
wünscht
Mikel Fuhr
Anzeige
AW: Einschränkung der Tabellenbeschriftung
21.12.2005 13:14:04
Hoffi
Hallo Mikel,
Jepp, die Beschränkung liegt bei 31 Zeichen. Wie man dies umgehen kann, keine Ahnung, ich denke es wird nicht gehen.
Allerdings kannst Du ja einiges kürzen, z.B. den Namen in F1, beschränke den Vornamen schonmal auf den Anfangsbuchstaben, Datum müsste so bleiben.
Schreibe in 'Diese Arbeitsmappe' der Datei folgenden Code:

Private Sub Workbook_Open()
Sheets("Berechnung").Range("G55").Select
ActiveCell.FormulaR1C1 = "0"
Range("D8").Select
End Sub

Zelle G55 wird nun bei jedem öffnen dieser Datei auf 0 gesetzt.
Anstatt 'Range("D8").Select' in obigem Code zu schrieben, kannst Du auch direkt das andere Makro aufrufen mit Call Tabellenblattkopieren.
Eine andere Möglichkeit, die Länge des Tabellenblatt Namens zu erweitern, kenne ich leider nicht.
Hoffe dies hilft Dir schonmal weiter.
schöne Grüße
Hoffi
Anzeige
AW: Einschränkung der Tabellenbeschriftung
21.12.2005 15:47:25
Mikel
Hi Hoffi,
ich danke Dir nochmals. Ich werde noch ein bisschen rumprobieren, muss es wohl akzeptieren.
schöne Grüße
Mikel

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige