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

Ansprechen von Worksheets

Ansprechen von Worksheets
03.05.2003 21:24:08
Christian
Hi

ich habe folgendes Problem:
Ich habe mir eine Gesamtübersicht erstellt, welche mehrere Tabellenblätter zusammenfässt. Nun kann es vorkommen, dass ein Tabellenblatt zurweiteren Bearbeitung herauskopiert wird, bearbeitet und wieder eingefügt wird. Da sich dabei meisten die Zeilen und Spaltenanzahl verändert stimmen die Verknüpfungen zur Gesamtübersicht nicht mehr und man muß alle wieder von Hand herstellen. Dies möchte ich per Makro erledigen.

Was ich aber überhaupt nicht auf die Reihe bekomme ist, die Tabellenblätter entsprechend aufzurufen. D.h. in meiner Übersicht steht in der 2.Spalte die Rechnungsnamen, diese sind auch gleich den Namen der Tabellenblätter. nun will ich diesen Namen einer Variablen übergeben ungefähr so:

Dim wsquelle as worksheet

name = Cells(i,2).value
Set wsquelle= activeworkbook.worksheets(name)

Aber wie gesagt, bekomme ich es einfach nicht auf die Reihe. Und bei meinem gefählichem Halbwissen probiere ich hier schon eine Evigkeit herum. Ich hoffe, ich habe es nicht all zu kompliziert beschrieben.

Danke Christian


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Ansprechen von Worksheets
03.05.2003 21:44:05
Christian

Hallo

ich glaube ich habe die lösung für meine Probleme gefunden. In den FAQ`s habe ich einen Beitrag zur dynamischen Namensvergabe gefunden. Das habe ich gleich ausprobiert und es funktioniert auch, wenn ich ein Tabellenblatt in eine andere Datei verschieb, bearbeite und wieder zurück verschiebe.

Ciao
Der Christian

Zu früh gefreut
03.05.2003 22:01:17
Christian

Da habe ich mich wohl etwas zu früh gefreut.

So wie ich mir das vorstelle funktioniert es Leider nicht. Wo wir wieder bei meiner Ursprünglichen Frage gelandet sind.

Wenn also jemanden etwas dazu einfällt, dann wäre ich sehr dankbar. Mache jetzt erstmal Feierabend. Bis morgen

Ciao
Der Christian


Anzeige
Re: Zu früh gefreut
03.05.2003 22:32:07
dkli

Hallo Christian,

ein paar mehr Infos könnten hilfreich sein.

Was willst du mit der Variable und dem zugewiesenen Namen anstellen?

Gibt es eventuell eine kleine Demo-Sequenz, die dein Problem verdeutlicht?

Wie und wo steigt dein vorhandenes (?) Programm-Modul aus?

Gruß

Dieter

kleiner Typ
03.05.2003 23:15:26
Ernst Dunkel

Hallo Christian

Gehe Deine Probleme in kleinen Schritten an. Löse zu erst die dyn. Namensübergabe aus einer Zelle auf das Tabellenblatt.
Wenn das klappt gehe das nächste Problem an.
Versuche Deine Frage so kurz wie möglich zu stellen.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim s As String
s=Range("A2").Value
ActiveSheet.Name=s
End Sub

Gruss Ernst

Anzeige
Problem neu Formuliert
04.05.2003 11:02:06
Christian

Guten Morgen,

Also mein Problem in kürze ist, das ich mit dem aus Zellen z.B. "B1" entnommenen Namen ein Tabellenblatt ansteuern möchte.

Die Tabelle:

Spalte A_________Spalte B

Rechnung_________Müller
Kundennummer_____0001
Anschrift________....

Rechnung_________Schmidt
usw.


Die Tabellenblätter heisen:
Gesamt/Schmidt/Müller/Schuster/usw....

For i=1 to 1000 step 1
If cells(i,1).value=Rechnung then
wsname=Cells(i,2).value
ws=activeworkbook.worksheets(wsname)<==hier ist das Problem, meine namensübergabe mittels Variable funktioniert nicht
...
mit ws möchte ich dann das entsprechende Tabellenblatt genau ansteuern. z.B. ws.Cells(6,3).value=1000



Anzeige
Re: Problem neu Formuliert
04.05.2003 11:14:02
Ramses

Hallo,

ich weiss nicht wie dein restlicher Code aussieht, aber so wird das nichts.

Wenn du Variablen verwendest, dann musst du sie auch deklarieren, und was du alles deklariert hast, weiss hier niemand.


...If cells(i,1).value=Rechnung then...

Ist das eine Variable oder eine Textprüfung, wenn Text muss er in Anführungszeichen stehen.


...wsname=Cells(i,2).value...

Ist wsname als String deklariert ?
Wenn nicht muss am Anfang des Codes

Dim wsname As String

stehen.

...ws=activeworkbook.worksheets(wsname)....

Ist ws als Worksheet Variable deklariert ?
Wenn nicht muss am Anfang

Dim ws As Worksheet

stehen, und die Anweisung muss

Set ws = Worksheets(wsname)

lauten, dann kannst du die Zellen auch mit ws.cells(6,3).... ansprechen.

Gruss Rainer

Anzeige
Lösung
04.05.2003 11:36:05
Christian

Hi Rainer,

Du hats natürlich recht. Jedoch wollte ich der Kürze die Variablendeklaration weglassen. Da mein Problem ja nicht in der Zuweisung, sonder in der Verarbeitung der Variablen bestand.
Aber es wäre dennoch besser gewesen die deklaration mit anzugeben. Nach entlosen Probieraktionien und eine Nacht drüberschlafen habe ich jetzt die Lösung recht schnell gefunden.

Sub test5()
Dim ws As Worksheet
Dim wsname
Dim i


For i = 1 To 1000 Step 1
If Cells(i, 1).Value = "Rechnung" Then
wsname = Cells(i, 2).Value
Set ws = ActiveWorkbook.Worksheets(CStr(wsname))
ws.Cells(5, 5).Value = "1000"
set ws as nothing
End If
Next i

End Sub

Schönen Sonntag noch.

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige