Registriert seit: 10.08.2016
	
 Version(en): 2010
	 
 
	
	
		Hallo,
  bin komme im Moment nicht voran. Und zwar habe ich eine Tabellenseite z.B. Tabelle 1
  In dieser Tabelle 1 will ich in eine Zeile z.B. B3, B4, B5 je einen Namen eintragen z.B. Produktion, Kosten, Gewinn. Diese Name sollen nun automatisch den Reiter "Tabelle 2" in "Produktion" umbenennen. Tab 3 in Kosten Tab 4 in Gewinn
  Danach sollen die Namen automatisch übernommen werden. Wenn ich in Zelle B3 den Namen von Produktion in Entwicklung ändere, so sollte auch der Tabellenname automatisch von Produktion in Entwicklung geändert werden.
  Kann mir da jemand helfen? Umgekehrt ist ja natürlich einfacher, jedoch braue ich es so rum.
	 
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 12.10.2014
	
 Version(en): 365 Insider (64 Bit)
	 
 
	
	
		Moin! Zitat:In dieser Tabelle 1 will ich in eine Zeile z.B. B3, B4, B5 je einen Namen eintragen Das ist eine Spalte.  :21:  Geht nur mittels VBA. Nimm ein Worksheet_Change. Bedenke, dass es beim Tabellennamen Restriktionen gibt, die Du abfangen musst. Zitat:Umgekehrt ist ja natürlich einfacher, Jo mittels Verweis auf Zellen in den Sheets: =TEIL(ZELLE("Dateiname";A1);FINDEN("]";ZELLE("Dateiname";A1))+1;31)Gruß Ralf
	  
	
	
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag.  Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
 
	
	
 
 
	
	
	
		
	Registriert seit: 10.08.2016
	
 Version(en): 2010
	 
 
	
		
		
		23.08.2016, 11:02 
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2016, 14:22 von Rabe.
 Bearbeitungsgrund: Code ohne Format in Code-Tags
)
		
	 
	
		Moin, so hatte ein wenig Urlaub und komme nun auf das Problem zurück. Erstmals danke für den Tipp! Habe nun folgendes Probiert: Code: Sub Worksheet_Change(ByVal Target As Excel.Range)    If Target.Address = "$A$1" Then       Name = Range("A1")    End If End Sub
 Das funktioniert auch super. Jedoch müsste ich aus der Zelle A2 und A3 usw. weitere Tabellennamen erstellen. Ein weiterer Tipp? Die Namen in den Tabellen stehen IMMER in der ersten Tabelle.
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 10.04.2014
	
 Version(en): 2016 + 365
	 
 
	
		
		
		23.08.2016, 14:38 
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2016, 14:38 von Rabe.
 Bearbeitungsgrund: diverse Fehler korrigiert
)
		
	 
	
		 (23.08.2016, 11:02)Wow4ik schrieb:  Das funktioniert auch super. Jedoch müsste ich aus der Zelle A2 und A3 usw. weitere Tabellennamen erstellen. Ein weiterer Tipp? Die Namen in den Tabellen stehen IMMER in der ersten Tabelle. Es gibt die Funktion "With Worksheet()". Wenn Du da eine Schleife drumrum setzt, geht es: Code: Option Explicit
  Private Sub Worksheet_Change(ByVal Target As Range)    Dim i As Integer    For i = 1 To Worksheets.Count       With Sheets("Tabelle" & i)          If Target.Address = "$A$1" Then             .Name = Range("A" & i)          End If       End With    Next i End Sub
 Evtl. sollte der Bereich der Target-Adresse noch auf den gesamten belegten Namensbereich ausgeweitet werden.
	  
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 10.08.2016
	
 Version(en): 2010
	 
 
	
	
		Bekomme da leider eine Fehlermeldung vom Compiler: Fehler beim Kompilieren: Deklaration der Prozedur entspricht nicht der Beschreibung eines Ergebnisses oder einer Prozedur mit demselben Namen
 
  ??? Sorry, bin VBA-Neuling
	 
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 14.04.2014
	
 Version(en): Office 2013/2016/2019/365
	 
 
	
	
		Hi, Code: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) 'bin komme im Moment nicht voran. 'Und zwar habe ich eine Tabellenseite z.B. Tabelle 1 ' 'In dieser Tabelle 1 will ich in eine Zeile z.B. B3, B4, B5 je einen Namen eintragen z.B. Produktion, Kosten, Gewinn. 'Diese Name sollen nun automatisch den Reiter "Tabelle 2" in "Produktion" umbenennen. 'Tab 3 in Kosten 'Tab 4 in Gewinn ' 'Danach sollen die Namen automatisch übernommen werden. Wenn ich in Zelle B3 den Namen von Produktion in Entwicklung ändere, 'so sollte auch der Tabellenname automatisch von Produktion in Entwicklung geändert werden. Dim rng_R As Range Set rng_R = Range("B3:B5") If Not Intersect(Target, rng_R) Is Nothing Then     For Each Target In Intersect(Target, rng_R)         On Error Resume Next         Sheets(Target.Row - 1).Name = Target         If Err.Number <> 0 Then MsgBox Target.Value & " ist kein gültiger Name oder Blatt ist schon vorhanden"         Err.Number = 0     Next End If End Sub
  
 
  Tabellen_benennen.xlsm (Größe: 19,02 KB / Downloads: 29)
	  
	
	
lg Chris Feedback nicht vergessen.  3a2920576572206973742064656e20646120736f206e65756769657269672e
 
	
	
 
 
	
	
	
		
	Registriert seit: 10.08.2016
	
 Version(en): 2010
	 
 
	
	
		Vielen Dank!!!
  Es geht schon in die richtige Richtung. Wenn ich in B3 etwas eingebe benennt er Tabelle 2 in diesen Text um(sollte jedoch bereits ab Tabelle 1 beginnen und nicht erst bei Tabelle 2, Wert von B4 wird in Tabelle 3 übernommen. Wenn ich jedoch etwas in B5 schreibe kommt die Fehlermeldung mit der MsgBox :  
  If Err.Number <> 0 Then MsgBox Target.Value & " ist kein gültiger Name oder Blatt ist schon vorhanden"
	 
	
	
	
	
 
 
	
	
	
		
	Registriert seit: 14.04.2014
	
 Version(en): Office 2013/2016/2019/365
	 
 
	
		
		
		23.08.2016, 15:45 
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2016, 15:45 von chris-ka.)
		
	 
	
		Hi, entspricht aber jetzt nicht deiner ersten Angabe :) Zitat:'In dieser Tabelle 1 will ich in eine Zeile z.B. B3, B4, B5 je einen Namen eintragen z.B. Produktion, Kosten, Gewinn.
  'Diese Name sollen nun automatisch den Reiter "Tabelle 2" in "Produktion" umbenennen. dann halt -2 ;) Code: Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim rng_R As Range, str_Mes As String Set rng_R = Range("B3:B5") If Not Intersect(Target, rng_R) Is Nothing Then     For Each Target In Intersect(Target, rng_R)         On Error Resume Next         Sheets(Target.Row - 2).Name = Target         If Err.Number <> 0 Then              str_Mes = IIf(Target.Value = "", "'Zelle hat keine Bezeichnung'", Target.Value)             MsgBox "Tabelle" & Target.Row - 2 & " " & str_Mes & " ist kein gültiger Name oder Blatt ist schon vorhanden"             GoTo errExit         End If     Next End If errExit: End Sub
  
	 
	
	
lg Chris Feedback nicht vergessen.  3a2920576572206973742064656e20646120736f206e65756769657269672e
 
	
	
 
	  
	Folgende(r) 1 Nutzer sagt Danke an chris-ka für diesen Beitrag:1 Nutzer sagt Danke an chris-ka für diesen Beitrag 28
	  • Wow4ik
 
 
 
	
	
	
		
	Registriert seit: 10.04.2014
	
 Version(en): 2016 + 365
	 
 
	
	
		Hi,  (23.08.2016, 14:45)Wow4ik schrieb:  Bekomme da leider eine Fehlermeldung vom Compiler: Fehler beim Kompilieren: Deklaration der Prozedur entspricht nicht der Beschreibung eines Ergebnisses oder einer Prozedur mit demselben Namen ich hatte gestern das Makro nochmal geändert und die Fehler eliminiert. Wenn der Fehler immer noch auftritt, dann hast Du schon ein Worksheet_Change-Ereignis in Deinem File.
	  
	
	
	
	
 
	  
	Folgende(r) 1 Nutzer sagt Danke an Rabe für diesen Beitrag:1 Nutzer sagt Danke an Rabe für diesen Beitrag 28
	  • Wow4ik
 
 
 
	
	
	
		
	Registriert seit: 10.08.2016
	
 Version(en): 2010
	 
 
	
	
		Hey, 
  danke erst einmal. Es funktioniert bedingt. Sicher funktioniert es super, nur bei mir nicht so ganz wie ich es will.
  Die Zellen sind in der Tabelle "Info" abgelegt, diese ist als Tabelle 18 gekennzeichnet(wurde hin und her verschoben). Es betrifft die Zellen F20-F35. Wenn ich mir den Code hinzüfüge, in Tabelle 18 --> Tabelle "Info" und den Code abändere in F20-F35 statt B3-B5(wobei F25 keine Daten beinhaltet), so übernimmt er mir die Daten auch automatisch, jedoch nur für die 1 und 2 Zelle, bei den restlichen bekomme ich den Fehlercode:
 
  ist kein gültiger Name oder Blatt ist schon vorhanden
  Kann es damit zusammenhängen, das die Tabellen nicht in Reihe sind. Als erstes kommt z.B. Tabelle 18, dann 2, 6,9,22 usw??? Kann ich diese nachträglich umbennen?
  Ach ja korrigiere meine Aussage. Die Infos sollen doch auch der erste Tabelle(18) entnommen werden, jedoch erst in die 2. überschrieben werden.
	 
	
	
	
	
 
 
	 
 |