Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
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

Do Schleife

Do Schleife
06.02.2016 08:57:23
Ralle
Guten Morgen zusammen,
ich verzweifle leider an folgender Schleife:

Public Sub Test4()
Dim Introw As Integer
Introw = 1
Do
If Cells(Introw, 1) > 0 Then
Cells(Introw, 4) = Cells(Introw, 1) & vbNewLine & Cells(Introw, 2) & vbNewLine & _
Cells(Introw, 3)
End If
Introw = Introw + 1
Loop
End Sub

Es sollen nur die Inhalte der Spalten 1,2 und 3 untereinander in eine Zelle kopiert werden. Das ganz so lange, bis in der Spalte 1 nichts mehr steht.
Der Befehl funktioniert, jedoch durchläuft er keiner Schleife.
Wo ist mein Fehler?
Vielen Dank für eure Hilfe.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Do Schleife
06.02.2016 09:18:47
Nepumuk
Hallo,
teste mal:
Option Explicit

Public Sub Test4()
    
    Dim lngRow As Long
    
    For lngRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        
        If Cells(lngRow, 1).Value > 0 Then
            
            Cells(lngRow, 4).Value = Cells(lngRow, 1).Value & vbNewLine & _
                Cells(lngRow, 2).Value & vbNewLine & Cells(lngRow, 3).Value
            
        End If
    Next
End Sub

Gruß
Nepumuk

Anzeige
AW: Do Schleife
06.02.2016 10:45:43
Luschi
Hallo Ralle,
daß der Befehl 'funktioniert', halte ich für 1 Gerücht, denn Du hast eine typische Endloschleife programmiert und Vba kontert mit einem Laufzeitfehler 6: Überlauf.
Die Konstruktion 'Do... Loop ist eine kopf- oder fußgesteuerte Schleife und benötigt eine Endebedingung;
siehe mehr in der Vba-Hilfe (F1-Taste).
Gruß von Luschi
aus klein-Paris

AW: Do-Loop- Schleife; mittig...
06.02.2016 10:59:52
Gerd
...gesteuert, geht ebenfalls. :-)
Hallo Ralle!
Public Sub Test5()
Dim lngRow As Long
lngRow = 1
Do
If Cells(lngRow, 1) > 0 Then
Cells(lngRow, 4) = Cells(lngRow, 1) & vbNewLine & Cells(lngRow, 2) & vbNewLine & _
Cells(lngRow, 3)
ElseIf IsEmpty(Cells(lngRow, 1)) Then
Exit Do
End If
lngRow = lngRow + 1
Loop
End Sub
Gruß Gerd

Anzeige
AW: Do-Loop- Schleife; mittig...
06.02.2016 11:20:10
Ralle
Hallo zusammen,
vielen Dank für eure beiden Beiträge. Leider funktionieren die aber auch nicht komplett.
In beiden Fällen wird der Befehl nur in der ersten Zeile ausgeführt und dann ist Schluss. Er soll das aber für alle Zeilen in dem Arbeitsblatt machen.
Habt ihr noch eine andere Idee?

AW: Ist A2 leer? Evtl. Beisp.Tabelle hochladen
06.02.2016 11:47:03
Gerd
Gruß Gerd

AW: Ist A2 leer? Evtl. Beisp.Tabelle hochladen
06.02.2016 12:10:20
Ralle
Nein, A 2 ist nicht leer. Wenn ich die Werte in der Spalte A negativ setze, durchläuft der Code auch die Zeilen. Sobald aber der erste Wert positiv ist wird die Aktion einmal ausgeführt und danach ist Schluss.
Die Datei kann ich irgendwie nicht hochladen. Daher das Beispiel hier:
         A               B               C
1   Überschrift 1  Überschrift 2   Überschrift 3
2   Vielen             Dank                 !
2   Danke             Bitte                 ?

                             Vielen
Nun soll in D2 folgendes:    Dank
Danke
In D3 folgendes:  Bitte
?
Mit deinem Code wird der Code allerdings nur in der Zeile ausgeführt in der der erste Wert in Spalte A positiv ist. Danach hört er auf.
Vielen Dank für die Hilfe!
D

Anzeige
AW: Ist A2 leer? Evtl. Beisp.Tabelle hochladen
06.02.2016 12:38:27
EtoPHG
Hallo Ralle,
Wenn auch die XL Version ohne Relevanz ist und doch Level Excel gut angeben ist, dann ist vielleicht folgendes von Relevanz:
a) Wie kann ein Werte wie "Danke" wohl negativ werden? Sei bitte konsistent in deinen Aussagen, oder eben, wie Gerd schon gesagt hat "Beipielmappe hochladen!"
b) Wieso VBA (willst du Programmieren lernen ?)
c) Ein ... Loop braucht immer eine Abbruchbedingung. Wo diese Prüfung stattfindet, ist dem Programmierer überlassen, bzw. abhängig von der Datenstruktur.
d) Mit einer Formel schnell und ohne Fehler lösbar.
e) Wenn mit VBA, wieso nicht die Formel in die Zellen von D schreiben und dann in Inhalte wandeln?
Gruess Hansueli

Anzeige
AW: Ist A2 leer? Evtl. Beisp.Tabelle hochladen
06.02.2016 12:47:19
Ralle
Hi,
die o.g. Tabelle ist hier nur zur Veranschaulichung. Normalerweise stehen dort Zahlen drin, teilweise sind diese getrennt mit einem / (z.B. 702/1111/454).
Ja, ich möchte VBA lernen und habe dafür vor kurzem einen Grundkurs besucht. Nun sitze ich selbst an dem Problem und bekomme es nicht hin.
Mit einer Formel ist das ganze zwar im Arbeitsblatt lösbar, jedoch erstreckt sich meine Zielszenario über mehrere Tabellenblätter und es soll im Anschluss noch weiter gehen. Das habe ich zum Teil schon hinbekommen, muss aber garnicht weiter machen wenn ich diesen Schritt hier nicht hinbekomme.
Gerne würde ich eine Datei hochladen, die sind aber leider ausgegraut. Habe alle verschiedenen Dateiendungen schon probiert, leider aber ohne Erfolg.
Zu deinem Punkte e): Das klingt auch nach einer Möglichkeit. Wie genau sieht die denn aus?

Anzeige
AW: Ist A2 leer? Evtl. Beisp.Tabelle hochladen
06.02.2016 13:44:54
EtoPHG
Hallo Ralle,
Mach dich mit dem Objektmodell zu Excel vertraut, das hilft enorm. Benutz die XL interne VBA Hilfe.
z.B. könnte dein Code mit einem Loop so aussehen:
Sub Test4()
Dim lngRow As Long                 ' Zeilennummer
' Mit Tabelle1 diser Arbeitsmappe
With ThisWorkbook.Worksheets(1)
' Wir fangen bei Zeile 2 an
lngRow = 2
Do
.Cells(lngRow, 4) = .Cells(lngRow, 1) & vbNewLine & _
.Cells(lngRow, 2) & vbNewLine & _
.Cells(lngRow, 3)
' Nächste Zeile
lngRow = lngRow + 1
' Wenn die nächste Zelle in A leer ist, fertig
Loop While .Cells(lngRow, 1)  ""
End With
End Sub
Gruess Hansueli

Anzeige
AW: Ist A2 leer? Evtl. Beisp.Tabelle hochladen
06.02.2016 17:46:18
Ralle
Hi Hansueli,
vielen Dank für deine Unterstützung. Leider funktioniert das aber auch immer noch nicht. Ich habe inzwischen alle Schleifen ausprobiert und auch deine Lösung stoppt in Zeile 2 und geht nicht durch bis zu den nächsten Zeilen. Hast du es bei dir mal ausprobiert?
Vielen Dank
Ralf

Solange keine Beispielmappe, nix weiter... (owT)
06.02.2016 17:54:43
EtoPHG

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige