MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 12.01.2017, 11:14   #1
joerg.winterstein
MOF User
MOF User
Standard VBA - Tabellenname(n) ändern

Moin alle zusammen,

ich habe da mal kurz ne Frage.

Wie man einen Tabellennamen ändert weiss ich, doch wie kann man folgendes ändern?

Nach der Umbenennung heißt meine Tabelle im VBA Explorer TabelleXX (Kontoumsätze), ich möchte aber das die Tabelle Kontoumsätze (Kontoumsätze) heißt.


Gruß Jörg
joerg.winterstein ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 11:25   #2
EarlFred
MOF Guru
MOF Guru
Standard

Hallo Jörg,

es gibt den Blattnamen, der im Reiter ersichtlich ist (den hast Du wohl geändert, vermutlich über die Eigenschaft Worksheet.NAME).

Das, was Du ändern willst, ist der CODENAME. Den kannst Du per VBA nicht ändern (ist ein schreibgeschützter Wert), sondern nur im VB-Editor von Hand - Eigenschaft "(Name)" im Eigenschaftsfenster (erreichbar über F4).

Grüße
EarlFred
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 11:30   #3
joerg.winterstein
Threadstarter Threadstarter
MOF User
MOF User
Standard

Moin EarlFred,

ja genau auf diese Art habe ich den geändert.
Ich habe ein Code eingefügt der bei fehlendem Tabellenblatt dieses hinzufügt,
doch dann leider natürlich mit dem Ergbnis. Kann man das beim erstellen beeinflussen?

Gruß Jörg
joerg.winterstein ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 11:34   #4
Case_Germany
MOF User
MOF User
Tipp CodeName per VBA...

Hallo EarlFred,

Zitat: von EarlFred Beitrag anzeigen

Das, was Du ändern willst, ist der CODENAME. Den kannst Du per VBA nicht ändern (ist ein schreibgeschützter Wert)

Per VBA so für das gerade aktive Tabellenblatt:

Code:

ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).Properties("_CodeName") = "DeinName"
Servus
Case

__________________

VBA & VB.NET Blog
Case_Germany ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 11:48   #5
joerg.winterstein
Threadstarter Threadstarter
MOF User
MOF User
Standard

Moin Case_Germany,

ich habe jetzt versucht deinen Code einzubinden...
entweder bin ich wirklich nicht in der Lage das zu verstehen oder es geht nicht.
Kann ich deinen Code an jeder Stelle des Makros einbinden?

Gruß Jörg
joerg.winterstein ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 12:22   #6
EarlFred
MOF Guru
MOF Guru
Standard

Hallo Case,

ja, klar geht das so, wenn Du dafür dem programmatischen Zugriff auf das VB-Projekt traust. Diese Sicherheitslücke würde ich allerdings nicht aufreißen. Ich kann dafür aber den Sinn nicht erkennen. Und es kann nicht ernsthaft das Ansinnen sein, bei Anwenderrechnern diese Sicherheitsoption abzuwählen, bloß damit... ja, was eigentlich?

@Jörg

Zitat:

es geht nicht.

Kann man das auch so beschreiben, dass man damit was anfangen kann? Gibt's ne Fehlermeldung? Passiert was anderes als erwartet? ....???

Wozu brauchst Du das überhaupt? Vielleicht beschreibst Du mal die Hintergründe, bevor wir hier sinnlose Diskussionen führen.

Grüße
EarlFred
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 12:40   #7
Case_Germany
MOF User
MOF User
Tipp Dieser Haken ist kein Problem...

Hallo EarlFred,

Zitat: von EarlFred Beitrag anzeigen

Und es kann nicht ernsthaft das Ansinnen sein, bei Anwenderrechnern diese Sicherheitsoption abzuwählen

Der Haken ist nicht nur ein Ansinnen, sondern unabdingbar, wenn Du z. B. Officeübergreifend programmierst.

Und wenn das Sicherheitskonzept von "Oben" steht, ist dieser Haken absolut unproblematisch.

Servus
Case

__________________

VBA & VB.NET Blog
Case_Germany ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 12:47   #8
EarlFred
MOF Guru
MOF Guru
Standard

Hallo Case,

Zitat:

sondern unabdingbar

das war bei mir noch nie der Fall - aber mag sein, dass ich dafür einfach zu wenig sophisticated Stuff schreibe (und nicht programmiere) - oder einfach anders an die Dinge herangehe. Wie auch immer.

Hier erkenne ich weder Sinn noch Notwendigkeit, also wäre es für mich klar, dass der Zugriff verwehr bleibt.

Zitat:

Und wenn das Sicherheitskonzept von "Oben" steht, ist dieser Haken absolut unproblematisch.

Das erklär mal bitte. Vor allem vor dem konkreten Hintergrund hier.

Grüße
EarlFred
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 12.01.2017, 22:52   #9
joerg.winterstein
Threadstarter Threadstarter
MOF User
MOF User
Standard

Moin Ihr beiden,

sorry wenn ich das nicht näher ausgeführt habe.
Also kurz um... mit geht nicht meine ich, es wurde nichts angezeigt.
Nun habe ich noch etwas umgestellt und es kommt:

Laufzeitfehler 1004
"Der programitische Zugriff auf das Visual Basic-Projekt ist nicht sicher"

Um noch eine Frage zu beantworten.
Ich habe feste Sheets die ich an nur einer Stelle haben will.
Die Tabellenblätter der Mitglieder können ruhig varieren, das ist mir egal.
Wenn nun also das Tabellenblatt "Kontoumsätze" versehentlich vom Kassenwart gelöscht wurde, möchte ich das es nicht dem erneuten erstellen sich im VB-Editor wieder an der gleichen Stelle befindet und ich beim arbeiten an der Kasse nicht erst lange suchen muß. Soll für mich also unterm Strich eine Erleichterung bringen.

Gruß Jörg
joerg.winterstein ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.01.2017, 00:42   #10
AndreaNoway
MOF User
MOF User
Standard

..nur um Missverständnisse zu vermeiden.
Wenn du den "Codenamen" von TabelleXX auf "Kontoumsaetze" ändern willst, dann sollte dafür kein Code nötig sein. Das macht man genau einmal.
Wenn du im VBA Editor links in der Baumstruktur siehst "TabelleXX (Kontoumsätze)" dann kannst du im Eigenschaftenfenster den Namen von TabelleXX umbenennen. Wenn du unten links kein Eigenschaftenfenster siehst, hilft ein Druck der Taste F4.

Wie gesagt. Das macht man nur einmal. Manuell.
Dann kann der Benutzer das Sheet umbenennen, wie er will und du kannst es sicher ansprechen und die Position / Reihenfolge spielt auch keine Rolle mehr.

Wenn es jedoch möglich ist, dass der Benutzer Sheets löschen darf, die du in Funktionen verwendest, läuft sowieso etwas schief. Das sollte nicht möglich sein und verhindert werden.

Kurzum.
Verwende eindeutige Objektnamen der Sheets. Wie man den Namen ändert, steht weiter oben.
Wenn du in deinem Code Stellen finden kannst, die ..worksheets("Kontoumsätze") oder "worksheets(4)" lauten, hast du schnell Probleme.
Versuche alle Worksheets direkt anzusprechen und überlege, ob es sinnvoll sein würde, wenn du für Namen Präfixe verwendest. Also das Sheet nicht "Kontoumsätze" sondern tabKontoumsaetze nennen solltest.
Das macht den Code viel lesbarer und man weiss, welches Objekt gemeint ist.

Aber das ist nur eine Stilfrage und funktional nicht matchentscheidend.
AndreaNoway ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.01.2017, 07:49   #11
Case_Germany
MOF User
MOF User
Tipp 1004 - Der programmatische Zugriff...

Hallo Jörg,

Zitat: von joerg.winterstein Beitrag anzeigen

Laufzeitfehler 1004
"Der programitische Zugriff auf das Visual Basic-Projekt ist nicht sicher"

In folgendem Link ist die Lösung dazu:

Der programmatische Zugriff...

Um das löschen von Tabellenblätter zu verhindern, brauchst Du doch nur unter "Überprüfen" "Arbeitsmappe schützen" auswählen, Kennwort vergeben - fertig.

In Firmen kannst Du diesen Haken in der Regel nicht ändern. Privat oder Verein - hier ist Vorsicht geboten. Es geht um Schadsoftware. Wenn Du ausschliessen kannst, das sowas auf den Rechner kommt, dann OK - sonst würde ich an Deiner Stelle die Finger davon lassen.

Eine einfache Lösung ist nur signierte Makros zuzulassen - dann ist der Haken harmlos - das ist aber mit einem entsprechenden Mehraufwand verbunden.

Servus
Case

__________________

VBA & VB.NET Blog
Case_Germany ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.01.2017, 09:17   #12
EarlFred
MOF Guru
MOF Guru
Standard

Hallo Case,

Zitat:

Eine einfache Lösung ist nur signierte Makros zuzulassen - dann ist der Haken harmlos

auch diese Aussage kann ich nicht unwidersprochen lassen. Ich kann selber auch nicht aufzählen, was man alles tun müsste, damit dieser "sicher harmlos" ist. Also setze ich ihn einfach nicht (schon garnicht niemals nie für die schiere Wahrscheinlichkeit, dass ein Kassenwart eines Tages (ausgerechnet!) das Blatt mit den Kontoumsätzen löschen KÖNNTE).

Wobei allein für mich die Frage besteht, ob bei derart unvorsichtig agierenden Computernutzern nicht noch mehr Sicherheitslücken offen sind, durch die man viel einfacher spazieren kann.

Fasse das bitte nicht als Nörgelei auf. Ich halte es aber für riskant, solche Ratschläge an ein Publikum zu geben, dessen Hintergrund / Systemlandschaft man nicht kennt.

Grüße
EarlFred

Geändert von EarlFred (13.01.2017 um 09:21 Uhr).
EarlFred ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.01.2017, 11:11   #13
joerg.winterstein
Threadstarter Threadstarter
MOF User
MOF User
Standard

Nochmals Moin Ihr beiden,

sorry das meine Frage so etwas losgetreten hat. Ich entnehme dem Ganzen also besser einen Schutz gegen ein versehentliches löschen einbauen, als meine angedachte Variante zu nehmen...
auch wenn es Grundsätzlich möglich wäre.

Dann bedanke ich mich rechtherzlich für eure Antworten.

Gruß Jörg
joerg.winterstein ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 13.01.2017, 11:16   #14
joerg.winterstein
Threadstarter Threadstarter
MOF User
MOF User
Standard

Moin Andrea,

wie erwähnt war das für mich eine persönliche Frage, da ich als einzigster bei uns Verein so deppert bin mich mit dieser Materie auseinanderzusetzen und ein Kassensystem welches auf unsere Bedürfnisse angepasst ist zu "entwickeln".

Für mich sah das nach Arbeitserleichterung und nach mehr Übersicht aus, was ich damit eigentlich bezwecken wollte.

Gruß Jörg
joerg.winterstein ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:35 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.