Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
628to632
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
628to632
628to632
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

können sich Makros automatisch anpassen ???

können sich Makros automatisch anpassen ?
28.06.2005 09:31:25
Kai
Hallo Excel-Freunde,
ist es möglich das sich ein Makro automatisch anpasst wenn ich z.B Zeilen später lösche oder einfüge?
Danke für jeden Tip!
Gruß Kai

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: können sich Makros automatisch anpassen ?
28.06.2005 09:35:04
Galenzo
Da solltest du bei der Fragestellung schon etwas präziser werden.
Was soll sich wie und wann verändern.
Hast du eine Zielstellung und evtl. etwas Beispiel-Code?
AW: können sich Makros automatisch anpassen ?
28.06.2005 09:35:14
Mowgli
Hi Kai
kommt darauf an, was dein Makro macht
Gruss Mowgli
Mehr Info's zur Frage!
28.06.2005 09:53:12
Kai
Sorry, dachte die Angaben würden reichen. Also jetzt etwas ausführlicher ...
Ich erstelle Turnierpläne (www.kadmo.de) für Fußball etc. Es werden die Ergebnisse in einer Tabelle zusammengefaßt und sortiert (Punkte, Diff., gesch. Tore) Die Tabelle ist z.B. für die erste Gruppe im Bereich CA33:CF37 (siehe unten) Dann wird nach CB33, CF33 und CC33 sortiert. (in dem Plan gibt es vier Gruppen) Wenn ich jetzt aber im Kopf z.B. zwischen Zeile 5 und 6 noch 2 Zeilen einfügen möchte, verschiebt sich ja der Bereich zum sortieren um 2 Zeilen nach unten. (Neuer Bereich wäre dann CA35:CF39) Die Sortierung funktioniert dann nicht mehr. Bisher mußte ich dann das Makro "von Hand" ändern was sehr aufwendig ist. Daher meine Frage ob es möglich ist, dass sich das Makro automatisch anpaßt.
Ich hoffe jetzt ist mein Problem deutlicher geworden.
Gruß Kai

Private Sub Sortiere()
' GrpA Makro
' Makro am 02.06.2005 von Kadmo aufgezeichnet
Range("CA33:CF37").Select
Selection.Sort Key1:=Range("CB33"), Order1:=xlDescending, Key2:=Range( _
"CF33"), Order2:=xlDescending, Key3:=Range("CC33"), Order3:=xlDescending _
, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("CH33:CM37").Select
Selection.Sort Key1:=Range("CI33"), Order1:=xlDescending, Key2:=Range( _
"CM33"), Order2:=xlDescending, Key3:=Range("CJ33"), Order3:=xlDescending _
, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("CA41:CF45").Select
Selection.Sort Key1:=Range("CB41"), Order1:=xlDescending, Key2:=Range( _
"CF41"), Order2:=xlDescending, Key3:=Range("CC41"), Order3:=xlDescending _
, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("CH41:CM45").Select
Selection.Sort Key1:=Range("CI41"), Order1:=xlDescending, Key2:=Range( _
"CM41"), Order2:=xlDescending, Key3:=Range("CJ41"), Order3:=xlDescending _
, Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:= _
xlTopToBottom
Range("AB88").Select
End Sub


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Fragen, ob man in Spalte AZ ist
If Target.Column = 52 And Target.Row > 31 And Target.Row < 79 Then
'Sortierung aufrufen
Sortiere
'Nächste Zelle in AW aktivieren
Cells(Target.Row, Target.Column).Offset(1, -3).Select
End If
End Sub

Anzeige
AW: Mehr Info's zur Frage!
28.06.2005 10:03:57
Galenzo
ohne jetzt an deimen funktionierenden Code rumzudoktern:
einen Range kannst du auch so definieren:
Range(Cells(i,j),Cell(m,n))
das ist dann der Bereich von Zelle i,j bis zur Zelle m,n
Ersetze mal dein
Range("CA33:CF37").Select
durch diese Schreibweise.
Range(Cells(33, 79), Cells(37, 84)).Select
oder auch so:
Range(Cells(33, "CA"), Cells(37, "CF")).Select
Das hat den entscheidenden Vorteil, das du durch Addition eines Wertes die Bereichsdefinition verschieben kannst. Das müßtest du dann immer tun, wenn du Zeilen einfügst:
Dim i as integer
i=0
Range(Cells(33+i, 79), Cells(37+i, 84)).Select
Beim Verschieben um 2 Zeilen nach unten erhöhst du nun einfach i auf 2
Dadurch verschiebt sich nun deine Bereichsdefinition.
Viel Erfolg!
Anzeige
AW: Mehr Info's zur Frage!
28.06.2005 10:21:50
Kai
Danke, das werde ich mal ausprobieren!
Gruß Kai
AW: Mehr Info's zur Frage!
28.06.2005 10:07:53
GerdZ
Hallo Kai,
in diesem Fall wäre es vermutlich einfacher, der ersten Zelle des zu sortierenden Bereichs (oder dem gesamten Bereich) einen Namen zu geben und den Bereich dann über den Namen anzusprechen.
Gruß
Gerd
AW: können sich Makros automatisch anpassen ?
28.06.2005 09:51:05
Andreas
Hallo
schau mal im Netz unter VBIDE, das ist der Verweis den du dazu brauchst. Diesen Verweis solltest du dann auch unter Verweise aktivieren.
Er heißt da allerdings microsoft Visual BAsic for Applications Extensibility 5.3
Du kannst dann auch im Objektkatalog nachschauen, wie du die neuen Befehle anwendest
Gruß Andi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige