durch eure Hilfe hier habe ich meine Vorstellungen fast erreicht, jedoch habe ich Probleme, da der Code irgendwo ein Problem hat.
Meine Tabelle geht über mehrere Blätter und enthält die verschiedensten Formeln.
Wenn ich nun in der Spalte H meine Werte eingeben möchte geht dies in einer Test-Tabelle einwandfrei. Wenn ich den Code dann in meine Originaltabelle einfüge gibt es Probleme. Wenn ich einen Wert löschen möchte kommt die Auswahlbox mehrmals wieder. Per Nein komm ich gar nicht mehr raus, aber mit 4-maligem Ja komme ich aus der Auswahlbox wieder raus.
Der Code soll folgendes machen:
Wenn ich in Zelle N1 einen Wert eingebe, soll das Arbeitsblatt anhand dieses Wertes umbenannt werden.
Desweiteren:
Ich gebe Werte in Spalte H ein und der Code soll überwachen, dass eben dieser Wert in den anderen Blättern in Spalte H nicht vorkommt. Befindet sich dieser Wert schon in einem Arbeitsblatt in Spalte H soll der Hinweis erfolgen: "Achtung bereits in Tabelle"X" enthalten, wollen Sie dies zulassen?"
VBA-Code in jedem Arbeitsblatt:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Address(0, 0) = "N1" Then
ActiveSheet.Name = Target.Text
ElseIf Target.Column = 8 Then
Call Doppelte_suchen(Target.Row, Target.Column)
End If
End Sub
VBA-Code in Modul:
Sub Doppelte_suchen(z As Integer, s As Integer)
Dim ws As Worksheet, wsNameA As String
Dim Lz As Integer, i As Integer
Dim Eingabe As String, Aktiv As Object
Dim Weiter
Set Aktiv = ThisWorkbook.ActiveSheet
wsNameA = ThisWorkbook.ActiveSheet.Name
Eingabe = ThisWorkbook.ActiveSheet.Cells(z, s)
For Each ws In ActiveWorkbook.Worksheets
Lz = ws.Cells(Rows.Count, 8).End(xlUp).Row
For i = 1 To Lz
If Eingabe "" Then
If ws.Cells(i, 8) = Eingabe Then
If ws.Name wsNameA Then
Weiter = MsgBox("Achtung, Eintrag bereits in " & ws.Name & _
" vorhanden. Wollen Sie dies zulassen?", vbYesNo)
If Weiter = vbNo Then
Aktiv.Cells(z, 8) = ""
Aktiv.Cells(z, 8).Select
Exit Sub
End If
End If
End If
End If
Next i
Next ws
Lz = Aktiv.Cells(Rows.Count, 8).End(xlUp).Row
For i = 1 To Lz - 1
If Aktiv.Cells(i, 8) = Eingabe Then
Weiter = MsgBox("Achtung, Eintrag bereits in " & ActiveSheet.Name & _
" vorhanden. Wollen Sie dies zulassen?", vbYesNo)
If Weiter = vbNo Then
Aktiv.Cells(z, 8) = ""
Aktiv.Cells(z, 8).Select
Exit Sub
End If
End If
Next i
End Sub
Bin für jeden Hinweis dankbar
Gruß Paul