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

Autoactivate

Autoactivate
23.11.2002 06:29:12
Andreas
Hallo und guten Morgen,

warum läuft das unten stehende Makro (wehe jetzt lacht einer!!) mit Doppelklick aber nicht mit "Private Sub Worksheet_SelectionChange(ByVal Target As Range)", da bekomme ich immer einen Laufzeitfehler, weil die Pastemethode des Worksheetobjektes nicht ausgeführt werden kann.

Es wäre einfach eleganter, wenn das Makro nach Eingabe eines Wertes in eine Zelle automatisch laufen würde.

Für jeden Tip dankbar

Andreas

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Range("B8:C14").Select
Selection.Copy
Range("B19").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B19:C25").Select
Selection.Sort Key1:=Range("C19"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B8:B14,D8:D14").Select
Range("D8").Activate
Selection.Copy
Range("B27").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B27:C33").Select
Selection.Sort Key1:=Range("C27"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("B8:B14,E8:E14").Select
Range("E8").Activate
Selection.Copy
ActiveWindow.SmallScroll Down:=6
Range("B35").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B35:C41").Select
Selection.Sort Key1:=Range("C35"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveWindow.SmallScroll Down:=-9
Range("B8:B14,F8:F14").Select
Range("F8").Activate
Selection.Copy
ActiveWindow.SmallScroll Down:=18
Range("B43").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B43:C49").Select
Selection.Sort Key1:=Range("C43"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveWindow.SmallScroll Down:=-14
Range("B8:B14,G8:G14").Select
Range("G8").Activate
Selection.Copy
ActiveWindow.SmallScroll Down:=30
Range("B51").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Range("B51:C57").Select
Selection.Sort Key1:=Range("C51"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
ActiveWindow.SmallScroll Down:=-25
Range("B19:C22").Select
Selection.Copy
Range("D19").Select
ActiveSheet.Paste
Range("E23").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
Range("B27:C30").Select
Selection.Copy
Range("D27").Select
ActiveSheet.Paste
Range("E31").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
Range("E32").Select
ActiveWindow.SmallScroll Down:=10
Range("B35:C38").Select
Selection.Copy
Range("D35").Select
ActiveSheet.Paste
Range("E39").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
Range("E40").Select
ActiveWindow.SmallScroll Down:=16
Range("B43:C46").Select
Selection.Copy
Range("D43").Select
ActiveSheet.Paste
Range("E47").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
Range("B51:C54").Select
Selection.Copy
Range("D51").Select
ActiveSheet.Paste
Range("E55").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "=SUM(R[-4]C:R[-1]C)"
Range("E56").Select
ActiveWindow.SmallScroll Down:=-22
Range("D19:D22").Select
Selection.Copy
ActiveWindow.SmallScroll Down:=22
Range("C60").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-19
Range("D27:D30").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=20
Range("D60:D63").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-13
Range("D35:D38").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=18
Range("E60:E63").Select
ActiveSheet.Paste
ActiveWindow.SmallScroll Down:=-12
Range("D43:D46").Select
Application.CutCopyMode = False
Selection.Copy
ActiveWindow.SmallScroll Down:=10
Range("F60:F63").Select
ActiveSheet.Paste
Range("D51:D54").Select
Application.CutCopyMode = False
Selection.Copy
Range("G60:G63").Select
ActiveSheet.Paste
Range("C8").Select
Application.CutCopyMode = False
End Sub:


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Autoactivate
23.11.2002 07:44:28
Andreas Schindler
Hi,

uups. Interessanter Code. Ich habe auch immer wieder das Problem mit diesem blöden Select. Manchmal läuft das nicht richtig inerhalb von with anweisungen. Manchmal mag Excel einfach überhaupt nicht.

Ich kann Dir nur empfehlen, schmeiß diese blöden Selectstatements raus.
Der Code ist doch fast nicht mehr lesbar.

Machs lieber mal so:

Worksheets("Tabelle1").Range("A1").Copy Worksheets("Tabelle2").Range("A1")

Der Code wird lesbarer und funktioniert wahrscheinlich auch eher...

Andreas

Re: Autoactivate
23.11.2002 09:50:48
Georg_Zi
Hallo Andreas

wie Andreas Schindler schon geschrieben hat solltest Du auf select verzichten. Der Code wird übersichtlicher und schneler.
Vom Grundsatz her ist es so das die SelectChange Ereignis aufgerufen wird sobald Du irgend etwas in der Tabelle änderst. Also mußt Du excel sagen das es au´f die änderung nicht reagieren soll.
Mir ist nicht ganz klar was Du mir dieser Aktion erreichen willst, aber das stand hier nicht zur Diskussion.

Gruß Georg


Anzeige
Re: Autoactivate
23.11.2002 10:23:56
Andreas
Zunächst Danke für die Hilfe, wird wohl wieder ein paar lange Nächte und wüste Beschimpfungen meiner Frau geben, bis ich das verstanden habe.
Mein Problem ist folgendes:

7 Kinder (Zeile B7:B15) schwimmen in 5 (Spalten C:G) verschiedenen Disziplinen. Ich trage die jeweiligen Zeiten in die Tabelle ein und Excel soll mir die 4 Besten für die jeweilige Disziplin anzeigen (damit ich weiß, wen ich für die Staffel melden kann).

Gruß

Andreas

Re: Autoactivate
23.11.2002 10:43:54
Georg_Zi
Re: Autoactivate
23.11.2002 12:17:29
Andreas
Bingo, das war ja genau das, was ich gesucht habe.

Und wieder mal muss ich feststellen, wie klein und unwissend ich doch bin.

Vielen Dank

Andreas

Anzeige
Re: Autoactivate
23.11.2002 12:21:41
Georg_Zi
Hallo Andreas

das können wir aber alle nur sagen. Ich vermute mal es gibt keinen der Excel 100% kennt.

Viele Sachen lassen sich mit den einfachen Mitteln von Excel lösen. Es muß nicht immer ein Makro sein.

Gruß Georg

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige