2.5k Aufrufe
Gefragt in Tabellenkalkulation von fedjo Experte (2.2k Punkte)
Hallo Excelfreunde,
ist es möglich mit VBA aus einer Spalte (Format = Text) J4:J2000 Zahlen:
001.01.01
001.04.02
014.01.03
005.01.04
018.01.05
012.01.06
mit einer bestimmten Endung (01, 02, 03, 04, 05, 06) kopieren und in eine andere Tabellen einfügen?

Ich hoffe ihr könnt mir helfen.
Gruß
fedjo

9 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
Halo fedjo,

warum benutzt Du nicht Autofilter und kopierst den sichtbaren Bereich?

Gruß Hajo
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Hajo,
mit dem Autofilter werden auch die anderen Spalten mit anderen Inhalt mitgefiltert. Auserdem benutze ich schon einen Autofilter für eine andere Spalte.

Gruß
fedjo
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

probier mal das

Option Explicit

Sub test()
Dim rngc As Range
Application.ScreenUpdating = False
For Each rngc In Worksheets("Tabelle1").Range("J4:J2000")
If Val(Right(rngc, 2)) <= 6 Then
Worksheets("Tabelle2").Range("A" & Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row + 1) = rngc.Value
End If
Next
Application.ScreenUpdating = True
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rainer,
es werden keine Daten übertragen.

Gruß
fedjo
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

bei mir schon.

Die Daten stehen in Tabelle1!J4:J2000 und werden nach Tabelle2!A2:Ax übertragen.
Das Makro befindet sich in einem allgem. Modul

Gruß
Rainer
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rainer,
kann den Fehler jetzt nicht finden, melde mich morgen wieder.

Gruß
fedjo
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

anbei die Beispielmappe

Gruß
Rainer
0 Punkte
Beantwortet von rainberg Profi (14.9k Punkte)
Hallo Fedjo,

wenn in einer anderen Spalte der Autofilter wirkt und Du nur die Daten der gefilterten Liste, die Deinen Kriterien entsprechen, übertragen willst, funktioniert folgender Code.

Option Explicit

Sub test()
Dim rngc As Range
Application.ScreenUpdating = False
For Each rngc In Worksheets("Tabelle1").Range("J4:J2000")
If Val(Right(rngc, 2)) > 0 And Val(Right(rngc, 2)) <= 6 And Rows(rngc.Row).Hidden = False Then
Worksheets("Tabelle2").Range("A" & Worksheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row + 1) = rngc.Value
End If
Next
Application.ScreenUpdating = True
End Sub


Gruß
Rainer
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Rainer,
die Daten werden jetzt übertragen, habe den Code aus Antwort 7 genommen und angepasst.
Der Fehler wurde durch das Tabellenblatt verursacht in dem die Daten eingefügt wurden.
Nachdem Austausch läuft jetzt alles super.

Danke für deine Hilfe

Gruß
fedjo
...