Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
872to876
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
872to876
872to876
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Variable für Arbeitsblätter

Variable für Arbeitsblätter
25.05.2007 09:02:41
Oliver
Hallo Excel - Spezialisten,
ich möchte 60 Arbeitsblätter aus einer Tabelle mit der gleichen Schleife bearbeiten. Die Arbeitsblätter heißen - logisch - alle anders. Das heißt, ich möchte die Schleife nicht 60 mal schreiben müssen, sondern die Arbeitsblätter als Variable führen. Wie mache ich das?
Gruß Olli

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variable für Arbeitsblätter
25.05.2007 09:09:56
Matthias
Hallo Olli,
wenn die Blätter z.B. Tabelle1, ... Tabelle60 heißen:

Sub Test()
Dim i As Integer
For i = 1 To 60
With Worksheets("Tabelle" & i)
.Range("A1") = i
End With
Next i
End Sub


Wenn es alle Blätter der Mappe sind:


Sub Test()
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Worksheets
With Sh
.Range("A1") = Sh.Name
End With
Next Sh
End Sub


Gruß Matthias

AW: Variable für Arbeitsblätter
25.05.2007 09:10:30
Oberschlumpf
Hi Olli
Versuch es so:

For Schleife = 1 To Sheets.Count
Sheets(Schleife).Range("A1").Value = 1
Next


Mit diesem Bsp würde die Zelle A1 in jedem Sheet den Wert 1 erhalten, da die Schleife genau so oft wiederholt wird, wie Anzahl Blätter (Sheets.Count) in der Mappe vorhanden sind.
Ein Blatt kann durch seinen Index (Sheets(1), Sheets(2), usw) angesprochen werden.
Und die Variable "Schleife" ersetzt innerhalb der Klammer den festen Wert 1 oder 2 oder usw.
Das Blatt, welches in deiner Reihenfolge (Blattregister in Excel) an erster Stelle steht, hat immer den Index 1.
Natürlich musst du die Zeile in der Schleife durch deinen Code ersetzen.
Konnte ich helfen?
Ciao
Thorsten

Anzeige
AW: Variable für Arbeitsblätter
25.05.2007 09:28:18
Oliver
Vielen Danke erstmal. Aber ich glaube, ich muss etwas weiter ausholen. Alle Arbeitsblätter sollen diese Schleife durchlaufen:

Sub Anzahl()
Sheets("Tabelle1").Select
Range("B3").Formula = "=Name!V4"
Range("B4").Formula = "=SUM(Name!V5:V76)"
Range("B5").Formula = "=Name!V86"
Range("B6").Formula = "=B4/B5"
End Sub


Name ist die Bezeichnung (Variable) des Arbeitsblattes. Das ich mit ActiveSheet.Counter + 1 das nächste Arbeitsblatt aufrufen kann weiß ich, aber wie bekomme ich die Bezeichnung des Blattes - alle wirklich unterschiedlich, nicht von 1 - n) nach Name?
Gruß Olli

Anzeige
AW: Variable für Arbeitsblätter
25.05.2007 09:34:00
Matthias
Hallo Olli,
so:

Sub Test()
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Worksheets
With Sh
.Range("B3").Formula = "=Name!V4"
.Range("B4").Formula = "=SUM(Name!V5:V76)"
.Range("B5").Formula = "=Name!V86"
.Range("B6").Formula = "=B4/B5"
End With
Next Sh
End Sub


Gruß Matthias

AW: Variable für Arbeitsblätter
25.05.2007 09:36:00
Matthias
Hallo nochmal,
das nicht Name hab ich nicht verstanden, das kann doch wegfallen, wenn der Bezug auf das gleiche Blatt geht.
Gruß Matthias

AW: Variable für Arbeitsblätter
25.05.2007 09:47:00
Oliver
Das Ergebnis der Schleife soll in das Blatt "Tabelle1", und Name ist ein Pseudonym für die Bezeichnung der zu bearbeitenden Arbeitsblätter. Das sind 60 an der Zahl und damit ich sie bearbeiten kann muss Name durch die tatsächliche Bezeichnung ersetzt werden, und dies gilt für alle 60.
Also die Blätter heißen:
Gabi
Heiner
Gert
Ulla
usw. Alle sollen nach dem gleichen Strickmuster berechnet werden und das Ergebnis nach Tabelle1 gestellt werden.
Gruß Olli

Anzeige
AW: Variable für Arbeitsblätter
25.05.2007 09:50:00
Matthias
Hallo Olli,
also ganz hab ich das nicht verstanden, aber vielleicht hilft dies weiter:

Sub Test()
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Worksheets
With Sh
.Range("B3").Formula = "='" & Sh.Name & "'!V4"
.Range("B4").Formula = "=SUM('" & Sh.Name & "'!V5:V76)"
.Range("B5").Formula = "='" & Sh.Name & "'!V86"
.Range("B6").Formula = "=B4/B5"
End With
Next Sh
End Sub


Gruß Matthias

AW: Variable für Arbeitsblätter
25.05.2007 09:57:50
Oliver
Vielen Dank Matthias, das hat mir weiter geholfen.
Gruß Olli

AW: Variable für Arbeitsblätter
25.05.2007 10:25:00
mpb
Hallo,
wie Matthias schon vermutete, ist die "Name"-Konstruktion in den Formeln überflüssig, da sich die Formeln ja unabhängig vom Namen der Tabelle immer auf die Tabelle beziehen, in der sie stehen. es reicht also der einfachere Code:

Sub Test()
Dim Sh As Worksheet
For Each Sh In ActiveWorkbook.Worksheets
With Sh
.Range("B3").Formula = "=V4"
.Range("B4").Formula = "=SUM(V5:V76)"
.Range("B5").Formula = "=V86"
.Range("B6").Formula = "=B4/B5"
End With
Next Sh
End Sub


Gruß
Martin

Anzeige
AW: Variable für Arbeitsblätter
25.05.2007 09:52:00
Oberschlumpf
Hi Matthias, Hi Olli
@Matthias
Deinen Code verstehe ich nicht.
Für "NAME" wird bei jedem Durchlauf der Datei Öffnen-Dialog gestartet, und ich soll ne Datei mit nem Sheet "Name" öffnen.
@Olli
Deinen Code verstehe ich auch nicht, weil die Zellen in Sheets 1 mit jedem Durchlauf überschrieben werden und am Schluss immer nur die Werte des letzten Blattes haben würden - da kannste auch gleich rein schreiben Zelle = Wert aus letztes Blatt.
Erklär mal bitte so genau wie möglich aber nicht mehr als nötig, was du vorhast.
Ciao
Thorsten

AW: Variable für Arbeitsblätter
25.05.2007 09:54:00
Matthias
Hi Thorsten,
Für "NAME" wird bei jedem Durchlauf der Datei Öffnen-Dialog gestartet, und ich soll ne Datei mit nem Sheet "Name" öffnen.
Ja, du hast recht, aber schau mal den weiteren Verlauf der Diskussion an.
Gruß Matthias

Anzeige
AW: Variable für Arbeitsblätter
25.05.2007 11:33:00
Oberschlumpf
Hi
jep, als ich am schreiben war, wart ihr es auch..nu hab ich deine Korrektur gesehn
Ciao
Thorsten

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige