Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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?
Antworten 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)
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Antworten 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
Antworten 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:
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
[-] Folgende(r) 1 Nutzer sagt Danke an Flotter Feger für diesen Beitrag:
  • WeisserWolf611
Antworten 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
Antworten 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
Antworten Top


Gehe zu:


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