Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Kopieren und löschen





Frage

Hallo zusammen, Ich möchte folgendes gerne verwirklichen und weiß nicht ob das geht: Ich makiere in einem Blatt einen bereich, nach dem makieren soll ein button auftauchen der Auslagern heißt, wenn ich den drücke soll der makierte bereich in eine anderes Blatt (Auslagerliste)kopiert werden und in dem aktuellen Blatt soll nur die Spalte B des makierten bereichs gelöscht werden...da die anderen schreibgeschützt sind diesen vorgang führe ich mit verschiedenen Artikel durch,heißt das ich bei der nächsten Aktion daten In der Auslagerliste anhängen und nicht überschreiben möchte.... puuh...ich hoffe das habe ich einigermaßen verständlich formuliert... geht sowas??? vielen Dank im Voraus Gruß Ralf

Antwort 1 von Beverly

Hi Ralf,

leider weiß ich nicht genau, wie deine Tabellen aufgebaut sind, aber du kannst es ja mit diesem Code versuchen. Schreibe ihn in das Codefenster der Tabelle, aus der du die Daten kopieren willst

Option Explicit

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim strAnzeige As String
    Dim raBereich As Range
    Dim loLetzte As Long
    Set raBereich = Selection
    Cancel = True
    strAnzeige = MsgBox("Daten auslagern?", vbYesNo)
    If strAnzeige = vbNo Then
        Exit Sub
    Else
        With Worksheets("Auslagerliste")
            loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
            raBereich.Copy .Cells(loLetzte + 1, 1)
            Range(Cells(raBereich(1), 2), Cells(raBereich.Cells.Count, 2)).Clear
        End With
    End If
    Set raBereich = Nothing
End Sub

Die Daten des markierten Bereichs werden in die Auslagerliste jeweils in die nächst leere Zeile in Spalte A kopiert und anschließend Spalte B in der Ausgangstabelle über die Länge des markierten Bereich gelöscht. Ausgelöst wird der Code mit einem Rechtklick, nachdem der zu kopierende Bereich markiert wurde. Das hat allerdings zur Folge, dass dir das Kontextmenü, welches sich normalerweise bei einem Rechtsklick öffnet, nicht mehr zur Verfügung steht.

Bis später,
Karin

Antwort 2 von huli

Hallo Karin,
ersteinmal vielen Dank für Deine Antwort und hilfe.
das mit dem Kontextmenü ist kein problem das brauche ich an der stelle ja auch nicht
ich habe den code ausprobiert und bekomme folgende fehlermeldung:

Laufzeitfehler `13`:
Typen unverträglich

Range(Cells(raBereich(1), 2), Cells(raBereich.Cells.Count, 2)).Clear

kannst Du mir da nochmal helfen?
vielen Dank im voraus

Gruß
Ralf

Antwort 3 von Beverly

Hi Ralf,

hier der geänderte Code

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    Dim strAnzeige As String
    Dim raBereich As Range
    Dim loLetzte As Long
    Set raBereich = Selection
    Cancel = True
    strAnzeige = MsgBox("Daten auslagern?", vbYesNo)
    If strAnzeige = vbNo Then
        Exit Sub
    Else
        With Worksheets("Auslagerliste")
            loLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, .Rows.Count)
            raBereich.Copy .Cells(loLetzte + 1, 1)
        End With
    End If
    Range(Cells(raBereich(1).Row, 2), Cells(raBereich.Rows.Count + raBereich(1).Row - 1, 2)).Clear
    Set raBereich = Nothing
End Sub


Bis später,
Karin

Antwort 4 von Huli

Hallo Karin,
woow
funktioniert suuuuuper.........
vielen Dank
Gruß
Ralf
:-))))

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: