1. Public-Variablen mußt Du in einem allgemeinen Modul deklarieren, nicht wie bei dir in einem Tabllenmodul. 2. Als Public würde ich die Variablen hier in deinem Beispiel nicht deklarieren, weil Du die Variablen nur im Change-Ereignis benötigst, also so
Code:
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer Dim j As Integer Dim k As Integer Application.EnableEvents = False Set Target = Intersect(Target, Range("B6:G9,K6:P9")) If Target Is Nothing Or Target.Count > 1 Then Exit Sub j = Target.Row k = Target.Column + 16 If Target.Column >= 2 And Target.Column <= 7 Then Cells(j, k) = Target Else For i = 23 To 18 Step -1 If Cells(j, i) = Target Then Cells(j, i) = "" Exit For End If Next End If Application.EnableEvents = True Set Target = Nothing End Sub
Hallo Stefan deinen Tipp hab ich verarbeitet, aber das Ergebnis lässt die Rückrunde unangetastet. Wieso? Fehler meinerseits oder muss das Modul irgendwie noch mit Button zum laufen gebracht werden. Sollte doch eigentlich im H.gr. aktiv werden, oder ? Gruß Frank
ich kann dir nicht ganz folgen, was meinst Du mit der Rückrunde? Und was soll da passieren?
Zitat:Sollte doch eigentlich im H.gr. aktiv werden, oder ?
Eigentlich ja, vielleicht hast Du die Ereignisse abgeschaltet? Prüfe mal das am besten im Direktfenster. Lasse Dir das Direktfenster mit der Tastenkombination STRG + G (oder über Menü - Ansicht) im Editor anzeigen. Klicke in dieses und gebe
Code:
?Application.EnableEvents
ein und drücke die Return-Taste. Welcher Wert wird dir angezeigt? Wahr oder Falsch? Falls es falsch sein sollte, gebe nochmals im Direktfenster
Code:
Application.EnableEvents = True
ein und drücke die Return-Taste. Danach sollten die Ereignisse wieder gestartet werden.
Zitat:ch kann dir nicht ganz folgen, was meinst Du mit der Rückrunde? Und was soll da passieren?
Rückrunde (Hilfsteil R6:W9 wüsste nicht wie anders benennen) wird dank Glausius mit der Hinrunde befüllt, im Mittelteil kommen dann die geworfenen Zahlen hinein. Der gegebenen Code von Glausius funktioniert gut. Als ich die Änderung (deine) vornahm, funktionierte es nicht mehr.
Habe deinen Rat befolgt, allerdings mit 1tem Code siehe Auszug aus Direktfenster ?Application.EnableEvents Wahr
das hast Du missverstanden. Der Code ist ein Ereignismakro und das gehört in das Tabellenmodul. Was ich angemerkt hatte, war die Variablendekleration also solche Codezeilen
Code:
Dim k As Integer 'bzw. Public l As Integer
und was ich meinte. Die Variablen, die als Public deklariert sind, gehören in ein allgemeines Modul.
So hatte ich es vorgesehen
Code:
'in einem Tabellenmodul Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer Dim j As Integer Dim k As Integer Application.EnableEvents = False Set Target = Intersect(Target, Range("B6:G9,K6:P9")) If Target Is Nothing Or Target.Count > 1 Then Exit Sub j = Target.Row k = Target.Column + 16 If Target.Column >= 2 And Target.Column <= 7 Then Cells(j, k) = Target Else For i = 23 To 18 Step -1 If Cells(j, i) = Target Then Cells(j, i) = "" Exit For End If Next End If Application.EnableEvents = True Set Target = Nothing End Sub
bzw. die Variante von Glausius unter der Berücksichtigung von der Public-Variablen in einem allgemeinen Modul
Code:
'in einem Tabellenmodul
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False Set Target = Intersect(Target, Range("B6:G9,K6:P9")) If Target Is Nothing Or Target.Count > 1 Then Exit Sub j = Target.Row k = Target.Column + 16 If Target.Column >= 2 And Target.Column <= 7 Then Cells(j, k) = Target Else For i = 23 To 18 Step -1 If Cells(j, i) = Target Then Cells(j, i) = "" Exit For End If Next End If Application.EnableEvents = True Set Target = Nothing End Sub
'in einem allgemeinen Modul
Option Explicit
Public i As Integer Public j As Integer Public k As Integer
Ein paar Informationen, wo was hingehört findest Du hier.
da hast Du Einiges in Deiner Auflistung falsch gemacht! 2 x ein Change-Ereignis kann Excel nich bewältigen! Ich habe jetzt den Code bereinigt und dort hin gebracht, wo er hingehört - jetzt läuft es (erst einmal) wieder:
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Da ist aber viel durcheinander geworfen worden von mir. Sorry Bin halt noch nicht so ganz firm mit der Materie (bis das so sein könnte in 15J bin ich RentneR)
Das ist es, so habe ich es mir gedacht. Konnte nur mit Formeln (wenn überhaupt) das Prob. ein wenig lösen.
Den Link muss ich wohl näher studieren
- wenn Freizeit zu Hauf; ein F.M. in der Nähe wohnen tät - was wäre dann. Ich als geduldiger Schüler den fachmännischen Ausführungen folgen würde. :s (natürlich beim Täschen B...)
Sankt Augustin ist mir echt für eine "kühle Blonde" von hier zu weit, wenn ich meine Kinder in Bad Honnef mal längere Zeit "belästige", gäbe es dann schon eher eine Möglichkeit.
Gruß Günter aus der Helden-, Messe-, Musik-, Buch-, Universitäts- und Autostadt Leipzig
Hab ich - bleib hier, derweil hier eine schnellere Resonanz erfolgt. Schuldigung wollt keinen brüskieren (vor den Kopf stoßen)
(01.05.2014, 23:06)Glausius schrieb: Dort wirst allerdings keine Antwort von mir mehr erhalten!
Bin an der weiteren Hilfe/Zusammenarbeit sehr interessiert. An alle, es ist schwer jemanden zu finden ohne zu ahnen was einen erwartet. Bin auf weiteres gespannt - ehrlich