| |
| Xometry verstärkt sein Angebot für die Blechbearbeitung: Mehr Fertigungsoptionen und bessere Sofort-Angebote, eine Pressemitteilung
|
Autor
|
Thema: Inhalt einer Zelle gleich Tabellenname (1055 mal gelesen)
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 01. Aug. 2014 11:48 <-- editieren / zitieren --> Unities abgeben:
Hallo, benötige hilfe für die Verknüpfung von Zelleninhalten auf Tabelennamen mehrerer Tabellen. Im Beispiel habe ich es hinbekommen den Inhalt der Zelle (A4)bei Änderung die Tabelle1 umbenennen zu lassen. Leider scheitere ich an den andern Tabellenblättern. Kann mich jemand unterstüzen? Danke ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bernd P Ehrenmitglied V.I.P. h.c. cook-general
Beiträge: 3424 Registriert: 07.06.2001
|
erstellt am: 01. Aug. 2014 16:33 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Servus mal ein Anfang A9 ist die Zelle auf die er jetzt reagiert Code: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "A9" Then Exit Sub ActiveSheet.Calculate Befehl End Sub
------------------ <----- Bitte Systeminfo eintragen, warum siehst du hier. "Warum Einfach es geht auch kompliziert". Schöne Grüsse aus der Steiermark Bernd P. Sport ist Mord Rekorde: Scalelist>11727, Fehler>34365, Layerfilter>XXXX Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 01. Aug. 2014 19:35 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
hmm, glaube nicht schön, aber geht aber eigentlich müsste ja vorher abgefragt werden wie der Tabellenname vorher lautete... so wird hier gnadenlos nach dem Worksheets().Index umbenannt. Code: Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) <> "C1" Then Exit Sub ActiveSheet.CalculateDim DeineRange As Range Dim DeinArray(100) As String Set DeineRange = Range("A1:A100") i = 0 For Each c In DeineRange If c <> "" Then DeinArray(i) = c i = i + 1 End If Next For a = 1 To ThisWorkbook.Sheets.Count xx = Worksheets(a).Name Worksheets(a).Name = DeinArray(a - 1) Next a End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 03. Aug. 2014 08:42 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hi Uwe, versuche es mal mit diesem Code im Codemodul von Tabelle1 Code: Option Explicit Dim wksTab As WorksheetPrivate Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address(False, False) Case "A4", "A6", "A8" If IsError(Evaluate("'" & Target & "!A1")) Then wksTab.Name = Target End If End Select End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Select Case Target.Address(False, False) Case "A4", "A6", "A8" If IsError(Evaluate("'" & Target & "'!A1")) Then Else Set wksTab = Worksheets(Target.Value) End If End Select End Sub
Es ist allerdings keine Prüfung vorhanden, dass der Tabellenname nur 30 Zeichen lang und einige Sonderzeichen im Tabellennamen nicht enthalten sein dürcfen. ------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 04. Aug. 2014 07:55 <-- editieren / zitieren --> Unities abgeben:
Hallo ihr drei, danke für eure Mühe. Scheint so, das ich zu doof bin das ganze richtig umzusetzen. Habe den jeweiligen Code in die Tabelle 1 kopiert. @ Bernd P: Die Zelle habe ich angepasst. Leider meckert Excel an, das der Sub "Befehl" nicht da ist. Was muss ich denn da noch reinschreiben? @Thomas Harmening: bei deinem Code passiert gar nichts. @Karin: bei deinem Code bekomme ich einen Laufzeitfehler bei "wksTab.Name = Target" . Code: Objektvariable oder With-Blockvariable nicht festgelegt
. Könntet ihr vielleicht den Code in die Datei einbetten vielleicht verstehe ich es dann auch.
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 04. Aug. 2014 08:15 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 04. Aug. 2014 08:24 <-- editieren / zitieren --> Unities abgeben:
Hallo Thomas, es ist halt noch für am Montagmorgen. Hab dann noch nicht die Augen richtig auf. Jetzt funktioniert das mit dem 1. Tabellenblatt. Wie müsste das jetzt aussehen, wenn ich jetzt noch zwei weitere Tabellenblätter abfangen (umändern) möchte? ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 04. Aug. 2014 08:35 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Zitat:
@Karin: bei deinem Code bekomme ich einen Laufzeitfehler bei "wksTab.Name = Target" . Code: Objektvariable oder With-Blockvariable nicht festgelegt
.
Dann hast du offensichtlich die Variablendeklaration vergessen - also diese Codezeile: Code: Dim wksTab As Worksheet
------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 04. Aug. 2014 10:26 <-- editieren / zitieren --> Unities abgeben:
Hallo Karin, hab die wohl beim kopieren nicht mit aufgezogen. Jetzt funktioniert es, aber bei Änderung von A4 wird Tabelle1 geändert. Soweit so gut Bei Änderung von A6 wird auch Tabelle1 geändert. Sollte eigentlich Tabelle2 sein. Bei Änderung von A8 wird Tabelle3 geändert. Also so wie es sein soll. Kannst du mir den Code ein wenig Aufschlüsseln? Ich verstehe gerade nicht wie die Verknüpfung auf die Tabellen hergestellt werden. Nachtrag: Habe jetzt bemerkt, das nach keiner sinnvollen Reihenfolge die Tabellenblätter geändert werden. ------------------ Gruß Uwe
Auch Catia ist nur ein Mensch! [Diese Nachricht wurde von moppesle am 04. Aug. 2014 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 04. Aug. 2014 11:33 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
Hi Uwe, der Code ändert schon in einer sinnvillen Reihenfolge - und zwar liest er beim Aktivieren der Zellen A4, A6 und A8 aus, was in der Zelle bereits steht (also den jeweiligen Tabellennamen). Bei Änderung des Zellinhaltes dann wird genau die Tabelle umbenannt, deren Name in der Zelle stand - so hatte ich deine Frage verstanden. Anscheinend geht es jedoch darum, dass bei A4 immer nur Tabelle1, bei A6 Tabelle2 und bei A8 Tabelle3 umbenannt werden soll? Ich gehe mal davon aus, dass Tabelle1, Tabelle2, Tabelle3 jeweils die Codenamen der betreffenden Tabellen sind - dann würde der Code wie folgt aussehen: Code: Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address(False, False) Case "A4" If IsError(Evaluate("'" & Target & "'!A1")) Then Tabelle1.Name = Target Case "A6" If IsError(Evaluate("'" & Target & "'!A1")) Then Tabelle2.Name = Target Case "A8" If IsError(Evaluate("'" & Target & "'!A1")) Then Tabelle3.Name = Target End Select End Sub
------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 04. Aug. 2014 11:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Karin, Zitat: Anscheinend geht es jedoch darum, dass bei A4 immer nur Tabelle1, bei A6 Tabelle2 und bei A8 Tabelle3 umbenannt werden soll?
Ja genau so war es gemeint. Jetzt funktioniert es auch. Vielen Dank und Gruß ------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 06. Aug. 2014 15:42 <-- editieren / zitieren --> Unities abgeben:
Hallo nochmal, Ist es möglich die Abfrage nicht auf die Zelle sondern auf den Zellennamen zu machen. Z.B: anstatt "A2" "Projektnummer" Hab mal folgendes probiert, leider ohne Erfolg. Code: Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address(False, False) Case Range("Projektnummer") If IsError(Evaluate("'" & Target & "'!A1")) Then Tabelle1.Name = Target Case "A21" If IsError(Evaluate("'" & Target & "'!A1")) Then Tabelle2.Name = TargetEnd Sub
------------------ Gruß Uwe Auch Catia ist nur ein Mensch! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 395 Registriert: 11.08.2007
|
erstellt am: 07. Aug. 2014 17:49 <-- editieren / zitieren --> Unities abgeben: Nur für moppesle
|
moppesle Ehrenmitglied V.I.P. h.c. Konstrukteur
Beiträge: 3425 Registriert: 28.05.2009 CATIA V5 R19 SP9 WIN 7 64bit
|
erstellt am: 08. Aug. 2014 08:23 <-- editieren / zitieren --> Unities abgeben:
|