936 Aufrufe
Gefragt in Tabellenkalkulation von b25812 Mitglied (509 Punkte)
Hallo,
ich möchte per VBA was Kopieren. Soweit ist das auch kein Problem. z.b d3-d12 und
das fügt er dann in A30 ein. Dann sind dann 10 Zellen. Nun soll er den nächsten Block
H3-H7 unten an die Spalte A anfügen. Das heißt bevor er einfügt, muss er schauen wo
war der letzte Eintrag in der Spalte A und danach soll er den nächsten Block dort
einfügen.
Habt Ihr da eine Idee ???

22 Antworten

0 Punkte
Beantwortet von b25812 Mitglied (509 Punkte)
Hallo M.O
habe es getestet und geht Super! Danke dafür. Was müsste ich ändern
wenn ich es in Spalte B einfügen möchte ?

Gruß Thomas
0 Punkte
Beantwortet von m-o Profi (21.8k Punkte)
Hallo Thomas,

wenn du die kopierten Daten in Spalte B einfügen willst, dann ändere
With Cells(lngLetzte, 1)

in

With Cells(lngLetzte, 2)


Spalte A = 1, Spalte B = 2 usw.

Gruß

M.O.
0 Punkte
Beantwortet von m-o Profi (21.8k Punkte)
Hallo,

noch vergessen:
Du musst ja außerdem noch die Ermittlung der letzten Zeile entsprechend anpassen. Also statt
lngLetzte = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

dann
lngLetzte = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row


Gruß

M.O.
0 Punkte
Beantwortet von b25812 Mitglied (509 Punkte)
Hallo M.O.

hat Super geklappt, danke für deine Unterstützung.

Gruß Thomas
0 Punkte
Beantwortet von b25812 Mitglied (509 Punkte)
Hallo,
ich hätte da noch was :-)
Ich habe in A2+A3+A4 usw. folgende Zahl ( als Text formatiert )
1101-01/10
1101-01/20
1101-01/30

in B2+B3+B4 usw Trage ich einen Variablen Wert ein z.b.

2
3
3

Nun soll er in einer anderen Tabelle, ich sage mal " Lagerorte "
ab A2 folgendes stehen.

1101-01/10
1101-02/10
1101-01/20
1101-02/20
1101-03/20
1101-01/30
1101-02/30
1101-03/30

Das heißt je nach dem was ich bei b2 oder b3 eintrage, soll sich der
Wert nach dem Minus Zeichen ändern
Ich hoffe mir kann man folgen.

Gruß Thomas
0 Punkte
Beantwortet von
Hallo Thomas

Probier mal

Gruss Nighty

Sub Makro()
Dim ArtDat As Variant
Dim Anzahl As Long
Dim Zeilen As Integer
ArtDat = Worksheets(1).Range("A1:B" & Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row)
For Anzahl = 2 To UBound(ArtDat)
For Zeilen = 1 To ArtDat(Anzahl, 2)
Worksheets(2).Cells(Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = _
Mid(ArtDat(Anzahl, 1), 1, InStr(ArtDat(Anzahl, 1), "-")) & String(Len(Mid(ArtDat(Anzahl, 1), _
InStr(ArtDat(Anzahl, 1), "-") + 1, InStr(ArtDat(Anzahl, 1), "/") - InStr(ArtDat(Anzahl, 1), "-") _
- 1)) - Len(CStr(Zeilen)), "0") & Zeilen & Mid(ArtDat(Anzahl, 1), InStr(ArtDat(Anzahl, 1), "/"), Len(ArtDat(Anzahl, 1)))
Next Zeilen
Next Anzahl
End Sub
0 Punkte
Beantwortet von
Hallo Thomas

Vorrangestellte nullen werden von Spalte A erfasst und gegebenenfalls aufgegüllt

Gruss Nighty
0 Punkte
Beantwortet von b25812 Mitglied (509 Punkte)
Hallo Nighty
danke für die Antwort, ich kann aber leider nicht erkennen wo die Anwendung auf die Tabelle Lagerorte hinweist.
Übersehe ich da was ?

Gruß Thomas
0 Punkte
Beantwortet von
Hallo Community .-)

Den Worksheet Index 2 gegen "Lagerorte" ersetzt!

Gruss Nighty

Sub Makro()
Dim ArtDat As Variant
Dim Anzahl As Long
Dim Zeilen As Integer
ArtDat = Worksheets(1).Range("A1:B" & Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row)
For Anzahl = 2 To UBound(ArtDat)
For Zeilen = 1 To ArtDat(Anzahl, 2)
Worksheets("Lagerorte").Cells(Worksheets(2).Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = _
Mid(ArtDat(Anzahl, 1), 1, InStr(ArtDat(Anzahl, 1), "-")) & String(Len(Mid(ArtDat(Anzahl, 1), _
InStr(ArtDat(Anzahl, 1), "-") + 1, InStr(ArtDat(Anzahl, 1), "/") - InStr(ArtDat(Anzahl, 1), "-") _
- 1)) - Len(CStr(Zeilen)), "0") & Zeilen & Mid(ArtDat(Anzahl, 1), InStr(ArtDat(Anzahl, 1), "/"), Len(ArtDat(Anzahl, 1)))
Next Zeilen
Next Anzahl
End Sub
0 Punkte
Beantwortet von
Hallo Community

ops,waren ja zwei änerungen

Gruss Nighty

Sub Makro()
Dim ArtDat As Variant
Dim Anzahl As Long
Dim Zeilen As Integer
ArtDat = Worksheets(1).Range("A1:B" & Worksheets(1).Cells(Rows.Count, 1).End(xlUp).Row)
For Anzahl = 2 To UBound(ArtDat)
For Zeilen = 1 To ArtDat(Anzahl, 2)
Worksheets("Lagerorte").Cells(Worksheets("Lagerorte").Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) = _
Mid(ArtDat(Anzahl, 1), 1, InStr(ArtDat(Anzahl, 1), "-")) & String(Len(Mid(ArtDat(Anzahl, 1), _
InStr(ArtDat(Anzahl, 1), "-") + 1, InStr(ArtDat(Anzahl, 1), "/") - InStr(ArtDat(Anzahl, 1), "-") _
- 1)) - Len(CStr(Zeilen)), "0") & Zeilen & Mid(ArtDat(Anzahl, 1), InStr(ArtDat(Anzahl, 1), "/"), Len(ArtDat(Anzahl, 1)))
Next Zeilen
Next Anzahl
End Sub
...