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"