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.

ausgewählte Daten kopieren und einfügen
#1
Hallo Freunde,

ich bin auf der Suche nach einer Makrolösung für folgenden Sachverhalt:

- kopiere Thema, Termin und Verantwortlichen, aber nur für Zeilen, die mit "x" gekennzeichnet sind
- füge es in "Dashboard" ein (in dafür vorgesehene Tabelle) ACHTUNG: Tabelle ist dynamisch und kann nach oben und unten verschoben sein (Also kein direkter Zellbezug)

Folgenden Vorschlag habe ich zu machen:


Code:
Private Sub CommandButton3_Click()

  Dim i&, k&, a     ' i und z braucht man immer, a+b sind "Arrays"
  Dim bis&          ' & = as long
  Const von = 6     ' erste Zeile mit Daten
  
  Application.ScreenUpdating = False
  bis = Range("B" & Rows.Count).End(xlUp).Row + 1
  a = Range("B" & von & ":E" & bis)
  For i = 1 To UBound(a)
    If a(i, 2) = "x" Then
        bis = Sheets(a(i, 3)).Range("B2000").End(xlUp).Row + 1 ' 2000 reicht hier ja...
        If IsError(Application.Match(a(i, 1), Worksheets(a(i, 3)).Range("B1:B" & bis), 0)) Then
        Sheets(a(i, 3)).Range("B" & bis) = a(i, 1)
        Sheets(a(i, 3)).Range("C" & bis) = a(i, 4)
        Sheets(a(i, 3)).Range("B8:C8").Copy  ' da ist das gleiche Format
        Sheets(a(i, 3)).Range("B" & bis).Resize(, 2).PasteSpecial xlFormats
        End If
    End If
  Next
  For i = 1 To UBound(a)
    If a(i, 2) = "x" Then
        bis = Sheets(a("Dashboard")).Range("B2000").End(xlUp).Row + 1
        If IsError(Application.Match(a(i, 1), Worksheets(a("Dashboard")).Range("B1:B" & bis), 0)) Then
        Sheets(a("Dashboard")).Range("B" & bis) = a(i, 1)
        Sheets(a("Dashboard")).Range("E" & bis) = a(i, 4)
        Sheets(a("Dashboard")).Range("F" & bis) = a(i, 3)
        End If
    End If
  Next
  
  Application.ScreenUpdating = True
End Sub


Der letzte For ... Next Bereich irgendwie angepasst werden.

Im Anhang eine Bsp. Datei:

Vielen Dank
Berndt


Angehängte Dateien
.xlsm   108228.xlsm (Größe: 144,76 KB / Downloads: 3)
Antworten Top
#2
Hallo Berndt,

Du verwendest mehrfach
Sheets(a("Dashboard"))
Was willst Du denn damit erreichen? Wenn Du was auf das Blatt Dashboard haben willst, dann müsste es doch
Sheets("Dashboard")
heißen?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


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