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-ID: 228677

Url: https://administrator.de/forum/name-aus-zelle-a1-tabellenblatt1-uebernehmen-fuer-das-tabellenblatt2-228677.html

Ausgedruckt am: 27.12.2024 um 19:12 Uhr

colinardo
colinardo 04.02.2014 aktualisiert um 16:34:36 Uhr
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
winget
winget 04.02.2014 um 19:52:30 Uhr
Goto Top
Super danke...funktioniert!
winget
winget 05.02.2014 aktualisiert um 10:58:51 Uhr
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
colinardo
colinardo 05.02.2014 aktualisiert um 10:47:59 Uhr
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
winget
winget 05.02.2014 um 11:02:15 Uhr
Goto Top
Natürlich face-smile
Super Augen!!! face-smile