Hallo,
ich habe in meiner Exceldatei verschiedene Tabellen, die
verschiedenen Inhalt haben.
Z.B. befinden sich in 3 Tabellen nur Daten über Batterien und in 2
Tabellen nur Daten über Wasserstoffspeicher.
Ich möchte nun, dass man auswählen kann, welche Arten von Tabellen
man sehen möchte.
Dazu möchte ich den Batterietabellen hinten an den Codenamen ein „b“
schreiben und bei Wasserstoff speicher ein „w“.
So könnte man mit einer For…next schleife die sheets durchgehen und
immer nur die Tabellen sichtbar machen, die auf ein „b“ enden. (dann
zeigt er nur batterien)
Nun meine frage:
Wie sieht eine solche abfrage aus, die überprüft, ob der
Tabellen-codename auf b endet?
if Worksheets(1).codename = „*“ & „w“ then Worksheets(1).visible=true
Ich habe jetzt einfach * genommen weil sonst * ein platzhalter für
alles ist. Aber was nimmt man wirklich?
Noch ne frage: Der Nutzer soll ein neues tabellensheet mit knopfdruck
erstellen können und dieses direkt als Batterientabelle oder
Wasserstofftabelle definieren. Das heißt, dass nach dem erstellen
direkt an den codenamen ein „b“ oder „w“ drangehängt werden muss. Wie
mache ich das?
Hallo, ArthurDent!
if Worksheets(1).codename = „*“ & „w“ then
Knapp: If Worksheets(1).codename like „*w“ then …
Ich habe jetzt einfach * genommen weil sonst * ein platzhalter
für alles ist. Aber was nimmt man wirklich?
* bleibt, statt = brauchst Du Like.
Noch ne frage: Der Nutzer soll ein neues tabellensheet mit
knopfdruck
erstellen können und dieses direkt als Batterientabelle oder
Wasserstofftabelle definieren. Das heißt, dass nach dem
erstellen
direkt an den codenamen ein „b“ oder „w“ drangehängt werden
muss. Wie mache ich das?
Gar nicht. Die Codename-Eigenschaft ist quasi schreibgeschützt, d. h. Du kannst diese Eigenschaft nur ändern, wenn Du sie im VB-Editor manuell änderst.
Du könntest statt dessen die normale Name-Eigenschaft verwenden oder für jedes Sheet eine CustomProperty anlegen und verwenden. Siehe dazu in der Hilfe unter CustomProperties.
Gruß, Manfred
Vielen Dank für die Hilfe. Das man den Codename nicht umändern kann ist doof. Dann muss ich halt dafür sorgen, dass man die sheets nicht umbenennen darf.
Vielen Dank für die Hilfe. Das man den Codename nicht umändern
kann ist doof. Dann muss ich halt dafür sorgen, dass man die
sheets nicht umbenennen darf.
Oder, wie gesagt: verwende eine CustomProperty. Wenn Du die neuen Tabellen ohnehin per Code erzeugen willst, kannst Du hier auch direkt diese Eigenschaft mit erzeugen.
Gruß, Manfred
Grüezi Arthur
Vielen Dank für die Hilfe. Das man den Codename nicht umändern
kann ist doof. Dann muss ich halt dafür sorgen, dass man die
sheets nicht umbenennen darf.
Aber nicht doch 
Du kannst den Codename sehr wohl auch per VBA verändern und darauf zugreifen.
hisWorkbook.VBProject.VBComponents(„Tabelle1“). _
Properties("_CodeName").Value = „NeuerCodeName“
–
Mit freundlichen Grüssen
Thomas Ramel
1 „Gefällt mir“
Du kannst den Codename sehr wohl auch per VBA verändern und
darauf zugreifen.
Gut, Sch… auf die Online-Hilfe. Man muss nur wissen, wie es geht; nicht, wo es steht.
Gruß, Manfred
Grüezi Manfred
Du kannst den Codename sehr wohl auch per VBA verändern und
darauf zugreifen.
Gut, Sch… auf die Online-Hilfe. Man muss nur wissen, wie es
geht; nicht, wo es steht.
Ja, aber das ist/war ja schon immer so 
BTW:
Damit das Ganze auch klappt muss der Haken gesetzt sein bei [x]Zugriff auf das Visual Basic-Projekt vertrauen (unter Makros/Sicherheit).
…das vergass ich zu erwähnen…
–
Mit freundlichen Grüssen
Thomas Ramel