Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1500to1504
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

verschachtelte for-schleifen und End-Funktionen

verschachtelte for-schleifen und End-Funktionen
21.06.2016 07:56:04
dave
Hallo :)
ich habe folgendes Problem:
Mein Datensatz besteht aus X-Zeilen und pro Zeile gibt es eine variable Anzahl an Spalten die befuellt sind.
Nun moechte ich mit 2 for-schleifen jede zeile durchgehen und jeweils alle mit Text befuellten spalten in einer Zelle zusammenfassen....mein bisheriger Code dazu sieht wiefolgt aus:
For Each Zelle In Worksheets(2).Range("A2:A" & Cells(Rows.Count, "A").End(xlUp).Row)
For Each Zelle2 In Worksheets(2).Range(? & Cells(Zelle.Row, Columns.Count).End(xlToRight).Column)
Zelle.Offset(0, 2).Value = Zelle.Offset(0, 2).Value + Zelle2.Value
Danke fuer eure Hilfe :)

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: verschachtelte for-schleifen und End-Funktionen
21.06.2016 08:49:25
ChrisL
Hi Dave
Welches die richtigen Spalten sind weisst nur du. Schreiben tust du in Spalte C also habe ich mal ab Spalte D (Spalte 4) eingetragen.
Sub t()
Dim Zelle As Range, Zelle2 As Range
With Worksheets(2)
For Each Zelle In .Range("A2:A" & Cells(.Rows.Count, "A").End(xlUp).Row)
Zelle.Offset(0, 2) = ""
For Each Zelle2 In .Range(.Cells(Zelle.Row, 4), .Cells(Zelle.Row, .Columns.Count).End( _
xlToLeft))
If Not IsNumeric(Zelle2) Then Zelle.Offset(0, 2).Value = Zelle.Offset(0, 2).Value &  _
Zelle2.Value
Next Zelle2
Next Zelle
End With
End Sub

cu
Chris

Anzeige
AW: verschachtelte for-schleifen und End-Funktionen
21.06.2016 08:52:18
UweD
Hallo
so?
Sub dave()
    Dim LR&, LC%, Zelle, Zelle2
    With Worksheets(2)
        LR = .Cells(Rows.Count, "A").End(xlUp).Row
        .Range(.Cells(2, 3), Cells(LR, 3)).ClearContents
        For Each Zelle In .Range("A2:A" & LR).SpecialCells(xlCellTypeConstants, 3)
            LC = .Cells(Zelle.Row, Columns.Count).End(xlToLeft).Column
            'ab Spalte D =4, da du ja in C reinschreibst 
            For Each Zelle2 In .Range(Cells(Zelle.Row, 4), Cells(Zelle.Row, LC))
                Zelle.Offset(0, 2).Value = Zelle.Offset(0, 2).Value & Zelle2.Value
            Next
        Next
    End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Gruß UweD

Anzeige
AW: verschachtelte for-schleifen und End-Funktionen
21.06.2016 11:20:09
dave
Hallo UweD
zuerst einmal vielen Dank fuer deine Antwort!!!
die Zeile:
.Range(.Cells(2, 3), Cells(LR, 3)).ClearContents
wirft mir ein Runtime Error 1004
koennte das daran liegen, dass der zusammengesetzte String mehr als 911 character hat? und falls ja....wie loese ich das problem?
Danke :)

AW: verschachtelte for-schleifen und End-Funktionen
21.06.2016 11:40:28
UweD
Hallo
hier fehlt ein Punkt.
.Range(.Cells(2, 3), .Cells(LR, 3)).ClearContents
koennte das daran liegen, dass der zusammengesetzte String mehr als 911 character hat?
Nein
https://support.office.com/de-de/article/Spezifikationen-und-Beschr%C3%A4nkungen-in-Excel-1672b34d-7043-467e-8e27-269d656771c3
Gruß UweD

Anzeige
AW: verschachtelte for-schleifen und End-Funktionen
21.06.2016 11:52:10
dave
Danke Uwe....ich muss dich jedoch noch weiter belaestigen
LC = .Cells(Zelle.Row, Columns.Count).End(xlToLeft).Column
diese Zeile wirf einen Runtimer Error 91

AW: verschachtelte for-schleifen und End-Funktionen
21.06.2016 12:03:23
UweD
Ich hab noch einige Punkte gesetzt.
Ist mir nicht aufgefallen, da ich im aktiven Sheet gearbeitet habe
Du hast scheinbar ein Anderes aktiv als Sheet(2)
ohne Punkt wird aber immer das Aktuelle verwendet.
Sub dave()
    Dim LR&, LC%, Zelle, Zelle2
    With Worksheets(2)
        LR = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range(.Cells(2, 3), .Cells(LR, 3)).ClearContents
        For Each Zelle In .Range("A2:A" & LR).SpecialCells(xlCellTypeConstants, 3)
            LC = .Cells(Zelle.Row, .Columns.Count).End(xlToLeft).Column
            'ab Spalte D =4, da du ja in C reinschreibst 
            For Each Zelle2 In .Range(.Cells(Zelle.Row, 4), .Cells(Zelle.Row, LC))
                Zelle.Offset(0, 2).Value = Zelle.Offset(0, 2).Value & Zelle2.Value
            Next
        Next
    End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0


Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige