Hat jemand...

Bild

Betrifft: Hat jemand...
von: René
Geschrieben am: 08.03.2005 17:17:33
Hallo zusammen,
hat jemand eine Idee, wie ich das nachfolgende noch vereinfachen kann?
https://www.herber.de/bbs/user/19367.txt
Ich danke für Eure Hilfe
Gruss
René

Bild

Betrifft: AW: Hat jemand...
von: Hajo_Zi
Geschrieben am: 08.03.2005 19:14:25
Hallo Rene
in VBA braucht man zu 99% kein .select usw.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Bild

Betrifft: @Hajo NUR zu 99% ??...
von: ransi
Geschrieben am: 08.03.2005 19:22:59
hallo hajo
...das restliche 1% ist mir noch nicht begegnet.
ransi
Bild

Betrifft: AW: NUR zu 99% ??...
von: Hajo_Zi
Geschrieben am: 08.03.2005 19:26:56
Hallo rani,
mir auch nicht, aber es kann ja noch werden.
Gruß Hajo
Bild

Betrifft: AW: NUR zu 99% ??...
von: Matthias G
Geschrieben am: 08.03.2005 19:41:18
Hallo Hajo,
naja, z.B. um den Fensterzoom auf eine bestimmten Bereich anzupassen:
Range("A1:H1").Select
ActiveWindow.Zoom = True
Zumindest ist es so am einfachsten ;-)
Gruß Matthias
Bild

Betrifft: AW: NUR zu 99% ??...
von: Hajo_Zi
Geschrieben am: 08.03.2005 19:57:05
Hallo Matthias
falls es darum geht die Zoom Größe der Bildschirmauflösung anzupassen?

Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Enum ScreenArgs
    HORIZONTAL
    VERTIKAL
End Enum
Public Function ScreenResolution(HV As ScreenArgs) As Long
    If HV = 0 Or HV = 1 Then ScreenResolution = GetSystemMetrics(HV)
End Function
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Select Case ScreenResolution(0)
        Case 1152
            ActiveWindow.Zoom = 110
        Case 1024
            ActiveWindow.Zoom = 100
        Case 800
            ActiveWindow.Zoom = 75
        Case 640
            ActiveWindow.Zoom = 60
    End Select
End Sub

Gruß Hajo
Bild

Betrifft: AW: NUR zu 99% ??...
von: Matthias G
Geschrieben am: 08.03.2005 20:03:53
Hallo Hajo,
ja sicher findet man (du! - ;-) da auch Alternativen, aber deine berücksichtigt nicht die Fenstergröße (Application.Width) und ob z.B. der Aufgabenbereich (heißt das so?) angezeigt wird.
Wie gesagt, ich finde o.g. Code am einfachsten. Man kann die vorherige Selektion ja anschließend wiederherstellen.
Gruß Matthias
Bild

Betrifft: AW: NUR zu 99% ??...
von: Kurt
Geschrieben am: 08.03.2005 19:47:29
jetzt mal bitte (natürlich ist A2 auf Tabelle1 NICHT die aktive Zelle) ohne select oder activate ;-)

Sub Makro1()
Worksheets(1).Cells(257).Activate 'oder select
    ActiveWindow.FreezePanes = True
End Sub

und Tschüss Kurt
Bild

Betrifft: AW: NUR zu 99% ??...
von: Hajo_Zi
Geschrieben am: 08.03.2005 20:00:01
Hallo Kurt,
Dein Code geht nur wenn das erste Worksheet aktiv.
Gruß Hajo
Bild

Betrifft: AW: NUR zu 99% ??...
von: Kurt
Geschrieben am: 08.03.2005 20:02:52
Hi Hajo,

Sub Makro1()
Worksheets(1).Select
Cells(257).Select
ActiveWindow.FreezePanes = True
End Sub

also zweimal select in einem code :-)
...und Tschüss Kurt
Bild

Betrifft: ...das liegt wohl am MakroRecorder...! owT
von: Luc :-?
Geschrieben am: 08.03.2005 19:44:02

Bild

Betrifft: AW: Hat jemand...
von: René
Geschrieben am: 08.03.2005 20:03:18
Hallo zusammen,
danke für Eure Antworten.
Aber Helfen tun sie alle nicht.
Vielleicht krieg ich ja noch einen brauchbaren Vorschlag.
Danke auf jeden Fall
Gruss
René
Bild

Betrifft: AW: Hat jemand...
von: Hajo_Zi
Geschrieben am: 08.03.2005 20:09:45
Hallo Rene,
hast Du meinen Vorschlag umgesetzt?
Gruß Hajo
Bild

Betrifft: AW: Hat jemand...
von: René
Geschrieben am: 08.03.2005 20:11:10
Hallo Hajo,
welchen Vorschlag meinst Du genau?
Gruss
René
Bild

Betrifft: AW: Hat jemand...
von: Hajo_Zi
Geschrieben am: 08.03.2005 20:13:03
Hallo Rene,
Du hast auf meinen Vorschlag geantwortet, darum bin ich davon ausgegangen das es klar ist.
Auf .select kann zu 99% verzichtet werden.
Gruß Hajo
Bild

Betrifft: AW: Hat jemand...
von: René
Geschrieben am: 08.03.2005 20:16:52
Hallo Hajo
Wie soll ich denn beim Kopieren und umbenennen auf "Select" verzichten?
Gruss
René
Bild

Betrifft: AW: Hat jemand...
von: P@ulchen
Geschrieben am: 08.03.2005 20:13:33
Hallo René,
zuerst würde ich an Deiner Stelle die Subs adressen... kürzen und den gemeinsamen Teil dieser Subs in einen neuen Code legen, den Du aus den Sub´s heraus aufrufst:


Dim LArt As String
Sub adressen_aktive1()
LArt = "A"
Kopieren
End Sub
Sub adressen_passive1()
LArt = "P"
Kopieren
End Sub
Sub adressen_ehrenmitglieder1()
LArt = "EM"
Kopieren
End Sub
Sub Kopieren()
Application.DisplayAlerts = False
Sheets("Dr").Delete
Sheets("V").Visible = True
Sheets("V").Copy before:=Sheets(2)
ActiveSheet.Name = "Dr"
Sheets("V").Visible = xlVeryHidden
Application.DisplayAlerts = True
Call druck_adress_listen1(LArt)
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Wie Du siehst, sind die Selects (Sub Kopieren), wie Hajo schon erwähnte, nicht notwendig.
Um den weiteren Code zu vereinfachen, wäre eventuell eine Beispieldatei von Vorteil...(in Deiner Select Case - Anweisung ist 3x iCol=14 vorhanden???)
Nur soviel: Du kannst zB. auch beim Sortieren auf "Select" verzichten


Sheets("Dr").Range("A3:L" & SZähler - 1).Sort Key1:=Range("A3"), Order1:=xlAscending, Key2:=Range("B3"), _
    Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
    MatchCase:=False, Orientation:=xlTopToBottom

     Code eingefügt mit Syntaxhighlighter 2.5


Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Bild

Betrifft: AW: Hat jemand...
von: René
Geschrieben am: 08.03.2005 20:23:54
Hallo P@aulchen,
danke für den Code. Ich werd das mal umsetzen und schauen was ich fertig bringe.
Ich seh auf jeden Fall schon jetzt, dass das ganze viel kürzer wird.
Was dachtest Du mit der Beispieldatei?
Gruss
René
Bild

Betrifft: AW: Hat jemand...
von: P@ulchen
Geschrieben am: 08.03.2005 20:36:39
Hallo René,
Du hast hier auch die Möglichkeit, auch eine Beispielmappe auf den Server zu laden.
Somit können die Helfer Deine Problem etwas besser nachvollziehen.
Bei Deinem Code zB. würde ich Formatierungen (Rahmen, Zellen) etc. nur in dem Maße nutzen, wie unbedingt notwendig. Standard-Formatierungen können also auch aus dem Code verschwinden...
Beispiel:
Makro1 wurde mit dem Macrorecorder aufgezeichnet(Rahmen um A1:C4), Makro2 erledigt hier die gleiche Arbeit...


Sub Makro1()
'mit Macrorecorder aufgezeichnet
    Range("A1:C4").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub
Sub Makro2()
With Range("A1:C4")
    .Borders(xlEdgeLeft).Weight = xlThin
    .Borders(xlEdgeTop).Weight = xlThin
    .Borders(xlEdgeBottom).Weight = xlThin
    .Borders(xlEdgeRight).Weight = xlThin
End With
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5


Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Bild

Betrifft: AW: Hat jemand...
von: René
Geschrieben am: 08.03.2005 20:55:16
Hall P@aulchen.
besten Dank für Deine Antwort. Ich werde mal schauen, wie ich das alles unter einen Hut bringe und verarbeiten kann. Ich bin im VBA nicht so gut und wirklich für jede Hilfe dankbar.
Zu einem späteren Zeitpunkt werde ich dann eine Beispielmappe ins Netz stellen.
Danke auf jeden Fall mal für Deine Hilfe.
Gruss
René
Bild

Betrifft: AW: Hat jemand...
von: Otto
Geschrieben am: 08.03.2005 22:23:46
Hallo Paulchen,
Meine Testumgebungen: Excel 9.0 SR-1, Multilingual unter Windows 2000 SP-4 und Excel 11 Deutsch unter Windows XP
ich würde das Makro so schreiben:

Gruß Otto
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makros deaktivieren bei Öffnen aus VBA"