Makro automatisch auslösen
#1
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


Angehängte Dateien
.xlsm   3 Teams jeder gegen jeden (3 Spiele).xlsm (Größe: 26,21 KB / Downloads: 7)
Antworten Top
#2
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.
Antworten Top
#3
Hallo

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
Antworten Top
#4
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

    -->das was gemacht werden soll oder Call Makro1

End If

End Sub
Antworten Top
#5
Hallo Daniel,

das geht doch auch ohne Makro! (s. Mappe)

Gruß Sigi


Angehängte Dateien
.xlsx   3 Teams jeder vs jeden.xlsx (Größe: 19,95 KB / Downloads: 3)
Antworten Top
#6
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.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste