Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

Eintrag in anderes Blatt übertragen

Forumthread: Eintrag in anderes Blatt übertragen

Eintrag in anderes Blatt übertragen
12.11.2024 09:12:18
KDF
Hallo und guten Morgen.
Ich habe folgenden Code:

Sub Buchen()
Sheets("Buchen").Select
Range("d9:e9").Select
Selection.Copy
Sheets("Journal").Select
If Range("D10") > "" Then
Range("D9").End(xlDown).Select
ActiveCell.Offset(1, 0).Select
Else
Range("D10").Select
End If
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Sheets("Buchen").Select
Range("d9").Select
Application.CutCopyMode = False
Range("D9:E9").Select
Selection.ClearContents
Sheets("Startseite").Select
Range("B2").Select

End Sub

Dieser überträgt eine Eingabe in ein anderes Blatt.
Nu möchte ich diesen Eintrag auch auf ein anders Blatt eintragen in Blatt: "Abrechnung Zeitraum" Zellen B8:C8
Wo muss jetzt genau welcher Befehl hin?
Wer kann helfen?

Bis dann,
Klaus D.
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eintrag in anderes Blatt übertragen
12.11.2024 09:59:58
MCO
Moin!

Zur Übersicht: .select kann ich 99% der Fälle wegfallen.

Nach meinem Empfinden müsstest du damit gut klarkommen:

Sub Buchen()


Sheets("Buchen").Range("d9:e9").Cut 'bei Ausschneiden entfällt "Clearcontents"

With Sheets("Journal") 'kein springen auf das Blatt notwendig

If .Range("D10") > "" Then
Set einfüg = .Range("D9").End(xlDown).Offset(1, 0) 'Range als Variable festlegen
Else
Set einfüg = .Range("D10")
End If

'Alternativ: Kurzform der if Klausel:
'Set einfüg = IIf(.Range("D10") > "", .Range("D9").End(xlDown).Offset(1, 0), .Range("D10"))

einfüg.PasteSpecial Paste:=xlValues '1 überflüssig?
einfüg.PasteSpecial Paste:=xlFormats

Sheets("Abrechnung Zeitraum").Range("B8:C8").PasteSpecial Paste:=xlValues '1 überflüssig?
Sheets("Abrechnung Zeitraum").Range("B8:C8").PasteSpecial Paste:=xlFormats

'Sheets("Buchen").Range("D9:E9").ClearContents 'entfällt
Sheets("Startseite").Select
Range("B2").Select

End Sub


Gruß, MCO
Anzeige
AW: Eintrag in anderes Blatt übertragen
12.11.2024 10:20:23
KDF
Vielen Dank MCO,
werde ich später mal probieren, muss jetzt weg.
Ich habe vor ca. 15 Jahren das letzte Mal mit VBA gearbeitet.
Dabei habe ich mir fertige Sachen angesehen und mir einiges, was ich brauchen konnte, für mich umgebaut und genutzt.
Deshalb sind sicher Sachen in den Befehlen die nicht nötig sind aber es funzte halt.
Ich melde mich wieder.

Bis dann,
Klaus D.
Anzeige
AW: Eintrag in anderes Blatt übertragen
12.11.2024 13:04:31
KDF
Hallo MCO,
leider bekomme ich eine Fehlermeldung:
Fehler beim Kompilieren:
End With erwartet

Was muss ich tun?

Bis dann,
Klaus F.
AW: Eintrag in anderes Blatt übertragen
12.11.2024 14:08:53
Piet
Hallo

setzte VOR End Sub ein End With, dann ist das Problem gelöst.
Warhscheinlich gehört es vorher in den Code, funktioniert aber auch am Ende!

With Klammer erkennst du daran, das Range oder Cells, die sich auf -With- beziehen! Immer mit Punkt angegeben werden!
Den Punkt findest du auch im Code des Kollegen, in den IF Tehn Anweisungen! With muss aber auch mit End With beendet werden!

mfg Piet
Anzeige
AW: Eintrag in anderes Blatt übertragen
12.11.2024 18:54:03
Piet
Hallo

ich habe den Fehler gefunden, kann ihn -technisch- aber NICHT erklären! Ziemlich simpel!!
Excel stört sich an CUT, mit Copy funktioniert es! Warum das so ist, keine Ahnung??
Stelle einfach um auf Copy mit anschließendem ClearContents. Dann sollte es klappen.

mfg Piet

PS nach 20 Jahren programmieren habe ich aufgehört darüber nachzudenken warum manches klappt, manches Nicht?
Anzeige
AW: Eintrag in anderes Blatt übertragen
12.11.2024 19:40:21
KDF
Ich schaffe es leider nicht, keine Ahnung was /wo genau ich das jetzt ändern muss.
Schick mir doch bitte einmal den Code komplett.

Danke im Voraus,
Klaus D.
AW: Eintrag in anderes Blatt übertragen
13.11.2024 08:47:25
MCO
Moin, Piet!

Sorry für die Nachlässigkeit, aber ohne Tabelle kann man eben auch nix testen.

Hier der korrigierte Code:
Sub Buchen()


Sheets("Buchen").Range("d9:e9").Copy

With Sheets("Journal") 'kein springen auf das Blatt notwendig

If .Range("D10") > "" Then
Set einfüg = .Range("D9").End(xlDown).Offset(1, 0) 'Range als Variable festlegen
Else
Set einfüg = .Range("D10")
End If

'Alternativ: Kurzform der if Klausel:
'Set einfüg = IIf(.Range("D10") > "", .Range("D9").End(xlDown).Offset(1, 0), .Range("D10"))
End With

einfüg.PasteSpecial Paste:=xlValues '1 überflüssig?
einfüg.PasteSpecial Paste:=xlFormats

Sheets("Abrechnung Zeitraum").Range("B8:C8").PasteSpecial Paste:=xlValues '1 überflüssig?
Sheets("Abrechnung Zeitraum").Range("B8:C8").PasteSpecial Paste:=xlFormats

Sheets("Buchen").Range("D9:E9").ClearContents
Sheets("Startseite").Select
Range("B2").Select

End Sub
Anzeige
AW: Eintrag in anderes Blatt übertragen
13.11.2024 11:18:31
KDF
Hallo und guten Morgen.
Vielen Dank den Helfern.
Leider klappt das auch noch nicht, es wird wieder ein Fehler angezeigt, ich schicke die Datei dann mal mit hoch.
Diese Datei habe ich vor ca. 15 Jahren einmal erstellt, danach habe ich mich nicht mehr um Excel und VBA gekümmert.
Das Meiste ist "verloren gegangen".
Nu bin ich Rentner, meine Frau in Kürze auch, und wir müssen etwas genauer auf das Geld achten.
Deshalb dachte ich, ich nutze mal wieder diese Datei um die Stromkosten im Blick zu haben.

Bis dann,
Klaus F.
https://www.herber.de/bbs/user/173565.xls
Anzeige
AW: Eintrag in anderes Blatt übertragen
13.11.2024 11:33:17
MCO
Hallo Piet!

Der Bereich, in den du im Sheet "Abrechnung Zeitraum" die Daten aus D9:E9 einfügen wolltest, muss gleich groß sein. Laut deiner Programmierung war er das auch, in der Tabelle hast du allerdings 2 Zeilen zusammengefasst (warum auch immer).
Das war jedenfalls die Fehlerquelle.

Ich habe die Zuweisung in die einzelnen Zellen gemacht, jetzt läufts.

Sub Buchen()


Sheets("Buchen").Range("d9:e9").Copy

With Sheets("Journal") 'kein springen auf das Blatt notwendig

' If .Range("D10") > "" Then
' Set einfüg = .Range("D9").End(xlDown).Offset(1, 0) 'Range als Variable festlegen
' Else
' Set einfüg = .Range("D10")
' End If

'Alternativ: Kurzform der if Klausel:
Set einfüg = IIf(.Range("D10") > "", .Range("D9").End(xlDown).Offset(1, 0), .Range("D10"))
End With

einfüg.PasteSpecial Paste:=xlValues '1 überflüssig?

Sheets("Abrechnung Zeitraum").Range("B8") = Sheets("Buchen").Range("d9")
Sheets("Abrechnung Zeitraum").Range("c8") = Sheets("Buchen").Range("e9")

Sheets("Buchen").Range("D9:E9").ClearContents
Sheets("Startseite").Select
Range("B2").Select

End Sub


Gruß, MCO
Anzeige
AW: Eintrag in anderes Blatt übertragen
13.11.2024 11:56:24
KDF
Hallo MCO,
mein Name ist Klaus aber Piet hört sich auch gut an ;-))
Das funzt jetzt, vielen Dank.
Warum ich jetzt sooo viel Geld zurück kriegen soll muss ich nochmal erforschen, da scheint ja ein Berechnungsfehler oder so.
Jetzt bin ich einen Schritt weiter und habe einen Arbeitsschritt gespart.
Danke auch an die anderen Helfer.
Vllt bis zum nächsten Problem,
Klaus D.
Anzeige
Sorry, Piet, der Klaus heißt :-) owt.
14.11.2024 08:08:28
MCO
.
AW: Danke für den Hinweis, ich bin nicht unfehlbar oWt
13.11.2024 15:59:33
Piet
...
AW: Eintrag in anderes Blatt übertragen
12.11.2024 14:36:15
KDF
Oh man,
ich habe End With in die Zeile über End Sub eingetragen, Daten eingegeben und jetzt kommt folgende Fehlermeldung:

Laufzeitfehler '1004':
Die PasteSpezial-Methode des Range-Objektes konnte nicht ausgeführt werden.

Wenn ich Debuggen anklicke wird mir:
"einfüg.PasteSpecial Paste:=xlValues '1 überflüssig?"
gelb markiert angezeigt.

Was kann/muss ich tun?

Bis dann,
Klaus F.
Anzeige
AW: Eintrag in anderes Blatt übertragen
12.11.2024 13:36:24
KDF
Wenn ich mit ok bestätige wird "Sub Buchen()" gelb hinterlegt
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18