Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
724to728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
724to728
724to728
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

3 Excel Problemchen :)

3 Excel Problemchen :)
03.02.2006 12:29:23
Tobias
Hallo,
ich habe ein sehr schwieriges Problem und noch zwei kleinere :)
Eine Lösung ist sehr wichtig.
Und Zwar habe ich eine Excel Tabelle erstellt die sich bei 100% Zoom und einer Auflösung von 1280x1024 optimal anzeigen lässt. Nur leider benutzen nicht alle( alle=personen die zugriff auf die Tabelle haben) diese Bildschirmlösung.
Ist es also möglich vllt. über VBA die aktuelle Bildschirmauflösung des Users zu ermitteln und dementsprechend die Zoom Funktion anzupassen.
also bei 1280x1024 wäre es 100%
bei 1024x768 wäre es vielleicht nur 75% (den genauen Wert müsste ich ausprobiern)
Für eine ausführliche Antwort und Hilfestellung wäre ich sehr Dankbar, da ich bislang noch keine Erfahrung in VBA sammeln konnte.
2. Ich möchte gerne meine Arbeitsmappe vor Veränderungen gegenüber 3te schützen. Dies funktioniert auch so, wie ich es mir vorstelle.
Ist es aber möglich, die Tabelle evtl im Vollbildmodus anzeigen zu lassen, also ohne Symbolleisten etc.?
3. Über die Code funktion habe ich bereits herausbekommen, wie man Tabellenblätter unsichtbar bzw verstecken kann. Mein Problem besteht darin das ich diese Tabellenblätter gerne über einen Hyperlink aufrufen möchte (Sie sollen aber unten nicht angezeigt werden). Da ich dabei bin eine Oberfläche zu Erstellen und nicht möchte das meine Anzeige von den Tabellenblätter mit sovielen Tabellenblätter "zugemüllt" wird. Habe bislang das Problem, wenn ich die Tabellenblätter verstecke, das ich dann nicht mehr draufzugreifen kann per Link.
Ich weiß eine Menge Fragen, aber für jeden Tipp oder andere Lösungsvorschläge bin ich sehr Dankbar!!! :)

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bildschirmauflösung
03.02.2006 12:46:24
GraFri
Hallo
Vielleicht hilft dir folgender Code weiter.


      
' ---------------------------------------------------------
' In ein MODUL
Private Declare Function GetDC Lib "user32.dll" (ByVal hwnd As LongAs Long
Private Declare Function GetDesktopWindow Lib "user32.dll" () As Long
Private Declare Function ReleaseDC Lib "user32.dll" (ByVal hwnd As LongByVal hdc As LongAs Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As LongByVal nIndex As LongAs Long
Private Type currRes
As Long
As Long
End Type
Private Const HORZRES As Long = 8
Private Const VERTRES As Long = 10
' ---------------------------------------------------------
' Aktuelle Bildschirmauflösung ermitteln
'
Sub Auflösung_ermitteln()
Dim Antwort
Dim Text1 As String, Text2 As String, Titel As String
    Text1 = "Die horizontale Auflösung beträgt:  "
    Text2 = "Die vertikale Auflösung beträgt:  "
    Titel = "Bildschirmauflösung"
    
    
Call Auflösung
    
    Antwort = MsgBox(Text1 & Auflösung.X & "  Pixel" & vbCrLf & vbCrLf & _
                     Text2 & Auflösung.Y & "  Pixel", vbOKOnly, _
                     "Bildschirmauflösung")
End Sub
Public Function Auflösung() As currRes
Dim hdc, hwnd, retval        As Long
    hwnd = GetDesktopWindow                     
'Desktop-Handle ermitteln
    
    hdc = GetDC(hwnd)                           
'Desktop-device-context ermitteln
    
    Auflösung.X = GetDeviceCaps(hdc, HORZRES)   
'horizontale Auflösung ermitteln und zurückgeben
    Auflösung.Y = GetDeviceCaps(hdc, VERTRES)   'vertikale Auflösung ermitteln und zurückgeben
    
    retval = ReleaseDC(hwnd, hdc)               
' device-context freigeben
End Function
'
' ---------------------------------------------------------
 


mfg, GraFri
Anzeige
die kurze Variante
03.02.2006 13:21:26
MichaV
Hallo
so werden immer die Spalten A bis I angezeigt:

Private Sub Workbook_Open()
Dim Zelle As Range
Set Zelle = ActiveCell
Range("A1:I1").Select
ActiveWindow.Zoom = True
Zelle.Select
Set Zelle = Nothing
End Sub

Gruß- Micha
PS: Rückmeldung wäre nett.
AW: die kurze Variante
03.02.2006 13:53:51
Tobias
vielen Dank.
Die kurze Variante funktioniert einwandfrei!!!! Genau wie ich es mir vorgestellt habe Danke
:)
AW: die kurze Variante
03.02.2006 14:02:25
Tobias
Hallo Micha,
mir ist noch ein kleines Problem in deinem Code aufgefallen. Er funktioniert nur in sofern das er ein zu "großes" Tabellenblatt optimal herunterzoomt.
Angenommen, das Tabellenblatt ist klitze klein gezoomt abgespeichert wurden, dann bleibt das Blatt so klein. Ne Idee wie er es auch größer Zoomt zur gewünschten Auflösung?
Das Problem ist folgendes: Wenn jmd mit einer kleinen Bildschirmauflösung mit der Tabelle arbeitet und es abspeichert dann ist es für denjenigen der mit einer höheren Auflösung arbeitet, nur umständlich möglich es größer zu bekommen.
Wäre dir dankbar wenn du noch einen Tipp für mich hättest :)
Anzeige
AW: die kurze Variante
04.02.2006 01:53:04
MichaV
Hallo,
ich kann das auf XL2000 nicht nachvollziehen, da klappt es beim Kleiner- und Größerzoomen.
Es sollte aber helfen, wenn Du die Mappe vor dem Optimal- Zoom auf einen großen Zoom einstellst, etwa so:

