Microsoft Excel

Herbers Excel/VBA-Archiv

Srollen im nicht aktiven Fenster

Betrifft: Srollen im nicht aktiven Fenster von: Buddy
Geschrieben am: 01.10.2014 09:25:42

Hallo zusammen,

habe wieder mal ein Problem.

Ich habe mir über ein Makro die Möglichkeit geschaffen, aus einer Liste einzelne Zeilen in ein neues Tabellenblatt zu kopieren, so dass ich eine neue Liste zusammenstellen kann. Damit der jeweilige User die übersicht behält, habe ich dafür die Datei dupliziert über "alle anordnen" nebeneinander gestellt.
Leider wird aber der sichtbare Bereich dieser neu zusammengestellten Liste nicht automatisch hochgescrollt. Ist der sichtbare Bereich voll, werden neue Zeilen zwar darunter gesetzt, man sieht es aber nciht. Wie bekomme ich das hin? Hier mein bisheriger Code:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 'Inhalt der Zellen aus dem Bereich b:f unter Doppelklick übertragen nach
 'Tabelle2 erste freie zeile
 
  If Target.Column = 2 And Target.Row > 11 And Target.Row < 1000 Then
  If Cells(7, 2) = "" Then
fehlerhafte_Eingabe.Show
 
 Else
  With Sheets("Tabelle2")
   .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).Resize(1, 5).Value = _
     Range("B" & Target.Row & ":F" & Target.Row).Value
     'Rows Count, 2 = 2.Zelle in der Reihe nächsten freien Zeile,
     'Offset(1,0) = 1.leere zeile,ohne Verschiebung nach rechts
     'Resize (1,5)= Anzahl zu kopierender Zellen untereinander(1)und nebeneinander (5)
 End With
 End If
 End If
 'Kopiermodus beenden
 Application.CutCopyMode = False
 'Doppelklick abbrechen
 Cancel = True
 End Sub
Wie man sieht, wird das 2. Tabellenblatt gar nicht aktiviert, sondern nur mit dem zu kopierenden Inhalt gefüllt. Wie bekomme ich es dennoch hin, dass der sichtbare Bereich immer die aktuellsten Zeilen zeigt?

Für Ideen wäre ich sehr dankbar.

Viele Grüße
Buddy

  

Betrifft: AW: Srollen im nicht aktiven Fenster von: fcs
Geschrieben am: 01.10.2014 11:22:03

Hallo Buddy,

dann muss das Makro kurzeitig das andere Fenster aktivieren, um den Scrollvorgang auszuführen.

Die 10 in den zusätzlichen Zeilen musst du ggf. anpassen. Dies ist die Anzahl Datenzeilen, die ggf. im 2. Fenster angezeigt werden.

Gruß
Franz

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim WindowName As String, Zeile As Long
 'Inhalt der Zellen aus dem Bereich b:f unter Doppelklick übertragen nach
 'Tabelle2 erste freie zeile
 
  If Target.Column = 2 And Target.Row > 11 And Target.Row < 1000 Then
  If Cells(7, 2) = "" Then
  fehlerhafte_Eingabe.Show
 
 Else
  With Sheets("Tabelle2")
   .Cells(.Rows.Count, 2).End(xlUp).Offset(1, 0).Resize(1, 5).Value = _
     Range("B" & Target.Row & ":F" & Target.Row).Value
     'Rows Count, 2 = 2.Zelle in der Reihe nächsten freien Zeile,
     'Offset(1,0) = 1.leere zeile,ohne Verschiebung nach rechts
     'Resize (1,5)= Anzahl zu kopierender Zellen untereinander(1)und nebeneinander (5)
    Zeile = .Cells(.Rows.Count, 2).End(xlUp).Row
  End With
  WindowName = ActiveWindow.Caption
  Select Case Right(WindowName, 2)
    Case ":1"
      Application.Windows(ActiveWorkbook.Name & ":2").Activate
      Sheets("Tabelle2").Activate
      ActiveWindow.ScrollRow = IIf(Zeile > 10, Zeile - 10, 1)
      Application.Windows(ActiveWorkbook.Name & ":1").Activate
    Case ":2"
      Application.Windows(ActiveWorkbook.Name & ":1").Activate
      Sheets("Tabelle2").Activate
      ActiveWindow.ScrollRow = IIf(Zeile > 10, Zeile - 10, 1)
      Application.Windows(ActiveWorkbook.Name & ":2").Activate
    Case Else
  End Select
 End If
 End If
 'Kopiermodus beenden
 Application.CutCopyMode = False
 'Doppelklick abbrechen
 Cancel = True
 End Sub



  

Betrifft: AW: Scrollen im nicht aktiven Fenster von: Buddy
Geschrieben am: 01.10.2014 13:05:40

Hallo Franz,

vielen lieben Dank für deine schnelle Rückmeldung. Klappt hervorragend.

Das Problem treibt mich schon seit zwei Tagen rum. Jetzt kann ich wieder ruhig schlafen :O)

Gruß
Buddy


 

Beiträge aus den Excel-Beispielen zum Thema "Srollen im nicht aktiven Fenster"