Ich habe mir ein größeres Makro zusammengebastelt. Es soll Infos zu meinem Unterricht nachträglich an Schüler senden.
Ich habe es in MS Excel 03 erstellt und NICHT in Open office.
Ich habe es mehrfach erfolgreich angewendet.
Dann habe ich wegen eines Hängers von Excel die Mappe im noch reagierenden Alternativprogramm Sun Open Office 3.1 Calc geöffnet.
Dort habe ich einen kleinen Eintrag gemacht in irgendeiner Zelle (Name oder Datum eintragen, etc.)
Dann habe ich die File "Klassenbuch.xls", um die es hier geht, geschlossen.
Excel hat inzwischen schon wieder reagiert. Dann habe ich das Klassenbuch.xls in XL 03 geöffnet und wollte das Makro (den Teil den ihr unten seht ist der Teil, bei dem in der LETZTEN Zeile ein Bug liegt!! Eig. geht es noch weiter!!) mal wieder nutzen, um eine Gitarrenstunde nachzubereiten.
Da kommt doch bei dem UNVERÄNDERTEN Makro der Fehler:
Laufzeitfehler '1004': Die INformationen können nicht eingefügt werden, da der Bereich Kopieren und der Bereich zum Einfügen unterschiedliche Formen und Größen haben. Versuchen Sie folgendes:
Markieren Sie eine einzelne Zelle und wählen Sie dann "Einfügen".
Markieren Sie einen Bereich, der dieselbe Größe und Form hat und wählen Sie dann "Einfügen".
BEENDEN DEBUGGEN HILFE
[alter Code, funzte mal problos in Excel]
Sub Email()
'Bildschirmaktualisierung während des Makro-Prozesses ausstellen
Application.ScreenUpdating = False
'Arbeitsblatt EMAIL auswählen
Sheets("EMAIL").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'dort evtl. von vorher noch vorhandene Zellen löschen
Selection.Delete Shift:=xlUp
' Y O U T U B E
'Arbeitsblatt YOUTUBE auswählen
Sheets("YOUTUBE").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'Kopieren durchführen, jedoch von eingeblendeten Zellen
Selection.SpecialCells(xlCellTypeVisible).Copy
'Arbeitsblatt EMAIL auswählen
Sheets("Email").Select
'dort in Zelle A1 "Deine Youtube - Links für heute" schreiben
Range("A1") = "Deine Youtube - Links für heute"
'dort die Zelle A2 auswählen
Range("A2").Select
'Tabellenblatt EMAIL mit den Spaltenbreiten aus YOUTUBE layoutmäßig vorbereiten
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'in das aktive Blatt aus dem Cache einfügen
ActiveSheet.Paste
'in das Feld springen, wo der Empfängername im Klartext steht
Range("I2").Select
' E M A I L E M P F Ä N G E R V O R B E R E _
_
I T E N
'den Empfängernamen kopieren
Selection.Copy
'das Arbeitsblatt "ADRESSEN" auswählen
Sheets("ADRESSEN").Select
'Dort Zelle A1 anwählen
Range("A1").Select
'Cache in das Blatt "ADRESSEN" einfügen
ActiveSheet.Paste
' W I K I P E D I A
'Arbeitsblatt WIKIPEDIA auswählen
Sheets("WIKIPEDIA").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'Kopieren durchführen, jedoch von eingeblendeten Zellen
Selection.SpecialCells(xlCellTypeVisible).Copy
'Arbeitsblatt EMAIL auswählen
Sheets("Email").Select
'von der untersten Zeile der letztgültigen Markierungen noch eine Zeile nach unten in die 1. _
unmarkierte Zeile gehen
Cells(1, 1).End(xlDown).Offset(1, 0).Select
'dort "Deine Wiki - Links für heute" schreiben
ActiveCell.Value = "Deine Wiki - Links für heute"
'von dort eine Zelle nach unten gehen
ActiveCell.Offset(1, 0).Select
'genau da den Cache einfügen
ActiveSheet.Paste
'dort das linke Feld J1 auswählen
Range("J1").Select
'ab dort die komplette obere Zeile markieren
Range(Selection, Selection.End(xlToRight)).Select
'alle darunter liegenden Zellen auch markieren
Range(Selection, Selection.End(xlDown)).Select
'diesen markierten Bereich ausblenden
Selection.EntireColumn.Hidden = True
' T R A I N I N G S P L A N
'Arbeitsblatt TRAININGSPLAN auswählen
Sheets("TRAININGSPLAN").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'Kopieren durchführen, jedoch von eingeblendeten Zellen
Selection.SpecialCells(xlCellTypeVisible).Copy
'Arbeitsblatt EMAIL auswählen
Sheets("Email").Select
'von der untersten Zeile der letztgültigen Markierungen noch eine Zeile nach unten in die 1. _
unmarkierte Zeile gehen
Cells(1, 1).End(xlDown).Offset(1, 0).Select
'dort "Dein Trainingsplan-Vorschlag" schreiben
ActiveCell.Value = "Dein Trainingsplan-Vorschlag"
'von dort eine Zelle nach unten gehen
ActiveCell.Offset(1, 0).Select
'genau da den Cache einfügen
ActiveSheet.Paste
dann habe ich erfolglos auf anderen Foren rumgesucht!
Ich habe dann den Code auf Verdacht verändert auf:
[neuer Code nachdem nach Open Office Nutzung der Bug (s.o.) kam]
Sub Email()
'Bildschirmaktualisierung während des Makro-Prozesses ausstellen
Application.ScreenUpdating = False
'Arbeitsblatt EMAIL auswählen
Sheets("EMAIL").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'dort evtl. von vorher noch vorhandene Zellen löschen
Selection.Delete Shift:=xlUp
' Y O U T U B E
'Arbeitsblatt YOUTUBE auswählen
Sheets("YOUTUBE").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'Kopieren durchführen, jedoch von eingeblendeten Zellen
Selection.SpecialCells(xlCellTypeVisible).Copy
'Arbeitsblatt EMAIL auswählen
Sheets("Email").Select
'dort in Zelle A1 "Deine Youtube - Links für heute" schreiben
Range("A1") = "Deine Youtube - Links für heute"
'dort die Zelle A2 auswählen
Range("A2").Select
'Tabellenblatt EMAIL mit den Spaltenbreiten aus YOUTUBE layoutmäßig vorbereiten
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
'in das aktive Blatt aus dem Cache einfügen
ActiveSheet.Paste
'in das Feld springen, wo der Empfängername im Klartext steht
Range("I2").Select
' E M A I L E M P F Ä N G E R V O R B E R E _
_
I T E N
'den Empfängernamen kopieren
Selection.Copy
'das Arbeitsblatt "ADRESSEN" auswählen
Sheets("ADRESSEN").Select
'Dort Zelle A1 anwählen
Range("A1").Select
'Cache in das Blatt "ADRESSEN" einfügen
ActiveSheet.Paste
' W I K I P E D I A
'Arbeitsblatt WIKIPEDIA auswählen
Sheets("WIKIPEDIA").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'Kopieren durchführen, jedoch von eingeblendeten Zellen
Selection.SpecialCells(xlCellTypeVisible).Copy
'Arbeitsblatt EMAIL auswählen
Sheets("Email").Select
'von der untersten Zeile der letztgültigen Markierungen noch eine Zeile nach unten in die 1. _
unmarkierte Zeile gehen
Cells(1, 1).End(xlDown).Offset(1, 0).Select
'dort "Deine Wiki - Links für heute" schreiben
ActiveCell.Value = "Deine Wiki - Links für heute"
'von dort eine Zelle nach unten gehen
ActiveCell.Offset(1, 0).Select
'genau da den Cache einfügen
ActiveSheet.Paste
'dort das linke Feld J1 auswählen
Range("J1").Select
'ab dort die komplette obere Zeile markieren
Range(Selection, Selection.End(xlToRight)).Select
'alle darunter liegenden Zellen auch markieren
Range(Selection, Selection.End(xlDown)).Select
'diesen markierten Bereich ausblenden
Selection.EntireColumn.Hidden = True
' T R A I N I N G S P L A N
'Arbeitsblatt TRAININGSPLAN auswählen
Sheets("TRAININGSPLAN").Select
'dort alle Zellen auswählen (entspricht STRG+A)
Cells.Select
'Kopieren durchführen, jedoch von eingeblendeten Zellen
Selection.SpecialCells(xlCellTypeVisible).Copy
'Arbeitsblatt EMAIL auswählen
Sheets("Email").Select
'von der untersten Zeile der letztgültigen Markierungen noch eine Zeile nach unten in die 1. _
unmarkierte Zeile gehen
Cells(1, 1).End(xlDown).Offset(1, 0).Select
'dort "Dein Trainingsplan-Vorschlag" schreiben
ActiveCell.Value = "Dein Trainingsplan-Vorschlag"
'von dort eine Zelle nach unten gehen
ActiveCell.Offset(1, 0).Select
ActiveCell.EntireRow.Select
**************
Wer kann mir helfen, dass der alte Code der mal GING!! wieder funzt, nachdem ich in OOffice 3 scheinbar was zerhauen habe? Danke für Tipps im Voraus
LG HR