Microsoft Excel

Herbers Excel/VBA-Archiv

Funktion bei Änderung des Blattnamens? | Herbers Excel-Forum


Betrifft: Funktion bei Änderung des Blattnamens? von: joerg
Geschrieben am: 29.01.2010 22:46:24

Hallo schon wieder,

Was ich jetzt bräuchte wäre eine Möglichkeit, eine Funktion aufzurufen, wenn sich der Name eines Blattes ändert... Also etwa äquivalent zu 'Worksheet_Activate()', nur eben 'WorksheetName_change()'... Gibt's sowas?

Sorry mal für die vielen Fragen im Schnellfeuermodus, aber sowas wie das hier ist echt schwer zu googeln, wenn man eben nicht weiss wie die Funktion heisst... :)

Gruss,
Jo

  

Betrifft: Wir sind schneller als GOOGLE ;-) von: NoNet
Geschrieben am: 29.01.2010 23:01:12

Hey Jo,

ich sehe in Deiner Fragefrequenz kein Problem, zumal sich per GOOGLE entweder zu wenig (oder nichts) oder viel zu viel zu einigen Themen findet und man unter den 32564 Suchergebnissen manchmal stundenlang suchen muss, bis man DAS richtige Ergebnis gefunden hat. Allerdings kann man dabei auch eine Menge (unerwartetes) dazu lernen :-D. Oftmals liegt es aber am richtigen Suchbegriff, das ist vor allem schwierig, wenn man nicht weiß, wie der betreffende Fachbegriff lautet (Wer kommt schon ohne es zu kennen auf "SpecialCells" oder "BuiltinDocumentProperties" ?)

Hier ein Lösungsvorschlag von mir :
- Erstelle irgendwo im Blatt die Funktion =ZELLE("Dateiname";A1)
- Verwende im Klassenmodul des Tabellenblattes das Private Sub Worksheet_Calculate()

Durch das Umbenennen des Tabellenblattes wird die o.g. Funktion neu berechnet, wodurch das Calculate()-Ereignis des Tabellenblattes ausgelöst wir ;-)

Gruß, NoNet


  

Betrifft: AW: Wir sind schneller als GOOGLE ;-) von: joerg
Geschrieben am: 29.01.2010 23:07:46

Moin -

Da scheints aber doch eher um den Dateinamen zu gehen? ich bräuchte was für die Änderung des Namens eines Blattes, deswegen sag ich ja 'so wie Worksheet_activate'...? :) Oder bin ich jetzt irgendwie durcheinander?

(Also ich muss zugeben ich hab's jetzt nicht ausprobiert... Hätte aber noch dazu das Problem, dass der Dateiname u.U. unbekannt ist...)

Gäb's noch eine andere Lösung?

Gruss,
Jo


  

Betrifft: Meckern ohen auszuprobieren ? Tssss _oT von: NoNet
Geschrieben am: 29.01.2010 23:13:42

_oT = "ohne Text"


  

Betrifft: Ja, aber wenn ich den Dateinamen nicht weiss? _oT von: joerg
Geschrieben am: 29.01.2010 23:17:11

...


  

Betrifft: "Dateiname" ist Exakt "DATEINAME" ! von: NoNet
Geschrieben am: 29.01.2010 23:37:06

Hallo Joerg,

Du verwechselst da wohl etwas : Der Dateiname der Mappe spielt hier überhaupt keine Rolle !

Wenn ich schreibe =ZELLE("Dateiname";A1), dann meine ich auch =ZELLE("Dateiname";A1) und nicht etwa =ZELLE("Mappe1.xls";A1) oder =ZELLE("Auswertung 2009.xls";A1) etc. !!

Allerdings habe ich gerade gemerkt, dass hier noch einige Fehler drin sind:
- Diese Funktion liefert erst dann ein Ergebnis, wenn die mappe zumindest einmalig gespeichert wurde
- Das Makro springt dann logischerweise bei jeder Eingabe im Tabellenblatt an :-(

Vielleicht benötigst Du doch eine andere Lösung....sorry, mir fällt gerade keine gute Idee ein...

Gruß, NoNet


  

Betrifft: Na, macht doch nichts! Der zu ermittelnde... von: Luc:-?
Geschrieben am: 30.01.2010 00:10:05

...Teil nach "]" muss ja nicht mal in eine extra Variable gespeichert wdn, NoNet & Joerg,
wenn der in ..._Change immer mit Me.Name vgl wird. Bei Nichtübereinstimmung ist der Umbenennungsfall eingetreten. ..._Change hat doch ein Target, das dann genau diese Zelle repräsentiert. Wenn das nicht der Fall ist, also If Not Intersect(Target, diesezelle) Is Nothing Then den False-Zweig ergibt, wird die Proz halt gleich wieder verlassen.
Gruß+schöWE, Luc :-?


  

Betrifft: AW: Funktion bei Änderung des Blattnamens? von: Tino
Geschrieben am: 30.01.2010 11:17:20

Hallo,
ich finde dies ist nicht ganz so einfach.
Man muss zuerst sich die Tabellen Merken und diese dann bei Berechnung überprüfen.
Ich verwende dazu ein Array, dieses wird bei 3 verschiedenen Events aktualisiert.

Hier meine Beispieldatei dazu, diese Datei zuvor irgendwo abspeichern.
https://www.herber.de/bbs/user/67642.xls

Gruß Tino


  

Betrifft: Ergänzung ... von: Tino
Geschrieben am: 30.01.2010 11:33:52

Hallo,
das Event Workbook_NewSheet müsste man noch erweitern, damit neue Tabellen auch dazu kommen.

Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.EnableCalculation = False
Sh.Range("A1").FormulaR1C1 = "=MID(CELL(""dateiname"",RC),FIND(""]"",CELL(""dateiname"",RC))+1,10^9)"
Call Fuell_Array_Tabs
Sh.EnableCalculation = True
End Sub
Gruß Tino


Beiträge aus den Excel-Beispielen zum Thema "Funktion bei Änderung des Blattnamens?"