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

AW:Makro zum Einfügen neuer Zeilen geht nicht

AW:Makro zum Einfügen neuer Zeilen geht nicht
03.05.2005 15:17:01
Luc:-?
Hallo Silvia,
zu deinem im Betreff genannten Thread geschilderten Problem hier erst mal ein neuer "Brückenkopf" mit dem Zwischenbescheid: es liegt nicht primär am Makro, dass die Formelbezüge falsch wdn, sondern daran, was wohin kopiert wird! Excel hat keine Veranlassung, einen relativen Bezug auf eine andere Zeile zu ändern, nur weil eine Zeile eingeschoben wird, wenn die andere Zeile vor der Einschubzeile liegt. Das Ganze funktioniert nicht so, als wenn man die Formel über die Zeilen runterziehen würde. D.h. also, das Makro muss, wenn die vorletzte Zeile ausgefüllt wird, die letzte Zeile kopieren und nach der bisherigen letzten einfügen - nicht vor wie bisher. Dann klappt alles. Das kannst du ganz leicht manuell überprüfen. Ich werde jetzt noch die Befehle entsprechend anpassen und melde mich dann wieder. Du kannst es ja selbst auch probieren.
Außerdem halte ich die Vielzahl von Eventmakros für überflüssig. Da gibt es auch 2 Möglichkeiten:
1.Weiterhin zu jedem Blatt 1 Makro, aber mit parametriertem Aufruf eines einzigen Makros im Basismodul, das die Operation ausführt.
2.Makros zu allen Blättern streichen und auslösendes Ereignis im Workbook klassifizieren. Also hierher die Prozedur setzen und um Abfrage der relevanten Blätter ergänzen.
3.Kombination von 2 und 3 (1 Ereignismakro + 1 aufgerufenes Makro)
Die letzten beiden würde ich bevorzugen und dir den Code entsprechend neu fassen, falls du es nicht selber machen kannst oder willst.
Bis dann
Luc :-?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
@Silvia -- Hallo, hier bin ich! owT
03.05.2005 22:35:09
Luc:-?
AW: @Silvia -- Lösung
04.05.2005 16:51:05
Luc:-?
Hallo Silvia,
ich hoffe, du findest das hier. Kann leider den alten Thread nicht fortsetzen, weil ich nicht eMail-Benachrichtigung eingestellt hatte. Aber dafür jetzt die Lösung:
Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim eR As Long
On Error GoTo fh
If Target.Cells.Count > 1 Then Exit Sub
eR = Sh.Range("E65536").End(xlUp).Row - 5
Application.EnableEvents = False
If Target.Row = eR And Intersect(Target, Sh.Range("E:F")) Then
Sh.Rows(eR + 1).Select
Selection.Copy
Sh.Rows(eR + 2).Select
Selection.Insert Shift:=xlDown
Sh.Cells(eR + 1, 5).Select
Application.CutCopyMode = False
End If
fh: Application.EnableEvents = True
End Sub

Diesen Code bitte ins Klassenmodul des Workbooks (1.Objekt im Projekt-Baum, direkt vor den Blättern) eintragen. Dann können alle Klassenmodule der Arbeitsblätter (Worksheets) gelöscht wdn. Die Ereignisprozedur "AutoZeilenEinfügen" funktioniert trotzdem auf jedem Blatt. Der Inhalt de(r/s) bisherigen Basismodul(e/s) kann ebenfalls entfallen. Das Ganze war nicht weiter schwer - hatte bloß leider sehr wenig Zeit und noch andere Verpflichtungen.
Gruß Luc :-?
Anzeige

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige