winget
Goto Top

Name aus Zelle (A1) Tabellenblatt1 übernehmen für das Tabellenblatt2

Hallo zusammen,
folgender Fall:
Blattname aus der Zelle (z.B. A1 - das selbe Tabellenblatt) funktioniert mit dem folgenden Code wunderbar:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("A1") Then  
ActiveSheet.Name = Range("A1").Text  
End If
End Sub

Jetzt möchte ich quasi das gleiche nur der Unterschied besteht darin, dass ich der Text in Zelle A1 (Tabelle1) eingebe und der Name (Text) soll für für das Tabellenblatt2 übernommen werden.

Ich habe versucht zu tricksen, indem ich ZelleA1-Tabelle1 mit ZelleA1-Tabelle2 verknüft habe. Leider wird der Name nur dann übernommen, wenn ich in ZelleA1-Tabelle2 reingehe und enter drücke.

Vielen Dank im Voraus

Content-Key: 228677

Url: https://administrator.de/contentid/228677

Printed on: April 23, 2024 at 07:04 o'clock

Member: colinardo
colinardo Feb 04, 2014 updated at 15:34:36 (UTC)
Goto Top
Hallo winget,
Code in Tabellenblatt 1:
Private Sub Worksheet_Change(ByVal Target As Range)
    Set changeRange = ActiveSheet.Range("A1")  
    If Not Application.Intersect(changeRange, Target) Is Nothing Then
        If changeRange.Value <> "" Then  
            Worksheets(2).Name = changeRange.Value
        End If
    End If
End Sub
Grüße Uwe
Member: winget
winget Feb 04, 2014 at 18:52:30 (UTC)
Goto Top
Super danke...funktioniert!
Member: winget
winget Feb 05, 2014 updated at 09:58:51 (UTC)
Goto Top
Hi Uwe,
wie gesagt funktioniert super und es hat mich weiter geholfen.
Ich habe für mich weiterentwickelt > bezogen auf zwei Zellen, mehrere Arbeitsblätter und der Fall, dass die Zellen leer sind.

Private Sub Worksheet_Change(ByVal Target As Range)
    Set changeRange = ActiveSheet.Range("A1")  
    Set changeRange1 = ActiveSheet.Range("A2")  
    If Not Application.Intersect(changeRange, Target) Is Nothing Then
        If changeRange.Value <> "" Then  
            Worksheets(2).name = "Test1" + "_" + changeRange.Value + "_" + changeRange1.Value  
            Worksheets(3).name = "Test2" + "_" + changeRange.Value + "_" + changeRange1.Value  
            Worksheets(4).name = "Test3" + " " + changeRange.Value + "_" + changeRange1.Value  
        Else
            Worksheets(2).name = "Test1" + "_" + "1" + "_" + changeRange1.Value  
            Worksheets(3).name = "Test2" + " " + "2" + "_" + changeRange1.Value  
            Worksheets(4).name = "Test3" + "_" + "3" + "_" + changeRange1.Value  
        End If
    End If
    
    If Not Application.Intersect(changeRange1, Target) Is Nothing Then
        If changeRange1.Value <> "" Then  
            Worksheets(2).name = "Test1" + "_" + changeRange.Value + "_" + changeRange1.Value  
            Worksheets(3).name = "Test2" + "_" + changeRange.Value + "_" + changeRange1.Value  
            Worksheets(4).name = "Test3" + "_" + changeRange.Value + "_" + changeRange1.Value  
        Else
            Worksheets(2).name = "Test1" + "_" + changeRange.Value + "_" + "1"  
            Worksheets(3).name = "Test2" + "_" + changeRange.Value + "_" + "2"  
            Worksheets(4).name = "Test3" + "_" + changeRange.Value + "_" + "3"  
        End If
    End If
    
    
End Sub

Viele Grüße
Paul
Member: colinardo
colinardo Feb 05, 2014 updated at 09:47:59 (UTC)
Goto Top
Zeile 17 sollte wahrscheinlich so lauten:
  If changeRange1.Value <> "" Then 
Der Test ist dazu da eine Situation abzufangen in der der User den Inhalt der betroffenen Zelle löscht ...
Grüße Uwe
Member: winget
winget Feb 05, 2014 at 10:02:15 (UTC)
Goto Top
Natürlich face-smile
Super Augen!!! face-smile