Microsoft Excel

Herbers Excel/VBA-Archiv

Ansicht nach Arbeitsblatt wechsel

Betrifft: Ansicht nach Arbeitsblatt wechsel von: wolfgang
Geschrieben am: 17.02.2008 19:53:25

Guten Abend,

ich habe folgendes Problem, in einem Tabellenblatt wird an verschiedenen Tagen
ein "x" eingegeben, was, durch ein Makro, einen Sprung in ein anderes Tabellen-
blatt (in Spalte C) bewirkt.

Dass Problem ist nun, Spalte A und B sind am linken Rand "rausgeschoben",
sollten aber sichtbar sein, da in Spalte A das Datum (a3 = 01.01.2008 bis A369
= 31.12.2008) steht, in Spalte B (manchmal) Hinweise.

Ggf. handelt es sich nur um einen Fehler im Makro, siehe unten ???

Die zweite Frage hierzu, gibt es eine Möglichkeit (z.B. in Spalte E) einen "mitlau-
fenden" Button als Rücksprung in das Herkunftsdatenblatt (jeder Monat hat ein
Blatt) zu deklarieren??

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim lngR As Variant
If Sh.Name <> "Anmerkungen" Then
If Target.Column = 22 And Target.Count = 1 Then
If Target = "x" Then
If Sh.Cells(Target.Row, 1) <> "" Then
If IsDate(Cells(Target.Row, 1)) Then
lngR = Application.Match(Cells(Target.Row, 1), Sheets("Anmerkungen").Range("A1:A368"), 0)
If IsNumeric(lngR) Then Application.Goto Sheets("Anmerkungen").Cells(lngR, 3), True
End If
End If
End If

Danke für jede Hilfe

wolfgang

  

Betrifft: AW: Ansicht nach Arbeitsblatt wechsel von: fcs
Geschrieben am: 18.02.2008 09:56:45

Hallo Wolfgang,

mit folgenden Anpassungen geht's:

1. deinen Code unter "DieseArbeitsmappe" anpassen
2. allgemeines Modul mit dem Code für die Schaltfläche anlegen
3. Im Blatt Anmerkungen eine Schaltfläche anlegen (aus Symbolleiste Formular) und das Makro "zumHerkunftsblatt" zuweisen.

Gruß
Franz

'##Prozedur in DieseArbeitsmappe

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
  Dim lngR As Variant
  Dim wksAnm As Worksheet
  Set wksAnm = Worksheets("Anmerkungen")
  If Sh.Name <> "Anmerkungen" Then
    If Target.Column = 22 And Target.Count = 1 Then
      If Target = "x" Then
        If Sh.Cells(Target.Row, 1) <> "" Then
          If IsDate(Cells(Target.Row, 1)) Then
            lngR = Application.Match(Cells(Target.Row, 1), wksAnm.Range("A1:A368"), 0)
            If IsNumeric(lngR) Then
              'Herkunftsblatt merken
              Set wksHerkunft = Sh
              'Schaltfläche aus Symbolleiste Formular positionieren
              wksAnm.Shapes("Schaltfläche 1").Top = wksAnm.Cells(lngR, 5).Top
              wksAnm.Shapes("Schaltfläche 1").Left = wksAnm.Cells(lngR, 5).Left
              
              Application.Goto wksAnm.Cells(lngR, 3), True
              ActiveWindow.ScrollColumn = 1
            End If
          End If
        End If
      End If
    End If
  Else
    Set wksHerkunft = Nothing
  End If
End Sub


'### in einem allgemeinen Modul
'Prozedur per Schaltfläche im Blatt Anmerkungen ausführen/aufrufen
Public wksHerkunft As Worksheet

Sub zumHerkunftsblatt()
  If Not wksHerkunft Is Nothing Then
    wksHerkunft.Activate
    Set wksHerkunft = Nothing
  End If
End Sub




  

Betrifft: AW: Ansicht nach Arbeitsblatt wechsel von: wolfgang
Geschrieben am: 18.02.2008 10:56:08

Erst mal schönen Dank,

werde es dann ausprobieren.

wolfgang


 

Beiträge aus den Excel-Beispielen zum Thema "Ansicht nach Arbeitsblatt wechsel"