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.

2 Tabellen zusammenkopieren
#11
Hallo Fabian,

wenn du wirklich in Tabelle1 und Tabelle2 die beiden Spalten A+B vollkommen leer hast, dann so:
Ich verwende .Usedrange, in die Variable Tab1 und Tab2 wird damit der Bereich C1:Q8 genommen.
Sollte in den Spalten A+B doch Inhalt stehen, der zwar für deinen Wunsch hier im Forum nicht relevant ist, aber dennoch da, wirds nicht funktionieren!


Sub teemutainio()
Tab1 = Tabelle1.UsedRange
Tab2 = Tabelle2.UsedRange
j = 2
For i = 1 To UBound(Tab1)
If Tab1(i, 1) = "nein" Then
    For k = 1 To 13
    Tabelle3.Cells(j, k) = Tab1(i, k + 2)
    Next k
    j = j + 1
End If
If Tab2(i, 1) = "nein" Then
    For k = 1 To 13
    Tabelle3.Cells(j, k) = Tab2(i, k + 2)
    Next k
    j = j + 1
End If
Next i
End Sub
Antworten Top
#12
Schade, in den ersten beiden Spalten steht tatsächlich etwas, dies ist jedoch für das Tabellenblatt "Vergleich" unrelevant.

Trotzdem vielen Dank für deine Mühen!
Antworten Top
#13
Hi Fabian,

das ist aber leicht von dir selbst abzuändern.
In der Zeile:
If Tab1(i, 1) = "nein" Then
ändern in 
If Tab1(i, 3) = "nein" Then
Tab2 analog

und
Tabelle3.Cells(j, k) = Tab1(i, k + 4)
Tabelle3.Cells(j, k) = Tab2(i, k + 4)
anstelle von
Tabelle3.Cells(j, k) = Tab1(i, k + 2)
Tabelle3.Cells(j, k) = Tab2(i, k + 2)

(...zwingend den selben Aufbau...)
duck un wech
[-] Folgende(r) 1 Nutzer sagt Danke an Wastl für diesen Beitrag:
  • teemutainio
Antworten Top
#14
Hallo Wastl,

das hat soweit geklappt, vielen Dank!

Nur zieht er sich nur das erste "nein" in das Tabellenblatt "Vergleich", danach bekomme ich die Fehlermeldung "Index außerhalb des gültigen Bereichs". Woran könnte das liegen?
Antworten Top
#15
Jetzt hat er geklappt. Nochmal vielen, vielen Dank!
Antworten Top
#16
Hallo zusammen,
 
es ist doch noch ein kleines Problem aufgetreten.
 
Mithilfe des VBA-Codes von Wastl werden die Veränderungen nun wie gewünscht in das Tabellenblatt „Vergleich“ kopiert. Nun hätte ich gerne, dass die Tabelle im Blatt „Vergleich“ nach bestimmten Spalten sortiert ist. Dies habe ich zunächst einfach über Daten à Sortieren gemacht, was auch geklappt hat. Wenn ich nun aber die Rohdaten update und den Makro neu laufen lasse, geht die Sortierung leider verloren.
 
Habt ihr eine Idee, wie ich das Problem lösen kann? Muss das über VBA laufen?
 
BG
Fabian
Antworten Top
#17
Hi Fabian,

zeichne dein Sortieren doch mal mit dem Makrorekorder auf und poste den aufgenommenen Code hier.
Das kann man dann sicherlich noch mit einbauen.
Antworten Top
#18
Hallo Wastl,

ich hoffe es ist das, was du meintest:

Code:
Sub Makro3()
'
' Makro3 Makro
'

'
   Range("A1").Select
   ActiveWorkbook.Worksheets("Vergleich").AutoFilter.Sort.SortFields.Clear
   ActiveWorkbook.Worksheets("Vergleich").AutoFilter.Sort.SortFields.Add Key:= _
       Range("E2:E211"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
       :=xlSortNormal
   ActiveWorkbook.Worksheets("Vergleich").AutoFilter.Sort.SortFields.Add Key:= _
       Range("F2:F211"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
       :=xlSortNormal
   ActiveWorkbook.Worksheets("Vergleich").AutoFilter.Sort.SortFields.Add Key:= _
       Range("A2:A211"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption _
       :=xlSortNormal
   With ActiveWorkbook.Worksheets("Vergleich").AutoFilter.Sort
       .Header = xlYes
       .MatchCase = False
       .Orientation = xlTopToBottom
       .SortMethod = xlPinYin
       .Apply
   End With
End Sub
BG
Fabian
Antworten Top
#19
Hi teemutainio,

perfekt,

dein erster - aufgezeichneter Befehl lautet:
Code:
Range("A1").Select
Den lässt du weg.
Alles darunter bis vor dem End Sub kopierst du in mein Makro unterhalb von next i, also zwischen next i und End sub.
Alles klar?
Bei Schwierigkeiten (hoffe ich nicht) poste mal den ganzen von dir jetzt erstellten Code
[-] Folgende(r) 1 Nutzer sagt Danke an Wastl für diesen Beitrag:
  • teemutainio
Antworten Top
#20
Hat geklappt, besten Dank!
Antworten Top


Gehe zu:


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