Set Zelle = ActiveCell
ActiveWindow.Zoom = 300 'große Zommstufe
Range("A1:I1").Select
ActiveWindow.Zoom = True 'wieder herunterzoomen

Gruß- Micha
PS: Rückmeldung wäre nett.
Symbloleiste, Menüleiste ausblenden
03.02.2006 12:52:49
GraFri
Hallo
Vielleicht hilft dir folgender Code weiter.


      
' Code in DieseArbeitsmappe
Option Explicit
Dim Cn%
Dim CdbList()
Dim Status_FormulaBar   As Boolean
Dim Status_HorScroll    As Boolean
Dim Status_VerScroll    As Boolean
Dim Status_StatusBar    As Boolean
Dim Status_Gridlines    As Boolean
Dim Status_Headings     As Boolean
Dim Status_WorkTabs     As Boolean
Private Sub Workbook_Open()
Dim Cdb As CommandBar
'Wenn Titelleiste von Excel geändern werden soll
'Application.Caption = "Meine Mustervorlage"

'falls die eigenen Symbolleisten auch ausgeblendet werden sollen, dann den
'Code 'And Cdb.BuiltIn = True' aus nachstehender Zeile entfernen
Cn = 1
For Each Cdb In Application.CommandBars
    
If Cdb.Visible And Cdb.Type <> msoBarTypeMenuBar And Cdb.BuiltIn = True Then
        
ReDim Preserve CdbList(Cn)
        CdbList(Cn) = Cdb.Name
        Cn = Cn + 1
        Cdb.Visible = 
False
    
End If
Next
'Stellt den Status fest und blendet alles aus
With ActiveWindow
    Status_HorScroll = .DisplayHorizontalScrollBar
    
If .DisplayHorizontalScrollBar = True Then .DisplayHorizontalScrollBar = False
    Status_VerScroll = .DisplayVerticalScrollBar
    
If .DisplayVerticalScrollBar = True Then .DisplayVerticalScrollBar = False
    
    Status_Gridlines = .DisplayGridlines
    
If .DisplayGridlines = True Then .DisplayGridlines = False
    
    Status_Headings = .DisplayHeadings
    
If .DisplayHeadings = True Then .DisplayHeadings = False
    Status_WorkTabs = .DisplayWorkbookTabs
    
If .DisplayWorkbookTabs = True Then .DisplayWorkbookTabs = False
End With
With Application
    Status_StatusBar = .DisplayStatusBar
    
If .DisplayStatusBar = True Then .DisplayStatusBar = False
    
    Status_FormulaBar = .DisplayFormulaBar
    
If .DisplayFormulaBar = True Then .DisplayFormulaBar = False
'Menüleiste
    .CommandBars(1).Enabled = False
End With
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Cdb As CommandBar
Dim Ci%
For Ci = 1 To Cn - 1
    Application.CommandBars(CdbList(Ci)).Visible = 
True
Next Ci
With ActiveWindow
    .DisplayHeadings = Status_Headings
    .DisplayHorizontalScrollBar = Status_HorScroll
    .DisplayVerticalScrollBar = Status_VerScroll
    .DisplayGridlines = Status_Gridlines
    .DisplayWorkbookTabs = Status_WorkTabs
End With
With Application
    .DisplayStatusBar = Status_StatusBar
    .DisplayFormulaBar = Status_FormulaBar
    
    .CommandBars(1).Enabled = 
True
End With
End Sub
 


mfg, GraFri
Anzeige
AW: 3 Excel Problemchen :)
03.02.2006 13:09:39
GraFri
Hallo
Vielleicht hilft dir folgender Code weiter.


      
'--------------------------------------------------------------
' In die Tabelle, wo sich der Hyperlink befindet
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Worksheets("Tabelle2").Visible = 
True
Worksheets("Tabelle2").Activate
End Sub
'--------------------------------------------------------------

'--------------------------------------------------------------
' Tabelle, die ausgeblendet ist
Option Explicit
Private Sub Worksheet_Deactivate()
    Worksheets("Tabelle2").Visible = 
False
End Sub
'--------------------------------------------------------------
 


mfg, GraFri
Anzeige
AW: 3 Excel Problemchen :)
03.02.2006 13:49:18
Tobias
Schonmal vielen Dank, für die schnelle Antwort GraFri :)
Bis jetzt hab ich erst Nr3 ausprobiern können. Aber folgendes Problem habe ich noch:
Ich hab ein Tabellenblatt mit 4 Links zu 4 verschiedene Tabellenblätter. Mit deiner Lösung bekomme ich leider immer nur unsichtbares Tabellenblatt zu sehen. Wie müsste die Formel denn dann aussehen ? Wie gesagt, es ist das erstemal das mit VBA arbeite, ich habe folgendes Versucht:
unteren Code
"
' Tabelle, die ausgeblendet ist
Option Explicit

Private Sub Worksheet_Deactivate()
Worksheets("Tabelle2").Visible = False
End Sub

'--------------------------------------------------------------
habe ich auf alle 4 unsichtbaren Tabellenblätter reinkopiert
und den oberen Teil deines Codes.....
' In die Tabelle, wo sich der Hyperlink befindet

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Worksheets("Tabelle2").Visible = True
Worksheets("Tabelle2").Activate
End Sub

'--------------------------------------------------------------
habe ich einfach fortgeführt also:
--------------------------------------------------------------
' In die Tabelle, wo sich der Hyperlink befindet

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
Worksheets("Tabelle2").Visible = True
Worksheets("Tabelle2").Activate
Worksheets("Tabelle3").Visible = True
Worksheets("Tabelle3").Activate
Worksheets("Tabelle4").Visible = True
Worksheets("Tabelle4").Activate
Worksheets("Tabelle5").Visible = True
Worksheets("Tabelle5").Activate

Private Sub Worksheet_Deactivate()
Worksheets("Tabelle2").Visible = False
End Sub

'--------------------------------------------------------------
Was hab ich falsch gemacht ? Vielen Dank nochmal
Anzeige
AW: 3 Excel Problemchen :)
03.02.2006 16:13:42
GraFri
Hallo
Ändere den Code wie folgt.


      
Option Explicit
' In die Tabelle, wo sich der Hyperlink befindet

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
' "Zeige Tabelle2" ist der Hyperlink
Select Case Target.Name
    
Case "Zeige Tabelle2"
        Worksheets("Tabelle2").Visible = 
True
        Worksheets("Tabelle2").Activate
    
Case "Zeige Tabelle3"
        Worksheets("Tabelle3").Visible = 
True
        Worksheets("Tabelle3").Activate
        
'usw.
        'usw.
End Select
End Sub
 


Bei weiteren Fragen einfach melden.
mfg, GraFri
Anzeige
AW: 3 Excel Problemchen :)
03.02.2006 21:38:47
Tobias
ich danke dir :)
funktioniert alles einwandfrei :)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige