Makroprobleme mit Excel

  • #1
B

Bulli

Mitglied
Themenersteller
Dabei seit
17.11.2002
Beiträge
24
Reaktionspunkte
0
Hallo da draußen,

mich plagt wieder ein Problem mit Excel. Es ist äußerst schwierig das zu beschreiben. In meiner Datei sind mehrere Makros, die nicht miteinander arbeiten wollen. Ein Makro ist für die Bearbeitungsrichtung zuständig. (Makro 1)

Private Sub Worksheet_Active()
Application.MoveAfterReturnDirection = xlDown( auf einem anderen Blatt = xlRight)
End Sub


dann folgt für ein Registerblatt ein Makro, dass nach Eingabe von 10 Werten einen automatischen Sprung in die nächste Spalte durchführt. (Makro 2)

Private Sub Worksheet_Change(ByVal Target As Range)
'Target ist der geänderte Bereich. Er kann mehr als eine Zeile umfassen
'Dim zelle As.Range
Dim r As Long, c As Long, anz As Long

anz = 0
For Each zelle In Target
anz = anz + 1
Next

If anz = 1 Then 'nur wenn eine Zelle geändert wurde
For Each zelle In Target
If zelle.Row = 11 Then 'Zeile 11 ??
Cells(2, zelle.Column + 1).Select
Beep
End If
Next
End If
End Sub


und nun folgt mein Problem. Die Zusammenfassung der Werte soll übertragen werden in eine Liste auf einem weiteren Blatt durch folgendes Makro: (Makro 3)

Sub Inhalt_einfügen()
'
' Inhalt_einfügen Makro
' Makro am 22.11.2002 von Mir aufgezeichnet
'

'
Sheets(Meßdaten).Select
Application.Run KK_Test.xlt!Mark_Copy
Sheets(Meßdatenliste).Select
ActiveCell.Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
End Sub


Makro 1 und Makro 3 haben in der Datei bereits einige Zeit problemlos zusammengearbeitet. Nachdem ich zur Erleichterung Makro 2 eingefügt habe meldet sich Visual Basic mit Fehler 1004 und text: Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden.

Kann mir jemand helfen
 
  • #2
Ola,

nach einem ersten Blick liegt das Problem am neu aufgezeichneten Makro, dort kommt die Fehlermeldung her ...
 
  • #3
Hallo,

hat niemand eine Idee wie ich mein Problem lösen kann. Letztes Mal hat Matjes mir super weitergeholfen, aber der hat den Beitrag wohl noch nicht gelesen.
 
  • #4
Ola,

tja, das ist in freiwilligen Foren halt so ...

nach einem zweiten Blick auf Dein Makro scheint ein Befehl zu fehlen: Selection.Copy. Ich vermute, dass der durch die Application erzeugt wird. Es müssen Exceldaten in der Zwischenablage sein, bevor sie mit PasteSpezial eingefügt werden. und hier scheint das Problem zu liegen. Ich kann aber nicht entdecken, warum das zweite Makro hier eingreifen soll ...
 
  • #5
Bulli schrieb:
'Dim zelle As.Range

Makro 1 und Makro 3 haben in der Datei bereits einige Zeit problemlos zusammengearbeitet. Nachdem ich zur Erleichterung Makro 2 eingefügt habe meldet sich Visual Basic mit Fehler 1004 und text: Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden.
Könnte es sein, dass die 1. Zeile, oben im Zitat, im laufenden Makro auch auskommentiert ist? ???
Dann funktioniert die Variable natürlich auch nicht und damit liegt eigentlich auch Dein ganzes 2. Makro lahm. ;D

Du solltest vielleicht in jedem Makromodul, welches Du anlegst (nicht in jedem Makros selbst) ganz oben als erste Zeile stehen haben Option Explicit.
Das hat den nicht zu unterschätzenden Vorteil, dass Excel Dir jeden auch noch so erdenklichen Variablen-Deklarations-Fehler meldet.

Das kann man mit einer Option einschalten und zwar im Visual-Modul-Fenster unter Extras-Optionen einfach die Option Variablendeklaration erforderlichaktivieren.

Gruß, Wolfgang
 
  • #6
Hallo,

also was BigWoelfi vorgeschlagen hat, habe ich probiert. Ich denke, dass ich da noch einen Fehler eingebaut habe, denn es kommt keine andere Fehlermeldung.

Ich habe probiert, den Schritt, den das Makro übernimmt sozusagen zu Fuß auszuführen. Also auf dem einen Tabellenblatt die Zeile markiert und Kopiert, auf das andere Tabellenblatt gewechselt und dann versucht einzufügen. Auch das funktioniert nicht. Beim Wechsel vom einen zum anderen Tabellenblatt wird die kopierte Markierung deaktiviert.

Ich weiß da echt nicht weiter, aber im Voraus schon mal danke für Eure Unterstützung
 
  • #7
Ola,

ich hab immer noch nicht das Problem erfasst.

Bei mir sieht das so aus (in beiden Blättern hab ich beim Aufzeichnen die besthende Markierung nicht verändert ...
....
Sheets(Meßdaten).Select
Selection.Copy
Sheets(Meßdatenliste).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
...
 
  • #8
Bulli schrieb:
was BigWoelfi vorgeschlagen hat, habe ich probiert. Ich denke, dass ich da noch einen Fehler eingebaut habe, denn es kommt keine andere Fehlermeldung.
Hast Du das mit der auskommentierten Zeile überprüft, in der die Variable zelle offenbar deklariert wird?
Und ist das überhaupt richtig so? Muss das nicht eigentlich heißen: Dim zelle As Range?
Bei Dir steht konkret 'Dim zelle As.Range. Mit Hochkomma am Anfang und einem Punkt zwischen As und Range.???

Hast Du bei der Schritt für Schritt - Variante auch mal nachgeschaut, ob Deine Variable tatsächlich Inhalt hat, wenn Sie laut Makro etwas haben sollte? ???

Dein zu Fuß verstehe ich schon so, dass Du das Makro Schritt für Schritt, also Zeile für Zeile ausgeführt hast, oder?
Dann dürfte die Markierung für das Kopieren genauso automatisch aufgehoben werden, wie zum Beispiel, wenn Du etwas kopierst, manuell auf eine anderes Blatt wechselst und eben nicht die Kopie dort einfügst, sondern etwas ganz anderes machst. Danach hast Du das vorher Kopierte ja auch nicht mehr zur Verfügung, weil inzwischen die Aktion durch Excel intern abgebrochen worden sein dürfte.

Übrigens, der Eintrag in der ersten Zeile muss genau so geschrieben werden, wie ich es mitgeteilt habe. Wenn da statt einem c ein k drinsteckt, geht das auch nicht. So einen Fehler habe ich mal elendig lange gesucht.
Betriebsblindheit oder so. ;D

Gruß, Wolfgang

P.S.
Wenn das alles nicht geht, solltest Du vielleicht doch mal den ganzen Komplex hier posten, der zusammen gehört, also den Inhalt des kompletten Moduls.
Hier haben schon andere lange Abhandlungen gestanden. ;D
 
  • #9
Bulli schrieb:
Application.Run KK_Test.xlt!Mark_Copy
Mir ist gerade das hier aufgefallen, hatte ich übersehen. ;D
Was ist das denn genau? Eine Markierung in die Zwischenablage kopieren mittels Makro? ???

Vielleicht liegt es ganz einfach an der Übergabe.
Vielleicht solltest Du das, was Du von dem einen Tabellenblatt holst, in eine weitere Variable speichern zunächst, deren Inhalt du dann auf dem anderen Tabellenblatt einfügst.

Allerdings weiß ich nicht, wie man das nicht nur Modul übergreifend, sondern auch noch Datei übergreifend macht.

So viel Programmiercode kann das ja nicht sein. Leg einfach ein weiteres Makro dafür in Deinem jetzigen Modul an, oder eine Funktion.

Excel hat doch dieses Problem, dessen Hintergrund mir noch nie verständlich war, dass man oft auf dem Zielblatt die Daten plötzlich nicht mehr zur Verfügung hat.

Beispiel:
Geh mal auf ein Excelblatt, markiere irgend etwas und kopiere es dann.
Geh auf ein anderes Blatt und lösche dort zunächst eine Zeile.
Versuche jetzt in die nächste Zelle einzufügen, was Du vom anderen Blatt haben wolltest.
Weg ist die Einfügemöglichkeit, weil die Markierung durch die andere Aktion aufgehoben worden ist. Excel denkt offenbar, Du willst gar nicht mehr einfügen. ;D

Vielleicht verliert Dein Makro aus der anderen Datei ja genau auf diesem Wege seine transportierten Daten. ???

Gruß, Wolfgang
 
  • #10
Hallo,

zuerst muß ich mich einmal entschuldigen, dass ich mich erst jetzt wieder melde. Ich war krank und habe seit Freitag nur gelegen. Nun zu meinem Problem. Wolfgang, ich glaube, Du bist auf dem richtigen Weg. Es muß an der Übergabe der kopierten Daten liegen. Das, was ich als zu Fuß bezeichnete, bedeutet, ich habe von Hand die Daten markiert, dann bin ich auf kopieren gegangen. Nachdem ich dann das Registerblatt gewechselt habe funktionierte nichts. Auch der blinkende Kranz um die ausgewählten Daten war inaktiv. Es funktionierte sogar nichtmehr nachdem ich nur das Registerblatt gewechselt habe und wieder zurüchgegangen bin. Auch da war der blinkende Kranz inaktiv. Ich weiß da nicht weiter. Ich kann Dir aber evtl mal eine Mappe direkt zumailen. Wir müssten nur die E-Mailadressen austauschen.

Trotzdem schon einmal danke
 
  • #11
Bulli schrieb:
Ich kann Dir aber evtl mal eine Mappe direkt zumailen. Wir müssten nur die E-Mailadressen austauschen.
Erst mal vorweg gute Besserung.
Du kannst die Mappe gern schicken, wenn sie in Excel97 ist. Ich kann gerade mal Deine verwendete Version nicht finden.
Und noch etwas, ich gehe auf Kur und weiß nicht, ob ich die Zeit finde. Du müsstest Dich dann schon beeilen. E-Maille steht im Profil. Deine kriege ich ja über die Sendung.
Aber bitte, bitte, ohne Virus ;D

Gruß, Wolfgang
 
Thema:

Makroprobleme mit Excel

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben