Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1344to1348
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige