Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Spalten durchlaufen, nach Bedingung kopieren

Spalten durchlaufen, nach Bedingung kopieren
21.01.2014 15:40:03
nershl
Hallo liebe Forenmitglieder,
ich habe ein kleines VBA problem und hier bisher keine Lösung gefunden.
Userbild
So sieht meine Tabelle aus. Nun soll ein Makro jeweils durch die Zeilen laufen, dabei sollen die Spalten durchlaufen werden, bis die erste Zelle mit einem Wert "größer" 0 kommt, dann sollen alle folgenden Zellen dieser Zeile bis zur letzten Zelle mit Inhalt kopiert werden. Den Rest bekomme ich selber hin. (Die Kopierten Daten sollen dann in neue Zellen kopiert werden, wobei dann in der ersten Spalte (A) immer der Wert "größer" 0 ist)
Kann mir jemand auf die Sprünge helfen?
Viele Dank und Grüße
Nershl

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten durchlaufen, nach Bedingung kopieren
21.01.2014 16:27:55
fcs
Hallo Nershi,
ich habe ein kleines VBA problem und hier bisher keine Lösung gefunden.
Für spezielle Probleme wirst du nie eine 100% passende Lösung finden, halt nur prinzipielle Vorgehensweisen.
Nachfolgend ein Makro,das du noch ein wenig an deine Tabelle anpassen musst.
Gruß
Franz
Sub CopyWas()
Dim wks As Worksheet
Dim Zeile As Long, Spalte As Long
Dim Zeile_L As Long, Spalte_L As Long
Dim Zeile_Ziel As Long, rngCopy As Range
Set wks = ActiveSheet
'Set wks = ActiveWorkbook.Worksheets("Tabelle2")
With wks
'Letzte Zeile mit Daten in Spalte A
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row
Zeile_Ziel = Zeile_L + 1 '1. einfügezeile für Kopien ggf. anpassen!!
For Zeile = 4 To Zeile_L 'startzeile anpassen !!!
'letzte Spalte mit Wert in Zeile
Spalte_L = .Cells(Zeile, .Columns.Count).End(xlToLeft).Column
Set rngCopy = Nothing
For Spalte = 1 To Spalte_L
If .Cells(Zeile, Spalte) > 0 Then
Set rngCopy = .Range(.Cells(Zeile, Spalte), .Cells(Zeile, Spalte_L))
rngCopy.Copy
.Cells(Zeile_Ziel, 1).PasteSpecial Paste:=xlPasteValues
Zeile_Ziel = Zeile_Ziel + 1
Exit For
End If
Next
Next Zeile
Application.CutCopyMode = False
End With
End Sub

Anzeige
AW: Spalten durchlaufen, nach Bedingung kopieren
22.01.2014 14:04:06
nershl
Hallo Franz,
das ist so ziemlich genau das was ich brauche! Danke. Kleine Verständnisfrage, wo kann ich angeben, in welcher Spalte er mit der Suche starten soll?
Grüße
Nershl

AW: Spalten durchlaufen, nach Bedingung kopieren
22.01.2014 15:21:46
fcs
Hallo Nershl,
in der folgenden Zeile kannst du die Startspalte anpassen:
            For Spalte = 1 To Spalte_L
1=A, 2 = B usw.
ggf. muss du dann auch noch hier die Spalte anpassen, in der die letzte Zeile ermittelt werden soll :
        'Letzte Zeile mit Daten in Spalte A
Zeile_L = .Cells(.Rows.Count, 1).End(xlUp).Row

Gruß
Franz
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige