PDA

Vollständige Version anzeigen : Daten in anderes Worksheet übertragen


LeinadD
13.12.2017, 08:31
Guten Morgen,

ich möchte je nach Wochentag in meiner UF (siehe BSP Datei) wählen um dann die unter dem Wochentag stehenden Daten in das andere Tabellenblatt zu übertragen. In diesem tabellenblatt möchte ich immer nur einen Tag stehen haben.
Bin auch für Lösungsansätze dankbar. In der BSP Datei ist das Problem genau zu erkennen. Der Ansatz wie ich mir das vorstelle ist bereits Programmiert.

Danke für eure Hilfe, Gruß

MisterBurns
13.12.2017, 08:51
Hallo Gruß,

ich hab´s mal ganz primitiv mit dem Makrorekorder mittels Suchen und Copy/Paste gelöst. Ist nicht schön, aber es funktioniert.

Private Sub CB_2_Click()



If OB_Montag = True Then

Cells.Find(What:="Montag", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Tabelle2").Select
Range("H15").Select
ActiveSheet.Paste

ElseIf OB_Dienstag = True Then

Cells.Find(What:="Dienstag", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Tabelle2").Select
Range("H15").Select
ActiveSheet.Paste

ElseIf OB_Mittwoch = True Then

Cells.Find(What:="Mittwoch", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("Tabelle2").Select
Range("H15").Select
ActiveSheet.Paste

End If

End Sub


Du solltest halt den Zielbereich vorher noch löschen, denn wenn man zB Dienstag einfügt, bleibt die zweite Spalte von Montag bzw. Mittwoch erhalten.

LeinadD
13.12.2017, 09:45
wenn ich die Range z.B auf B2 ändere, also die Daten irgendwo anderst hinhaben möchte dann wird eine Fehlermeldung beim Befehl ActiveSheet.Paste angezeigt.

Und wo kann ich hier den Bereich in Tabelle1 auswählen den ich transferieren möchte. Ist ja nur als beispiel gedacht. Den Code versteh ich nicht, sorry. Vielleicht kannst du mir das erklären.

Gruß

MisterBurns
13.12.2017, 10:16
Gruß ist ja wirklich ein ungewöhnlicher Name...

If OB_Montag = True Then

'Dieser Teil sucht nach dem Wort "Montag" und markiert die entsprechende Zelle
Cells.Find(What:="Montag", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

'Dieser Teil markiert die Spalte bis zur letzten befüllten Zeile (Achtung: Leerzeilen vermeiden!)
Range(Selection, Selection.End(xlDown)).Select

'Markierung kopieren
Selection.Copy

'Blatt "Tabelle2" auswählen
Sheets("Tabelle2").Select

'Zelle H15 wählen
Range("H15").Select

'Einfügen
ActiveSheet.Paste

Wie gesagt, ist unschöner Makrorekordercode, kann man wesentlich eleganter machen (man ≠ ich)

Der Grund, warum es nicht geht wenn du als Zielbereich B2 eingibst, ist dass die Zellen B1 und C1 verbunden hast. Löse die Verbindung und dann geht es.

Gibt es eigentlich einen speziellen Grund, warum du die Z1S1 Bezugsart verwendest?

MisterBurns
13.12.2017, 10:36
Hab grad Blödsinn geschrieben - der Grund wegen dem Zielbereich B2 war ein anderer.
Das Suchergebnis hat nicht den Wert in Zeile 1 gefunden sondern das, was in dem Text als verbundene Zelle steht. Und das kann er halt nicht in eine einzelne Zelle einfügen.

LeinadD
13.12.2017, 12:34
Ein hoch auf dich, Berni. So kann ich damit arbeiten, Merci. nein den gibt es nicht, da hab ich irgendwo draufrumgeklickt ...