Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1060to1064
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
Inhaltsverzeichnis

Makro auf alle Tabellenblätter anwenden???

Makro auf alle Tabellenblätter anwenden?
24.03.2009 12:46:32
Volker
Hi an alle!
Ich habe folgendes Problem:
Ich möchte eine neue Zeile in einer Datenliste einfügen. Hierbei sollen die Formeln in den neuen Zellen übernommen werden. Hierzu habe ich folgendes Makro gefunden:

Sub Zeileeinfügen()
' Aktuelle Zeile kopieren, unterhalb Zeile einfügen und Inhalte in Zellen ohne Formel löschen
Dim Zelle As Range
ActiveCell.EntireRow.Copy
Cells(ActiveCell.Row + 1, 1).Insert Shift:=xlDown
For Each Zelle In Range(Cells(ActiveCell.Row + 1, 1), Cells(ActiveCell.Row + 1, 255).End( _
xlToLeft))
If Not Zelle.HasFormula Then
Zelle.ClearContents
End If
Next Zelle
Cells(ActiveCell.Row + 1, 1).Select
End Sub


Dies funktioniert soweit sehr gut.
Mein Problem ist jedoch, dass dieser Befehl auf mehrere Blätter durchgeführt werden soll.
(Meine Datei besteht aus mehreren Blättern. Die Informationen in den ersten Spalten sind jeweils identisch, danach folgen jedoch auf den verschiedenen Blättern nach den Spalten noch andere Informationen)
Ich habe versucht die Blätter, bei denen die Zellen eingefügt werden sollen mit Strg zu markieren und dann habe ich das Makro ausgeführt. Dieses wird jedoch nur beim ersten Blatt durchgeführt und nicht bei den anderen markierten Blättern.
Ich hoffe mein Problem ist ersichtlich. Ansonsten bitte ich um Rückfragen.
Vielen Dank schon mal!
Grüße
Volker

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 13:33:02
Armin
Hallo Volker,
also der Code steht offensichlich in einer Tabelle (codseite). Das bedeute er hat nur da Gültigkeit.
Also entweder Du würdest den Code in alle Tabellen kopieren oder was wesentlich einfacher ist Du speicherst diesen Code in einem Modul. Dann bezieht er sich immer auf das aktuelle Tabellenblatt.
Gruß
Armin
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 14:09:06
Volker
Hallo Armin!
Danke für Deine Antwort!
Der Code befindet sich bereits in einem Modul.
Wenn ich dann mehrere Tabellen markiere (alle jedoch innerhalb einer Datei) und den Code anwende, wird nur in Tabell1 eine neue Zeile eingefügt in den anderen markierten Tabellen jedoch nicht.
Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 14:20:41
Armin
Hallo Volker,
nicht alle auf einmal, jede Tabelle einzeln! D.h. man muss in jedes Tabellenblatt wechseln und dann den Cursor auf entsprechende Zeile und dann das Makro ausführen.
Gruß
Armin
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 14:29:56
Volker
Hallo Armin!
Danke nochmal!
Ist es nicht möglich die Aktion direkt in allen Tabellen auszuführen? Es handelt sich in jeder Tabelle genau um die gleiche Zeile (d.h. dleicher Ort).
"Normalerweise" kann man ja die einzelnen Tabellen mit Strg bündeln und dann gleiche Aktionen in allen Tabellen ausführen.
Der Befehl "Zeile-Einfügen" funktioniert unter diesen Umständen und führt zum gewünschten Ergebnis. Jedoch sind nun alle Zellen leer. Dies habe ich versucht mit dem Makro zu umgehen, da dieser die Formeln der Spalten in die neuen Zellen übernimmt.
Da dies eine Erleichterung darstellen soll wäre es mühsam jedesmal in jedem einzelnen Tabellenblatt den Befehl auszuführen.
Ich hoffe Du kannst mir weiterhelfen.
Grüße
Volker
Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 15:01:34
Armin
Hallo Volker,
am einfachsten wäre eine Mustersheet. Denn wenn mehre Tabellen geändert werden sollen muss man ja wissen welche Tabellen ausgeschlossen werden sollen usw.
Kannst Du ein Sheet hochladen?
Gruß
Armin
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 15:17:09
Volker
Hier ist mal ein vereinfachtes Beispiel meines Problems:
https://www.herber.de/bbs/user/60632.xls
Ich möchte nun zwischen Person B und C einen weitere Person einfügen. Dies soll in beiden Tabellen geschehen und die Formeln für die Restzeit und das verf. Einkommen sollen jeweils automatisch mit in diese neue Zeile gezogen werden.
Ich hoffe Du kannst Dir eine Vorstellung von dem Problem machen.
Danke und Grüße
Volker
Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 16:17:55
Armin
Hallo Volker,
hat etwas gedauert, musste erst noch jemand zufrieden stellen.
Versuch mal das Sheet:
https://www.herber.de/bbs/user/60635.xls
Gruß Armin
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 16:28:15
Volker
Hi Armin!
Ja genau so soll es dann am Ende aussehen.
Das sollte weitgehend "automatisch" geschehen da im Laufer der Zeit hier und da neue Daten hinzukommen und die Liste ziemlich komplex ist.
Hast Du eine Lösung gefunden?
Grüße
Volker
AW: Makro auf alle Tabellenblätter anwenden?
24.03.2009 17:10:01
Armin
Hallo Volker,
das ist die Lösung!
Ich habe vergessen zu schreiben, dass das so schon funktioniert. Vielleich etwas anders als bis jetzt.
Wenn Du eine Zeile einfügen möchtest bitte Cursor die Zelle in Tabelle1 nach der eine Person eingefügt werden soll in Zelle A1....An, dann rechte Maustaste und das war es dann auch. Funktionierts?
Gruß
Armin
Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 10:13:41
Volker
Hi Armin!
Vielen vielen Dank. Das ist genau das, was ich gesucht habe!
Ich habe jedoch noch eine Frage.
Das war ja nur eine Beispieldatei meines Problems. Wie kann ich diese Funktion nun in mein Dokument einfügen?
Viele Grüße
Volker
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 14:42:56
Volker
Hi Armin!
Vielen Dank für Deine Hilfe. Echt super nett von Dir! Danke!
Also ich habe es so ausprobiert wie du es gesagt hast. Mit dem "rechtsklick" funktioniert soweit. Es wird jedoch nur im ersten Tabellenblatt eine Zeile hinzugefügt. Die anderen bleiben unberührt. Es befinden sich insgesamt 6 Blätter in der Datei und die ersten 5 sollen jeweils geändert werden.
Gibt es eine Möglichkeit die Zeile in allen 5 Blättern einzufügen?
Vielen Dank und viele Grüße
Volker
Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 14:54:16
Armin
Hallo Volker,
ja natürlich nur waren eben meine Infos zu wenig!
Wie viele Tabellen hat das Sheet und welche Tabellen sollen geändert werden (Namentlich!).
Ein Einfügen ist bei dieser Version nur von der 1.Tabelle aus vorzunehmen. Wenn das von einer beliebigen Tabelle ausführbar sein soll, müsste man etwas am Konzept ändern. Und natürlich ist das auch aufwendiger.
Gruß Armin
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 14:59:33
Volker
Hi Armin!
Also das die Änderungen nur von Tabelle1 aus vozunehmen sind ist nicht schlimm. Hauptsache es wird in den ersten 5 Blättern eine Zeile hinzugefügt.
Die Tabellen heißen:
01-Project view
02-Spec View
03-On|Off View
04-Funding View
05-Master View
Calculations
Dabei soll jedoch nur bei den ersten 5 (nicht in "Calculations") eine neue Zeile hinzugefügt werden.
Grüße
Volker
Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 15:33:48
Armin
Hallo Volker,
Code austauschen im Modul1:

Public Sub ZeileEinfuegen(Rx As Excel.Range)
Dim Zeile As String
Dim Zelle As Range
Dim wks As Worksheet
Dim Ry As Range
Zeile = Rx.Address
For Each wks In ThisWorkbook.Sheets
If Left(wks.Name, 1) = "0" Then
Set wks = Worksheets(wks.Name)
wks.Range(Zeile).EntireRow.Copy
wks.Cells(Rx.Row + 1, 1).Insert Shift:=xlDown
For Each Zelle In wks.Range(wks.Cells(Rx.Row + 1, 1), wks.Cells(Rx.Row + 1, 255).End( _
xlToLeft))
If Not Zelle.HasFormula Then
Zelle.ClearContents
End If
Next Zelle
End If
Next
Application.ScreenUpdating = True
Cells(Rx.Row + 1, 1).Select
End Sub


Gruß Armin

Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 15:39:57
Volker
Hi Armin!
Das klappt!
Vielen vielen Dank!!!
Viele Grüße und noch einen schönen Tag!
Volker
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 15:58:07
Volker
Hi Armin!
Also vielen Dank nochmal!
Eine Frage hätte ich allerdings noch.
Die Funktionen der rechten Maustaste, d.h. die Auswahlliste wird ja nun nicht mehr angewendet. Gibt es da eine Möglichkeit, dass man die Funktion irgendwie wieder aktivieren kann. Zum Beispiel, das wenn ich innerhalb der Spalte A die rechte Maustaste drücken eine neue Zeile eingefügt wird. Sonst jedoch die Auswahlliste geöffnet wird?
Viele Grüße
Volker
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 16:06:15
Armin
Hallo Volker natürlich kein Problem.
Einfach im Tabellenblatt Codeteil "die Abfrage anpassen" und die Auswahlliste aufrufen.

Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)
Cancel = True
Application.EnableEvents = False
On Error Resume Next
If Target.Row > 1 And Target.Column = 1 Then
ZeileEinfuegen Target
Else
Auswahlliste.Show
End If
Application.EnableEvents = True
End Sub


Gruß Armin

Anzeige
AW: Makro auf alle Tabellenblätter anwenden?
25.03.2009 16:13:09
Volker
Ok.
Muss ich den "neuen" Code dann bei dem anderen mit einfügen oder ihn durch diesen ersetzen?
Du bist echt ein super Typ! Danke nochmal :-)
Viele Grüße
Volker

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige