Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellen-CodeName über Variable ändern

Tabellen-CodeName über Variable ändern
14.11.2006 21:23:02
Bernd
Mein Problem bei dem folgenden Makro ist, dass ich den CodeName und den Tabellenname über eine Variable ändern muss, da das folgende Makro über ein anderes Makro in ein Tabellenblatt einschreibe, dessen Name sich in einer Liste befindet.
Sub EreignisEinstellenMP(Blatt)
With ThisWorkbook.VBProject.VBComponents(Blatt).CodeModule
.InsertLines 1, _
"

Private Sub Worksheet_Change(ByVal Adresse As Range)" & Chr(13) & _
"Dim Bereich As Range" & Chr(13) & _
"Set Bereich = Range(""I2:BH72"")" & Chr(13) & _
"If Not Intersect(Adresse, Bereich) Is Nothing Then" & Chr(13) & _
"Adresse.Interior.ColorIndex = 4" & Chr(13) & _
"Adresse.Offset(-1, 0).Interior.ColorIndex = 4" & Chr(13) & _
"End If" & Chr(13) & _
"End Sub
"
End With
End Sub
gruss Bernd

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellen-CodeName über Variable ändern
14.11.2006 21:31:30
EtoPHG
Hallo Bernd,
Du bezeichnest Dein Level mit Excel gut - VBA gut
Nach dem was Du hier aufführst auch irgendwie anzunehmen (Du generierst Code mit VBA-Code).
Dann aber ist Deine Frage völlig unverständlich:
...anderes Makro in ein Tabellenblatt einschreibe, dessen Name sich in einer Liste befindet.
Wieso überträgst Du dann den Namen nicht aus dieser Liste in deine Variable Blatt ?
Gruss Hansueli
AW: Tabellen-CodeName über Variable ändern
14.11.2006 21:46:44
Bernd
Hallo Hansueli,
mag sein, das ich meine Fähigkeiten überschätze. Der Hintergrund ist folgender:
Um eine Datei, deren Vorraussetzungen sich öfter ändern, nicht immer anpassen zu müssen muss der Benutzer seine Daten (z.B. Anzahl und Namen der Mitglieder, Anzahl und Namen der benötigten Tabellen und ähnliches) in ein Tabellenblatt eintragen. Durch ein entsprechendes Makro soll dann eine komplette Datei nach seinen Anforderungen erstellt werden. Hierzu muss ich auch unter anderen Makros hinter Tabellenbläter und nicht nur in Modulen ablegen. Da bei jedem einfügen eines Tabellenblattes ein anderer CodeName vergeben wird muss ich die CodeNamen und Tabellennamen anhand der vom Benutzer erstellten Liste ändern.
gruss Bernd
Anzeige
AW: Tabellen-CodeName über Variable ändern
14.11.2006 21:53:35
EtoPHG
Hallo Bernd,
Da bei jedem einfügen eines Tabellenblattes ein anderer CodeName vergeben wird muss ich die CodeNamen und Tabellennamen anhand der vom Benutzer erstellten Liste ändern.

Kannst Du mir bitte erklären, was Du unter dem Codenamen verstehst, bzw. warum Du die Codenamen ändern musst?
Gruss Hansueli
AW: Tabellen-CodeName über Variable ändern
14.11.2006 22:12:02
Bernd
Hallo Hansueli,
möglicherweise mache ich etwas falsch. Unter CodeName verstehe ich den VBA-Namen, der im Editor vor dem Blattnamen (welcher eingeklammert ist)steht. Aber bei mir nimmt die Funktion "VBComponents(Blatt)" keine Variable an. Wenn ich den gewünschten Blattnamen direkt eingebe (z.B. "Tabelle1") funtkioniert alles nach Wunsch.
gruss Bernd
Anzeige
AW: Tabellen-CodeName über Variable ändern
15.11.2006 08:39:30
EtoPHG
Hallo Bernd,
Mal ein Vorschlag:
Statt Code in die Tabellenblätter zu kopieren, könntest Du doch folgende Routine in "DieseArbeitsmappe" einfügen. Der macht für alle Arbeitsblätter das was Du willst.
Solltest Du gewisse ausschliessen, könntest Du diese vorher im Code ausscheiden (wie im Beispiel "Tabelle1" & "Tabelle4") :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.CodeName = "Tabelle1" Or _
Sh.CodeName = "Tabelle4" Then Exit Sub       ' Blätter nicht berücksichtigen
If Not (Intersect(Target, Sh.Range("I2:BH72")) Is Nothing) Then
Target.Interior.ColorIndex = 4
Target.Offset(-1, 0).Interior.ColorIndex = 4
End If
End Sub

Gruss Hansueli
Anzeige
AW: Tabellen-CodeName über Variable ändern
15.11.2006 09:43:25
Bernd
Hallo Hansueli,
der Ansatz ist ganz gut. Ich werde versuchen deinen Vorschlag anzupassen. Denn wenn ich die Routine in "Diese Arbeitsmappe" einfüge bevor die Tabellenblätter erstelt werden, dann werden schon bei der Erstellung alle Felder farblich markiert.
gruss Bernd
AW: Tabellen-CodeName über Variable ändern
14.11.2006 22:16:22
Reinhard
Hallo hansueli,
das weiß ich auch nicht.
Was mich aber viel mehr interessiert, in einer neuen Mappe im Modul1 läuft der Code einaml problemlos durch und man sieht im Editor dass die Namen geändert wurden.
Danach steigt der Code aus mit Laufzeitfehler und ner kryptischen Nummer.
Und wenn man dann Worksheets(2) probiert geht das aaach net :-(
Sub test2()
ThisWorkbook.Worksheets(1).Name = "Geheim2"
'MsgBox Worksheets(1).CodeName
'MsgBox ThisWorkbook.VBProject.VBComponents(Worksheets(1).CodeName).Name
ThisWorkbook.VBProject.VBComponents(Worksheets(1).CodeName).Name = "Geheim1"
End Sub

Gruß
Reinhard
Anzeige
Neuer Thread sei Dir verziehen
14.11.2006 21:39:17
EtoPHG
Hallo Bernd,
In diesem Forum ist es üblich im alten Thread zu bleiben, bis man eine vollständige Antwort hat, oder aber niemand zu einer Lösung kommt. Da Du Dich als Neuling geoutet hast, sei Dir für's erste mal verziehen ;-)
https://www.herber.de/forum/messages/819552.html
Gruss Hansueli
AW: Neuer Thread sei Dir verziehen
14.11.2006 21:48:39
Bernd
Danke für den Hinweis, werde mich in Zukunft danach richten.
gruss Bernd

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige