PDA

Vollständige Version anzeigen : Hochscrollen nach Zeilen verbergen


Torsten1
21.07.2012, 09:22
Hallo

Ich habe folgenden Code:
Sub SP_AN()
Dim oSH As Sheets 'AN
Dim oWs As Worksheet
Sheets("Jan").Select
If Rows("48:95").Hidden = True Then
Sheets("Blatt").Select
Range("N1") = 2
Call Blattschutz_aus
Set oSH = Sheets(Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"))
For Each oWs In oSH
oWs.Rows("48:95").Hidden = False
oWs.Rows("1:47").Hidden = True
Next oWs
Call Blattschutz_ein
MsgBox "Umschaltung erfolgt !", , "HINWEIS"
Else
Sheets("Jan").Select ' um diesen Abschnitt geht es
If Rows("48:95").Hidden = False Then 'SP
Sheets("Blatt").Select
Range("N1") = 1
Call Blattschutz_aus
Set oSH = Sheets(Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"))
For Each oWs In oSH
oWs.Rows("48:95").Hidden = True
oWs.Rows("1:34").Hidden = False
Next oWs
MsgBox "Umschaltung erfolgt !", , "HINWEIS"
End If
End If
End Sub
Wenn die Zeilen 48-95 ausgeblendet werden, soll das Blatt ab "A1" sichtbar sein.
Also die Zeilen 1-34. Leider wird mir die "A96" angezeigt, sodass ich erstmal
nach der Umstellung von AN auf SP auf allen 12 Blättern hochscrollen muss.
Ich habe es schon mit "ActiveWindow.SmallScroll Down:=-34" versucht,
allerdings ohne Erfolg.

Kann ggf. jemand helfen, wo ich was in dem Code ändern/ergänzen muß ?

Nette Grüße
Torsten

Hajo_Zi
21.07.2012, 09:24
Hallo Torsten,

Application.Goto Reference:=Range("A1"), scroll:=True

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm" onclick="window.open(this.href);return false"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

Torsten1
21.07.2012, 09:46
Vielen Dank für die Antwort.
Aber WO muss ich das einbauen ?

Nette Grüße
Torsten

Hajo_Zi
21.07.2012, 09:53
an die Stelle wo Du hochspringen wolltest. Ich hätte mal vermutet vor End Sub.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Torsten1
21.07.2012, 10:01
Haut nicht hin ! Bleibt, wie es ist !:weinen:

Nette Grüße
Torsten

Hajo_Zi
21.07.2012, 10:10
Hallo Torsten,

wenn ich die Zeile ausführte wir A1 links oben angezeigt.
Ich baue keine Datei nach, die Zeit hat schon jemand investiert. Ein Link zur Datei wäre nicht schlecht.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Torsten1
21.07.2012, 10:33
Habe mich auf Umwegen beholfen, da ich mit "Arrays" nicht klar komme...

Sub SP_AN()
Dim oSH As Sheets
Dim oWs As Worksheet
Sheets("Jan").Select
If Rows("48:95").Hidden = True Then 'AN
Sheets("Blatt").Select
Range("N1") = 2
Call Blattschutz_aus
Set oSH = Sheets(Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"))
For Each oWs In oSH
oWs.Rows("48:95").Hidden = False
oWs.Rows("1:47").Hidden = True
Next oWs
Call Blattschutz_ein
MsgBox "Umschaltung erfolgt !", , "HINWEIS"
Else
Sheets("Jan").Select
If Rows("48:95").Hidden = False Then 'Schichtplan
Sheets("Eingabe").Select
Range("N1") = 1
Call Blattschutz_aus
Set oSH = Sheets(Array("Jan", "Feb", "Mrz", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez"))
For Each oWs In oSH
oWs.Rows("48:95").Hidden = True
oWs.Rows("1:34").Hidden = False
Next oWs
Application.ScreenUpdating = False
Sheets("Jan").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Feb").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Mrz").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Apr").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Mai").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Jun").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Jul").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Aug").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Sep").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Okt").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Nov").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Dez").Select
ActiveWindow.SmallScroll Down:=-50
Range("D5").Select
Sheets("Eingabe").Select
Application.ScreenUpdating = True
Call Blattschutz_ein
MsgBox "Umschaltung erfolgt !", , "HINWEIS"
End If
End If
End Sub
... aber funktioniert problemlos !

Nochmals vielen Dank und nette Grüße
Torsten

Hajo_Zi
21.07.2012, 10:38
<a href="http://hajo-excel.de/select.htm" title="Hinweise zu select usw." >Hinweise zu select usw.</a>
Mein Code enthielt kein Array.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Torsten1
21.07.2012, 11:01
Ich habe nicht behauptet, dass sich in Deiner Zeile von oben ein Array befunden hat,
sondern ledigl., dass man meinen "Umweg" sicherlich auch als Array hätte lösen können.

Nette Grüße
Torsten

Torsten1
21.07.2012, 13:11
dass man meinen "Umweg" sicherlich auch als Array hätte lösen können.

Jemand 'ne Idee dazu ?

Nette Grüße
Torsten

Torsten1
22.07.2012, 17:27
Kann mir ggf. Jemand freundlicherweise bei dem "Array" helfen ?
Ist nicht notwendig - wäre aber nett .... wenn nicht - auch kein Problem !


Nette Grüße
Torsten