Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

In nächste Zeile springen, wenn Zelle leer ist

Empfohlene Antworten

Veröffentlicht

Hallo zusammen,

ich habe ein Makro geschrieben, das eine Exceltabelle in eine EDI*-Konforme Textdatei schreibt. Das Problem ist, das ich mit meinen bisherigen Schleifen jede Zeile+Zelle einzeln ansprechen muss. Ich geb mal einen kleinen Code-Ausschnitt:

For nRow = 4 To 4

      For nCol = 3 To 3


      LENTemp = Range("C4").Text


      Delimiter = 8 - Len(LENTemp)


            For i = 1 To Delimiter

                LENLenght = LENLenght + " "

            Next i


                strFileText = strFileText & avarWksData(nRow, nCol) & LENLenght


            'Var's leeren!

            LENTemp = ""

            Delimiter = ""

            LENLenght = ""


        Next

            strFileText = strFileText & avarWksData(nRow, nColsCnt)

    Next

Der Delimiter dient der Formatierung, dessen Wert leider nicht für jede Zelle Konstant bleibt. Ich brauche eine Schleife die folgendes tut :

- Zeile Zellenweise einliest

- Wenn nach der Zelle X eine leere Zelle folgt, in die nächste Zeile springen usw.

Ich hoffe das jemand ne Lösung parat hat.

MfG LordHexa

*EDI = EDI steht für Electronic Data Interchange und ist der Überbegriff für Industriestandards zum elektronischen Austausch von Geschäftsdokumenten.

Sub neues()
Dim row As Integer
Dim col As Integer

row = 1
col = 1

Do While Tabelle1.Cells(row, col) <> ""

Do While Tabelle1.Cells(row, col) <> ""
'zeugs machen
col = col + 1 'nächste zelle
Loop
'wenn die letzte gefüllte zelle der
'vorigen zeile erreicht ist wieder zur 1. Zelle gehn
col = 1
row = row + 1
Loop
End Sub
[/PHP]

also so würde ich das machen... da läuft er jetzt solang durch bis die 1. Zelle einer neuen Zeile leer ist...

ist nicht getestet, aber sollte so ok sein ;)

Naja, er liest das Feld A1 zwar aus, aber dann passiert nichts mehr.

Das einizge was ich umgestellt hab ist :

Do While ActiveWorkbook.Sheets("Tabelle1").Cells(row, col) <> ""

wird wohl daran liegen dass durch die umstellung alles zusammengebrochen ist... lt. meinem excel kann der ActiveWorkbook.Sheets("Tabelle1").Cells(row, col) net... warum willst du das denn mit dem activeworkbook machen? ein makro greift IMMER auf das Workbook zu in dem das makro gestartet wurde...

Da mein Excel bei

Do While Tabelle1.Cells(row, col) <> ""

ein Object erfordert

dann heißt deine tabelle nicht tabelle1... hast du ne englische excel version?

naja auf jeden fall sieht man das links im Projekt explorer... z.b. Tabelle1(Test)

test ist der name den du vergeben hast und Tabelle1 in dem fall der Objektname... und der Objektname wird bei dir wohl anders sein...

  • Autor

Ist mir klar, ganz so blöd bin nun auch auch nicht ;)

Ist ne Deutsche-Version. Ich werd mir mal nen anderen Lösungsweg suchen, habe gemerkt das es "so" auch sehr umständlich wird. Nichts desto trotz : Danke für die Hilfe!

Also, so müsste es gehen.

Sub lesen()

Dim row As Long

Dim col As Long

row = 0

col = 0

'selektiert die Zelle A1

Range("A1").Select

Do While ActiveCell.Offset(row, col).Text <> ""

Do While ActiveCell.Offset(row, col).Text <> ""

'Code

'springt um eine Spalte rüber

col = col + 1

Loop

'springt eine Zeile tiefer zu der ersten Zelle

col = 0

row = row + 1

Loop

End Sub

Viele Grüße

Stefan_1

  • Autor

Das hat leider nicht so ganz funktioniert, wie ich es mir erhofft habe. Daher bin ich jetzt auf einen anderen Lösungsweg umgestiegen, allerdings auch dort wieder auf ein Problem gestoßen. Ich möchte nun 2 Tabellenblätter, die verschiedene Spaltengrößen haben, mit einem Knopfdruck in 2 seperate .prn Files schreiben. Diese sollen nacheinander erstellt werden, mit Benutzerdefiniertem-Namen. Hätte da jemand nen Vorschlag ?

PRN-Format ist zwingend Notwendig, da somit die Formatierung erzeugt wird!

Die dateien brauchen ja nur die endung .prn?? Dies kannst du ja mit der "inputbox()" machen, da kann der user dann einfach den namen der Datei angeben...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.