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, 13:41 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2020, 14: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, 14:23 (Dieser Beitrag wurde zuletzt bearbeitet: 04.05.2020, 14: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.