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

Absturz

Absturz
29.02.2008 10:41:00
Urs
Ich habe das Problem, dass sich Excel beim transponierten Kopieren kommentarlos aufhängt. Dann kann ich nur noch auf den Task Manager gehen und excel abschiessen. Das Problem tritt nicht in allen sheets auf, aber genau in dem sheet wo ich diese Art des Kopierens brauche (auch makromässig). Meine Internetsuche mit "Excel Absturz bei Kopieren" o.ä. war erfolglos.
Besten Dank für Kommentare !!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Absturz
29.02.2008 11:48:58
Urs
Ich beantworte das gerade selbst teilweise (Urs):
- Der Absturz erfolgt wegen vorhandenem Change-Makro in diesem sheet, aber warum ? Nicht ersichtlich beim Debuggen !
- Teillösung: Bei Makros mit application.enableevents kontrollieren und in diesem sheet nicht mehr transponieren !
- Kennt jemand bessere Lösungen ?

AW: Absturz
29.02.2008 11:58:44
Renee
Hi Urs,
Wie sieht den dein Change_Event code aus ?
GreetZ Renée

AW: Absturz
29.02.2008 12:02:28
Urs
Hi Renée,
der Code ist ganz einfach:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x1Aend As Integer, x2Aend As Integer
Dim x1Unt As Integer, x2Unt As Integer
Dim x1Bei As Integer, x2Bei As Integer
Dim yAend As Integer, yUnt As Integer, yBei As Integer
Dim xOff As Integer, yOff As Integer
Dim xDoku As Integer, yDoku As Integer
Dim x1verr%, x2verr%, y1verr%, y2verr%
Application.ScreenUpdating = False
' Koordinaten Zelle
xDoku = Target.Row
yDoku = Target.Column
' Koordinaten Doku
x1Aend = Range("ListeAendMan_Doku").Row
x2Aend = x1Aend + Range("ListeAendMan_Doku").Rows.Count - 1
x1Unt = Range("ListeUntMan_Doku").Row
x2Unt = x1Unt + Range("ListeUntMan_Doku").Rows.Count - 1
x1Bei = Range("ListeBeiMan_Doku").Row
x2Bei = x1Bei + Range("ListeBeiMan_Doku").Rows.Count - 1
yAend = Range("ListeAendMan_Doku").Column
yUnt = Range("ListeUntMan_Doku").Column
yBei = Range("ListeBeiMan_Doku").Column
x1verr = Range("DokuB_VerrBetrag").Row
x2verr = x1verr + Range("DokuB_VerrBetrag").Rows.Count - 1
y1verr = Range("DokuB_VerrBetrag").Column
y2verr = Range("DokuB_VerrKreuz").Column
' Aenderungen
If xDoku >= x1Aend And xDoku = x1Unt And xDoku = x1Bei And xDoku = x1verr And xDoku = y1verr And yDoku 


Anzeige
AW: Absturz
29.02.2008 12:13:57
ransi
Hallo Urs
Wenn das Worksheet_Change Einträge im selben Sheet vornimmt, ruft sich das Worksheet_Change bei jedem Eintrag den es vornimmt selber wieder auf.
Aus der Nummer kommst du tatsächlich nur mit einem gezielten Einsatz von Application.EnableEvents=True/False wieder raus. Eine andere Lösung gibt es nicht.
ransi

AW: Absturz
29.02.2008 12:48:00
Urs
hallo ransi,
besten dank !
Aber warum kann ich denn in diesem sheet normal kopieren bei eingeschaltetem enableevents und beim transponierten kopieren werde ich aufgehängt ?

AW: Absturz
29.02.2008 13:14:00
Renee
Hi Urs,
Wie heisst die Tabelle in der dieses Change_Event steht ?
Als VBA-Profi solltest du wissen:
a) das der Event mit jeder Änderung wieder anläuft, wenn du im Event selber Änderungen an der Tabelle vornimmst.
b) Muss wirklich bei Änderungen in jeder Zelle dieser Tabelle das ganze durchlaufen ?
c) Soll dass eine Art Änderungsprotokoll sein?
GreetZ Renée

Anzeige
AW: Absturz
29.02.2008 13:37:41
Urs
Hi Renée,
Also ich gebe zu, mit Change-Makros nicht viel Erfahrung zu haben, weil ich auch schon schlechte Erfahrungen damit gemacht habe. Es geht in diesem sheet "Doku" um 2 Sachen:
1. Falls in gewissen Bereichen (Aenderunge, Unterlagen,Beilagen) Eingaben erfolgen, müssen diese in einem anderen sheet "Off" sofort synchronisiert werden.
2. Falls in einem anderen Bereich (Verrechnungen) Eingaben erfolgen, müssen sofort gewisse Sümmchen gebildet werden, wobei in dieser grossen, komplexen Arbeitsmappe (ca. 10 MB) unbedingt die Berechnung immer auf "Manuell" eingestellt sein muss.
Zu a)
Das weiss ich schon: diese beiden Berechnungsfelder können sich ändern, worauf das Change-Makro nochmals leer durchlaufen sollte, weil die Berechnungsfelder mit dem Verrechnungsbereich leeren Durchschnitt haben.
Zu b)
Wie oben erwähnt, sind nur die 4 Bereiche (Aenderungen,Unterlagen,Beilagen, Verrechnungen) auf Aenderungen zu testen, was ich im Code auch mache.
Zusatzinfo:
- Bei nichttransponiertem kopieren wird man nicht aufgehängt
- Bei Simulation in einer neuen Arbeitsmappe mit minimalem analogen Situationsaufbau kann transponiert kopiert werden
Besten Dank für weitere Anregungen !

Anzeige
AW: Absturz
29.02.2008 13:59:00
Renee
Hi Urs,
Versuch's mal so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim x1Aend As Integer, x2Aend As Integer
Dim x1Unt As Integer, x2Unt As Integer
Dim x1Bei As Integer, x2Bei As Integer
Dim yAend As Integer, yUnt As Integer, yBei As Integer
Dim xOff As Integer, yOff As Integer
Dim xDoku As Integer, yDoku As Integer
Dim x1verr%, x2verr%, y1verr%, y2verr%
Dim rC As Range
Application.ScreenUpdating = False
Application.EnableEvents = False
' Koordinaten Zelle
For Each rC In Target.Cells
xDoku = rC.Row
yDoku = rC.Column
' Koordinaten Doku
x1Aend = Range("ListeAendMan_Doku").Row
x2Aend = x1Aend + Range("ListeAendMan_Doku").Rows.Count - 1
x1Unt = Range("ListeUntMan_Doku").Row
x2Unt = x1Unt + Range("ListeUntMan_Doku").Rows.Count - 1
x1Bei = Range("ListeBeiMan_Doku").Row
x2Bei = x1Bei + Range("ListeBeiMan_Doku").Rows.Count - 1
yAend = Range("ListeAendMan_Doku").Column
yUnt = Range("ListeUntMan_Doku").Column
yBei = Range("ListeBeiMan_Doku").Column
x1verr = Range("DokuB_VerrBetrag").Row
x2verr = x1verr + Range("DokuB_VerrBetrag").Rows.Count - 1
y1verr = Range("DokuB_VerrBetrag").Column
y2verr = Range("DokuB_VerrKreuz").Column
' Aenderungen
If xDoku >= x1Aend And xDoku = x1Unt And xDoku = x1Bei And xDoku = x1verr And xDoku = y1verr And yDoku 


GreetZ Renée

Anzeige
AW: Absturz
29.02.2008 14:50:20
Urs
Renée,
Super Danke !
es funktioniert, nicht wegen dem "For each" aber wegen dem Einpacken des Codes in "Application.EnableEvents = [False,True]".
Ich habe nicht gewusst, dass man das auch in den Ereigniscode selbst verwenden kann ! Super !
Und auch Super Service, ich werde mich bei ähnlichen Problemen wieder an euch wenden !
Herzliche Grüsse, Urs

AW: Absturz
29.02.2008 15:06:00
Renee
Hi Urs,
1. Hat das ganze nix mit Transponieren zu tun, sondern allein mit der Tatsache, das mehrere Zellen verändert werden.
2. Der for each ist wichtig, damit bei jeder Zelle des Targets dein Code durchlaufen wird. sonst bekommst du ev. falsche Resultate, wenn mit einem Change (z.B. Copy/Paste) mehrere Zellen deiner Bereiche betroffen sind.
GreetZ Renée
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige