Bereich kopieren wenn Wert "x"
#1
Hallo Leute.

Ich sehe vor lauter Bäumen den Wald nicht mehr...
Ich habe irgendwo mal einen Code gefunden, der eine Spalte auf "x" untersucht und bei WAHR den Bereich A:D in ein anderes Blatt kopiert.
Funktioniert auch tadellos für mich.

Code:
Option Explicit
Sub Warenkorb()
    Dim i As Variant
    Dim Loletzte As Long
    Dim loletzte2 As Long

    Loletzte = Worksheets("Katalog").Cells(Rows.Count, 4).End(xlUp).Row
    Worksheets("Warenkorb").Range("A3:D" & Loletzte).ClearContents
    loletzte2 = Worksheets("Warenkorb").Cells(Rows.Count, 4).End(xlUp).Row + 1
    Application.ScreenUpdating = False
    For i = 2 To Loletzte
        If Worksheets("Katalog").Cells(i, 5).Value = "x" Then
            Worksheets("Warenkorb").Range("A" & loletzte2 & ":D" & loletzte2) = _
            Worksheets("Katalog").Range("A" & i & ":D" & i).Value
            loletzte2 = loletzte2 + 1
        End If
    Next
    Application.ScreenUpdating = True
    Sheets("Warenkorb").Select
    Range("A1").Select
End Sub

Mein "Problem" ist jetzt, dass der Code nur Werte einfügt, was ich brauche ist volles copy&paste
Sprich Bilder Formatierung etc alles muss mit.
Hatte den genialen Einfall bei
Code:
Worksheets("Katalog").Range("A" & i & ":D" & i).Value
einfach das value durch paste ersetzen könnte, aber so einfach wars dann doch nicht.

Kann mir jemand von euch helfen?
Top
#2
Hallo,

vorher solltest du kopieren ... einfügen tut Excel selbst ...

Code:
Worksheets("Katalog").Range("A" & CStr(i) & ":D" & CStr(i)).Copy _
            Destination:=Worksheets("Warenkorb").Range("A" & loletzte2)
Top
#3
Danke für die schnelle Rückmeldung.
Im Prinzip verstehe ich deinen Post, also vom Gedanken her, aber ich stell mich grad ziemlich blöd an, ich weiß absolut nicht wohin damit.
Weils halt auch leider nicht aus meinem Mist gewachsen ist...

Könntest du es vllt ein bisschen noch für Doofe beschreiben? Danke :)

Also ich habe deine Zeilen hinter dem Then eingefügt und meine beiden ersetzt, aber ich verstehe einfach nicht, warum es so auf einmal geht Huh
Top
#4
Hallo,

erst mal schön, dass ich dein Problem lösen konnte. :17: 

Ich bedauere allerdings, dass ich dir damit ein weiteres bereite. :20: 

Also ... du möchtest die 4 Zellen kopieren ... mit allem Drum und Drin ... das macht die "Range.Copy-Methode" (unter dieser Bezeichnung, findest du es auch in der Online-Hilfe).
Die kopiert die Zellen, wie sie in Excel stehen ... und der Parameter "Destination:=" gibt an, wohin.

Jetzt etwas klarer ? :21:
[-] Folgende(r) 1 Nutzer sagt Danke an Flotter Feger für diesen Beitrag:
  • WeisserWolf611
Top
#5
Hallo

Sabina hat es bereits erklaert, hier noch mal der genaue Unterschied zwischen den beiden Schreibweisen, bei gleicher Funktion!!
Ich denke der Unterschied springt direkt ins Auge, man muss die kurze Schreibweise natürlich kennen!!  Beide funktionieren.

mfg  Gast 123

Code:
Sub Makro1()
'Profi Copy Methode  -ohne Application.CutCopyMode = False!!
Worksheets("Katalog").Range("A" & CStr(i) & ":D" & CStr(i)).Copy _
  Destination:=Worksheets("Warenkorb").Range("A" & loletzte2)

'normaler Copy Standard Code über PasteSpecial!!
Worksheets("Katalog").Range("A" & CStr(i) & ":D" & CStr(i)).Copy
Worksheets("Warenkorb").Range("A" & loletzte2).PasteSpecial xlPasteAll
Application.CutCopyMode = False
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an Gast 123 für diesen Beitrag:
  • WeisserWolf611
Top
#6
Jetzt ist es selbst für mich klar geworden. Habe zusätzlich noch ein wenig mehr zu den Methoden gelesen. Erstaunlich wie einfach es sein kann, wenn man weiß was man tut :)

Danke euch beiden für die Unterstützung. Ihr habt mich schlauer gemacht
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste