Microsoft Excel

Herbers Excel/VBA-Archiv

worksheetSelectionChange | Herbers Excel-Forum


Betrifft: worksheetSelectionChange von: brend
Geschrieben am: 26.01.2010 01:15:07

Hallo,
auch im Online-Archiv bin ich leider nicht fündig geworden.

Wie muss dieser Code geändert weren, dass dann, wenn in Zelle L16 sich die Zahl ändert, die Kostenstelle in Zelle A2 geschrieben wird:

''bei jeder Blattänderung die Kostenstelle, die per Link in Cells 16,12) improtiert wurde, in die Zelle A2 schreiben

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim monat As Integer
  Dim sSrc As String

   With Sheets("Kobla_Planung")
   sSrc = .Cells(16, 12).Formula
   If InStr(sSrc, "[") And InStr(sSrc, "]") Then
   'schreibe die Kostenstelle aus der Formel in die Zelle A2 Cells (2,1):
   .Cells(2, 1) = Mid(sSrc, InStr(sSrc, "[") + 1, InStr(sSrc, "]") - InStr(sSrc, "[") - _  5)
   End If
   End With

  End Sub

Danke Euch!!

  

Betrifft: AW: worksheetSelectionChange von: fcs
Geschrieben am: 26.01.2010 08:28:30

Hallo brend,

probiere es mit einer der beiden folgenden Varianten

Gruß
Franz

'ggf. Aktualisierung nach Zellselektion
Private Alterwert 'Merker für eingetragene Kostenstelle

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim monat As Integer
  Dim sSrc As String
  With Sheets("Kobla_Planung")
    If Alterwert <> .Cells(2, 1) Then
      sSrc = .Cells(16, 12).Formula
      If InStr(sSrc, "[") And InStr(sSrc, "]") Then
        'schreibe die Kostenstelle aus der Formel in die Zelle A2 Cells (2,1):
        .Cells(2, 1) = Mid(sSrc, InStr(sSrc, "[") + 1, InStr(sSrc, "]") - _
            InStr(sSrc, "[") - 5)
        Alterwert = .Cells(2, 1) 'eingetragenen Wert merken
      End If
    End If
  End With
End Sub

'oder
'Aktualisierung nach jeder Neuberechnung des Blattes
Private Sub Worksheet_Calculate()
  Dim monat As Integer
  Dim sSrc As String
  Application.EnableEvents = False
  With Sheets("Kobla_Planung")
    sSrc = .Cells(16, 12).Formula
    If InStr(sSrc, "[") And InStr(sSrc, "]") Then
      'schreibe die Kostenstelle aus der Formel in die Zelle A2 Cells (2,1):
      .Cells(2, 1) = Mid(sSrc, InStr(sSrc, "[") + 1, InStr(sSrc, "]") - _
          InStr(sSrc, "[") - 5)
    End If
  End With
  Application.EnableEvents = True
End Sub



  

Betrifft: AW: worksheetSelectionChange von: brend
Geschrieben am: 27.01.2010 13:18:16

hi fcs,

danke, aber leider aktualisiert Excel bei jedem Klick in das Arbeitsblatt die Zelle A2. Da den Usern aber die Möglichkeit gegeben werden soll, die eingelesene Kostenstelle auch anders zu benennen, sollte eben die Aktualisierung in A2 nur ein Mal erfolgen, und zwar dann, wenn eine neue Kostenstelle eingelesen wird und damit die Zelle (16,12) sich im Wert (= IST-Kosten) auch ändert.

Trotz vielen Dank an deine gute Absicht

Grüße
Brend