ganz dumme Frage:
ich würde mit Target.Row auch gerne die zweite Zeile ansprechen, aber irgendwie wird es nicht erkannt.
Target.Row = 1 funktioniert , aber sobald ich Target.Row = 2 nutze funktioniert es nicht (bekomme auch keinen Fehler).
Danke.
Dim lngZeile As Long
lngZeile = Target.Row + 1
cu
If Target.Row = 1 Then
ThisRow = Target.Row
cb = Target.Value
Application.Workbooks("Mappe1").Worksheets(1).Name = cb
If Target.Row + 1 Then
ThisRow = Target.Row
cb = Target.Value
Application.Workbooks("Mappe1").Worksheets(2).Name = cb
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then Worksheets(Target.Row).Name = Target
End Sub
cu
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cb As String
If Target.Column = 1 Then
cb = Target.Value
If Application.Workbooks("Mappe1").Worksheets.Count >= Target.Row Then
Application.Workbooks("Mappe1").Worksheets(Target.Row).Name = cb
End If
End If
End Sub
Meinst Du so etwas? dann wird in dein x. Tabellenblatt der Wert aus Zeile x Spalte A der Wert übernommen.
cb=Target.Value
den Fehler "Typen unverträglich"
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cb As String
If Target.Column = 1 and Target.Value "" Then
cb = Target.Value
If Application.Workbooks("Mappe1").Worksheets.Count >= Target.Row Then
Application.Workbooks("Mappe1").Worksheets(Target.Row).Name = cb
End If
End If
End Sub
mit fehlerabfrage ob was drin steht
if len(cb) >0 then
dein code
end if
Gruß
If Target.Column = 1 Then
cb = Target.Value
If Len(cb) > 0 Then
If Application.Workbooks("Mappe1.xlsm").Worksheets.Count >= Target.Row Then
Application.Workbooks("Mappe1.xlsm").Worksheets(Target.Row).Name = cb
End If
End If
End If
End Sub
Habe ich es falsch eingebaut? bekomme den Fehler immer noch.If Target.column = 1 Then
cb = Target.Value
ThisRow = Target.Row
If ThisRow
Gruß DanielUm die Target.Row-Eigenschaft in Excel VBA zu verwenden, folge diesen Schritten:
Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.
Erstelle ein neues Modul:
Füge den folgenden Code ein:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Dim cb As String
cb = Target.Value
If Application.Workbooks("Mappe1").Worksheets.Count >= Target.Row Then
Application.Workbooks("Mappe1").Worksheets(Target.Row).Name = cb
End If
End If
End Sub
Speichere dein Projekt und schließe den Editor.
Teste die Funktion: Ändere einen Wert in der ersten Spalte (A1, A2, A3) deiner Tabelle, um zu sehen, ob sich der Tabellenname entsprechend ändert.
Fehler: "Typen unverträglich"
Target.Value mehrere Zellen umfasst, was ein Array zurückgibt. cb als Variant und nicht als String.Dim cb As Variant
Fehler: Die Zeile wird nicht geändert
If Target.Row = 1 Then nicht erfüllt.Eine alternative Methode besteht darin, den Worksheet_SelectionChange-Ereignis zu verwenden, wenn du nur die Auswahl einer Zelle verfolgen möchtest:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row > 1 Then
MsgBox "Du hast Zeile " & Target.Row & " gewählt."
End If
End Sub
Diese Methode gibt eine Nachricht aus, wenn eine Zeile unterhalb der ersten Zeile ausgewählt wird.
Umbenennung von Arbeitsblättern:
Ändern des Arbeitsblattnamens basierend auf Eingaben:
Hier ist ein Beispielcode, der dies demonstriert:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
Dim cb As Variant
cb = Target.Value
If Len(cb) > 0 Then
If Application.Workbooks("Mappe1").Worksheets.Count >= Target.Row Then
Application.Workbooks("Mappe1").Worksheets(Target.Row).Name = cb
End If
End If
End If
End Sub
Verwende Fehlerbehandlung: Implementiere On Error Resume Next, um den Code robuster zu gestalten und unerwartete Fehler zu vermeiden.
Nutze Target.Cells: Wenn du mit mehreren Zellen arbeitest, kannst du gezielt auf bestimmte Zellen zugreifen, z.B. Target.Cells(1, 1) für die erste Zelle im Zielbereich.
Verwende If Target.Count = 1: Dies stellt sicher, dass nur eine Zelle bearbeitet wird, bevor du Operationen daran durchführst.
1. Frage
Wie kann ich überprüfen, in welcher Spalte ich mich befinde?
Antwort: Du kannst die Target.Column-Eigenschaft verwenden, um die aktuelle Spalte zu bestimmen.
2. Frage
Kann ich Target.Row in einer Schleife verwenden?
Antwort: Ja, du kannst For Each verwenden, um durch alle Zellen im Target-Bereich zu iterieren und ihre Zeilen zu überprüfen.
3. Frage
Wie kann ich sicherstellen, dass mein Arbeitsblatt existiert, bevor ich den Namen ändere?
Antwort: Verwende die If Worksheets.Count-Bedingung, um zu überprüfen, ob das Arbeitsblatt existiert, bevor du versuchst, seinen Namen zu ändern.