VBA-Kopieren

Bild

Betrifft: VBA-Kopieren
von: Raphael Rudawski
Geschrieben am: 17.08.2015 15:08:25

Hallo Community,
ich bin gerade dabei verschiedene Listen zu verknüpfen und möchte hierzu von der "Datentabelle" alle Werte (Zeile;3) auf einen Inhalt prüfen.
Wenn Zeile x in der Spalte 3 = "Meilenstein" dann kopiere den Wert aus der Zeile x in der Spalte 3 in das Worksheet "Verknüpfung schaffen".
Jedes mal wenn eine Übereinstimmung gefunden wird soll unter die vorherige Zeile in das Worksheets "Verknüpfung schaffen" kopiert werden.
Hier schon mal mein Lösungsansatz, welcher zu keinem Ergebnis führt...
Sry dass ich euch alle so oft Belästige. Bin aktuell dabei als Teilgebiet meiner BA-Thesis eine Projektmanagement-Oberfläche zu gestalten.
Vielen Dank im Voraus für eure Unterstützung!
Anbei wie immer die Datei

Sub Transfer()
Dim wksQuelle As Worksheet, wksZiel As Worksheet
With ActiveWorkbook
Set wksQuelle = .Worksheets("Datentabelle")
Set wksZiel = .Worksheets("Verknüpfung Schaffen")
End With
With wksQuelle
k = 13
S = 2
n = 1
Do While Not S = 0
If Cells(k, 2) = "" Then
S = 0
Else
If Cells(k, 3).Value = "Meilenstein" Then
Cells(k, 6).Copy Destination:=wksZiel.Cells(n, 1)
n = n + 1
End If
End If
k = k + 1
Loop
End With
End Sub

Hier die Datei: https://www.herber.de/bbs/user/99644.xlsm

Bild

Betrifft: Nachgefragt
von: AlexG
Geschrieben am: 17.08.2015 15:44:20
Hallo Raphael,
du wolltest sicherlich in Zeile acht deiner Zieltabelle starten, oder?
Für deine With- Klammer hast du die Punkte vor den Cells nicht gesetzt, was wenn du aktuell in diesem Blatt bist keine Auswirkungen hat, aber zu fehlerhaften Daten führt wenn du das Makro aus einem anderen Blatt startest. Sicher dass auch leere Zellen kopiert werden sollen? Reicht es auch nur die Werte zu übertragen, ohne die "ganze Zelle" zu kopieren? Noch ein Tipp als Schalter eignet sich eher eine Boolean- Variable.
Gruß
Alex
PS. Hier mal dein Beispiel umgestellt.

Sub Transfer()
Dim wksQuelle As Worksheet, wksZiel As Worksheet
Dim k&, n&
Dim s As Boolean
With ActiveWorkbook
Set wksQuelle = .Worksheets("Datentabelle")
Set wksZiel = .Worksheets("Verknüpfung Schaffen")
End With

k = 13
s = True
n = 8
With wksQuelle
    Do While s = True
        If .Cells(k, 2) = "" Then
        s = False
        Else
            If .Cells(k, 3).Value = "Meilenstein" Then
                .Cells(k, 6).Copy Destination:=wksZiel.Cells(n, 1)
                n = n + 1
            End If
        End If
        k = k + 1
    Loop
End With
End Sub


Bild

Betrifft: AW: VBA-Kopieren
von: Matthias
Geschrieben am: 17.08.2015 15:53:40
Hallo Raphael,


If Cells(k, 2) = "" Then
nicht das .Value vergessen ;)
mfg Matthias

Bild

Betrifft: AW: VBA-Kopieren
von: Raphael Rudawski
Geschrieben am: 18.08.2015 09:53:47
Hallo Mathias,
vielen Dank für deine schnelle Antwort.
Leider habe ich trotzdem wieder ein Bug...Kannst du dir bitte mal den Screenshot anschauen ? ;)
Userbild

Bild

Betrifft: Hast du dir...
von: AlexG
Geschrieben am: 18.08.2015 10:08:52
Hallo Raphael,
.... meinen Beitrag angesehen? Du startest in Zeile 1 beim Einfügen. Ich bin mir sicher, dass du eine Fehlermeldung wegen verbundenen Zellen bekommst.
Gruß
Alex

Bild

Betrifft: AW: Hast du dir...
von: Raphael Rudawski
Geschrieben am: 18.08.2015 14:39:24
Hallo Alex,
ich habe das ganze jetzt ab Zeile 8 starten lassen.
Problem....er kopiert nichts ;(

Sub Transfer()
Dim wksQuelle As Worksheet, wksZiel As Worksheet
With ActiveWorkbook
Set wksQuelle = .Worksheets("Datentabelle")
Set wksZiel = .Worksheets("Verknüpfung Schaffen")
End With
With wksQuelle
k = 13
S = 2
n = 8
Do While Not S = 0
If Cells(k, 2).Value = "" Then
S = 0
Else
If Cells(k, 3).Value = "Meilenstein" Then
Cells(k, 6).Copy Destination:=wksZiel.Cells(n, 1)
n = n + 1
End If
End If
k = k + 1
Loop
End With
End Sub


Bild

Betrifft: Es fehlen immer noch...
von: AlexG
Geschrieben am: 18.08.2015 18:39:28
Hallo Raphael,
...die Punkte vor den Cells in der With Klammer. Hast du das Makro aus der Tabelle gestartet in der die zu kopierenden Daten stehen?
Gruß
Alex

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Formelergebnis wird nicht angezeigt"