benötige wieder kurze Hilfe in Excel. Ich habe eine Tabelle welche mit Daten gefühlt wird, diese Daten müssen dann in andere andere Datei übermittelt werden. Diese Schritt muss sein, den die genante Tabelle wird von verschiedenen Leuten gefüllt aber die Master wird nur von einen bearbeitet.
Die Master Tabelle ist aber anders aufgebaut und damit man nicht ständig Zelle für Zelle reinkopier würde ich gerne ein Makro haben, welche die Daten in die nötige reinfolge umwandelt. Bsp Tabelle anbei.
Bitte beachtet dass die Daten aus B, C, D beim übertragen zusammen in eine Zelle Dargestellt seien sollen.
ich brauche ja keinen gesamten code, ich bräuchte nur ein ausschnitt, den rest würde ich selber verfolständigen Wo ich aber hilfe brauche, so ist es bei den zusammenfügen von drei Zellen in eine Zelle
Sub aaa() Dim lngZ As Long Dim varQ As Variant Dim varZ As Variant With Worksheets(" Tabelle") varQ = .Range("B3").Resize(.Cells(.Rows.Count, 2).End(xlUp).Row - 2, 6).Value End With ReDim varZ(1 To UBound(varQ, 1), 1 To 4) For lngZ = 1 To UBound(varQ, 1) varZ(lngZ, 1) = varQ(lngZ, 6) varZ(lngZ, 2) = varQ(lngZ, 5) varZ(lngZ, 3) = varQ(lngZ, 2) & " " & varQ(lngZ, 3) & " " & varQ(lngZ, 4) varZ(lngZ, 4) = varQ(lngZ, 1) Next lngZ Worksheets("Neue Tabelle").Range("B3").Resize(UBound(varZ, 1), UBound(varZ, 2)).Value = varZ End Sub
04.05.2020, 14:41 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2020, 15:07 von Pirat2015.)
Hallo Kuwer,
ich habe meine Sachen soweit selber beantwortet, es funktioniert alles fast wie ich wollte.
Ich habe nun noch zwei kleine Fragen: Wie kann ich werde in Code einbauen, welche nicht in der Quelle Range stehen, z.b habe ich eine Überschrift, diese steht in C1 der Quellen Tabelle, diese würde ich gerne z.b in die Ziel Tabelle AC (in meinen Fall ist es die (26) und in AI (32)) übertragen.
Weiter hin habe noch zwei werte die einfach erscheinen sollen wenn, durch das Makro, die Ziehltabelle beschrieben wird. Z.b. wenn in AA (24) wert durch makro rein geschrieben wird soll in AB (25) "KG" erscheinen.
Hier mein abgeänderter Code:
Code:
Sub aaa() Dim lngZ As Long Dim varQ As Variant Dim varZ As Variant With Worksheets("Tabelle") varQ = .Range("B5").Resize(.Cells(.Rows.Count, 8).End(xlUp).Row - 2, 22).Value End With ReDim varZ(1 To UBound(varQ, 1), 1 To 36) For lngZ = 1 To UBound(varQ, 1) varZ(lngZ, 1) = varQ(lngZ, 1) varZ(lngZ, 3) = varQ(lngZ, 2) varZ(lngZ, 5) = varQ(lngZ, 7) & " " & varQ(lngZ, 8) & " " & varQ(lngZ, 9) varZ(lngZ, 4) = varQ(lngZ, 6) varZ(lngZ, 11) = varQ(lngZ, 10) varZ(lngZ, 12) = varQ(lngZ, 11) varZ(lngZ, 10) = varQ(lngZ, 12) varZ(lngZ, 8) = varQ(lngZ, 14) varZ(lngZ, 9) = varQ(lngZ, 13) varZ(lngZ, 16) = varQ(lngZ, 15) varZ(lngZ, 17) = varQ(lngZ, 16) varZ(lngZ, 24) = varQ(lngZ, 17) varZ(lngZ, 27) = varQ(lngZ, 3) varZ(lngZ, 28) = varQ(lngZ, 4) varZ(lngZ, 18) = varQ(lngZ, 18) varZ(lngZ, 19) = varQ(lngZ, 19) varZ(lngZ, 22) = varQ(lngZ, 20) varZ(lngZ, 23) = varQ(lngZ, 21) Next lngZ Worksheets("Tabelle1").Range("D3").Resize(UBound(varZ, 1), UBound(varZ, 2)).Value = varZ End Sub
Vielen Dank un eine Frage noch, warum werden in Zieh Tabelle nur ersten zwei zeilen gelöscht wenn die Quell Tabelle leer ist und die restlichen zellen bleiben beschrieben? un eine Frage noch, warum werden in Zieh Tabelle nur ersten zwei zeilen gelöscht wenn die Quell Tabelle leer ist und die restlichen zellen bleiben beschrieben?
04.05.2020, 15:23 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2020, 15:24 von Kuwer.)
Hallo,
Sub aaa() Dim lngZ As Long Dim strUeberschrift As String Dim varQ As Variant Dim varZ As Variant With Worksheets("Tabelle") strUeberschrift = .Range("C1").Value varQ = .Range("B5").Resize(.Cells(.Rows.Count, 8).End(xlUp).Row - 2, 22).Value End With ReDim varZ(1 To UBound(varQ, 1), 1 To 36) For lngZ = 1 To UBound(varQ, 1) varZ(lngZ, 1) = varQ(lngZ, 1) varZ(lngZ, 3) = varQ(lngZ, 2) varZ(lngZ, 4) = varQ(lngZ, 6) varZ(lngZ, 5) = varQ(lngZ, 7) & " " & varQ(lngZ, 8) & " " & varQ(lngZ, 9) varZ(lngZ, 8) = varQ(lngZ, 14) varZ(lngZ, 9) = varQ(lngZ, 13) varZ(lngZ, 10) = varQ(lngZ, 12) varZ(lngZ, 11) = varQ(lngZ, 10) varZ(lngZ, 12) = varQ(lngZ, 11) varZ(lngZ, 16) = varQ(lngZ, 15) varZ(lngZ, 17) = varQ(lngZ, 16) varZ(lngZ, 18) = varQ(lngZ, 18) varZ(lngZ, 19) = varQ(lngZ, 19) varZ(lngZ, 22) = varQ(lngZ, 20) varZ(lngZ, 23) = varQ(lngZ, 21) varZ(lngZ, 24) = varQ(lngZ, 17) If Len(varZ(lngZ, 24)) Then varZ(lngZ, 25) = "KG" varZ(lngZ, 26) = strUeberschrift varZ(lngZ, 27) = varQ(lngZ, 3) varZ(lngZ, 28) = varQ(lngZ, 4) varZ(lngZ, 32) = strUeberschrift Next lngZ Worksheets("Tabelle1").Range("D3").Resize(UBound(varZ, 1), UBound(varZ, 2)).Value = varZ End Sub
Zu Deiner letzten Frage: Die Zeilenanzahl des Zielarrays wird ja momentan der des Quellarrays angepasst. Wenn der Zielbereich größer als das Zielarray ist, bleiben die restlichen Zellen "verschont". DerZielbereich sollte halt besser vorher komplett geleert werden. Ohne Kenntnis des genauen Aufbaus kann ich dazu aber nichts sagen.