Hallo zusammen. Ich erstelle für Freunde usw verschiedene Spielpläne für Turniere. Zb zum Darten, Fußball oder Kegeln. Sobald wir ein Ergebnis in den Spielplan eintragen, drücken wir auf einen Button um die Tabelle zu aktualisieren. Ich habe mal einen Spielplan hier angehangen. Wir möchten nur nicht immer auf den Button klicken... Deshalb die Frage ob sich die Tabelle von selbst sortieren kann, wenn man ein Ergebnis einträgt. MfG
10.01.2025, 13:27 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2025, 13:28 von BigJane.)
Ich kann Makros nicht downloaden, aber ohne die Tabelle zu kennen folgenden Vorschlag machen:
a) Makro in ein Changeevent packen (dazu in den oberen beiden Dropdowns direkt im Kopf des Editors im jeweiligen Tabellenblatt) auf Worksheet und Change ändern und das Skript einfügen b) ggf. den auslösenden Tabellenbereich über ein If...Intersect... abfragen und den Code bei Änderungen außerhalb des Zellbereiches enden lassen. Ist der Zellbereich in mehrere Sektionen geteilt macht es Sinn diese Fragmente vorher im Tabellenblatt zu markieren und diesen einen Namen zuzuordnen.
lade diesen Code bitte im VBA Editor in die Tabelle "PC-Version", wo bereits das Makro Command_Button steht. Du must bitte noch den -richtigen- Eingabe Bereich bei Intersect ("AV5:AZ7" ) angeben, den habe ich geraten!! Dann wird das Makro bei jeder Eingabe (ausser Zelle löschen) aktiv aufgerufen.
Der Sortier Code für Command_Button stimmt übrigens nicht! Der Range.Select Bereich und die Adressen für Key1-3 stimmen nicht überein!
mfg Gast 123
Code:
Private Sub Worksheet_Change(ByVal Target As Range) If InStr(Target.Address, ":") Then Exit Sub If Target.Value = Empty Then Exit Sub
'Bereich bitte selbst festlegen If Not Intersect(Range("AV5:AZ7"), Target) Is Nothing Then Call Makro1 End If End Sub
10.01.2025, 13:38 (Dieser Beitrag wurde zuletzt bearbeitet: 10.01.2025, 13:38 von BigJane.)
Hier noch ein zusammenhangsloser anonymisierter Code aus einer anderen Datei der einen ähnlichen Aufbau haben könnte und damit mit ein paar Änderungen in den Details anwendbar sein könnte
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then MsgBox "Blablabla" Exit Sub End If
If Not Intersect(Target, Range("Fragmente")) Is Nothing Then
Danke erstmal an alle für die Antwort. Mit den zusätzlichen Befehlen in den Makros habe ich aber nicht hin bekommen. Da fehlt mir die Erfahrung. Ich habe es jetzt mal nach deinem Beispiel für einen weiteren Plan übernommen. Und es klappt. Das ist zwar viel Arbeit und dauert. Aber es funktioniert. Vielen Dank für deine Vorlage.