Bitte lass die bei Herber nicht im Dunkeln darüber, dass du hier auch einen Beitrag eröffnet hast. Wäre für die und Dich nur ärgerlich.
'Modul: DieseArbeitsmappe / ThisWorkbook
Option Explicit
'Dieses Ereignis tritt immer dann ein, wenn auf einem Blatt
'der Inhalt einer Zelle (oder mehrerer) geändert wurde.
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
'Name des Blattes muss mit 'MA' beginnen
If Left$(Sh.Name, 2) = "MA" Then
If Target.Cells.Count > 1 Then
'falls Target mehrere Zellen darstellt,
'dann reduzieren wir das auf die erste Zelle
Set Target = Target.Cells(1)
End If
'Spalte B?
If Target.Column = 2 Then
'mind. in Zeile 2 oder darunter
If Target.Row >= 2 Then
Dim rngResult As Excel.Range
Dim strID As String
Dim strBuddy As String
Dim strThema As String
'Zelle in Buddy-Spalte; liegt direkt links neben der Target-Zelle
strID = Target.Offset(0, -1).Value
'Zelle in Thema-Spalte; ist Target selbst (siehe If's oben)
strThema = Target.Value
'Zelle in Buddy-Spalte; liegt direkt rechts neben der Target-Zelle
strBuddy = Target.Offset(0, 1).Value
'Thema kann/muss nur übertragen werden, wenn
' * ein Buddy verhanden ist
' * die ID bekannt ist
If strBuddy <> "" And strID <> "" Then
On Error Resume Next
Set rngResult = Worksheets(strBuddy).Columns("A").Find( _
What:=strID, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByColumns, _
MatchCase:=False)
On Error GoTo 0
If Not rngResult Is Nothing Then
'Ereignisse AUS (sonst feuert die nächste Zeile 'Workbook_SheetChange')
Application.EnableEvents = False
'Buddy-Spalte liegt direkt rechts neben der Zelle 'rngResult'
rngResult.Offset(0, 1).Value = strThema
'Ereignisse AN
Application.EnableEvents = True
Call MsgBox("Themen-Bezeichnung wurde erfolgreich bei Buddy '" & strBuddy & "' aktualisiert.", _
vbInformation, _
"WOhOoo~!")
Else
Call MsgBox("Die Umbenennung des Themas konnte nicht auf den Buddy übertragen werden.", _
vbExclamation, _
"Achtung!")
End If
End If
End If 'Target.Row >= 2
End If 'Target.Column = 2 'Spalte B
End If 'Left$(Sh.Name, 2) = "MA"
End Sub
|