Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Per Schleife Zellen eines Tabellenblattes auslesen

Per Schleife Zellen eines Tabellenblattes auslesen
10.03.2017 08:55:17
Marcus
Moin Moin
ich kriege folgendes nicht hin:
Ich möchte aus einem Tabellenblatt (tblgesamtdaten) eine Reihe von ca. 27 Zellen in Abhängigkeit einer Zeilennummer (Eingabe über Userform) per Schleife (Zelle auf vorhandenen Inhalt prüfen) auslesen und diese Werte in ein anderes Tabellenblatt (tblPreisschild) in eine zusammengefasste Zelle (M26:T38) mit Leerzeichen oder durch Komma getrennt eintragen.
Mein bisheriger Code:
Rem Auststattung eingeben
Range("M26:T37").Select
For i = 28 To 55
With Sheets("tblgesamtdaten")
Do While Cells(zeile, i).Value " "
End With
ActiveCell.Formula = Cells(zeile, i).Value
Loop
Next i
funktioniert nicht, daher hier die Bitte um Hilfe.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Per Schleife Zellen eines Tabellenblattes auslesen
10.03.2017 09:26:08
ChrisL
Hi Marcus
Bitte lade eine Beispieldatei und zeige die Ausgangslage und das gewünschte Ergebnis.
Was ich schon einmal sagen kann:
- Select braucht es nicht
- Falls die Variable "zeile" aus einer Textbox kommt müsstest du den Datentyp von Text in Zahl umwandeln
- Der With-Rahmen macht nur Sinn, wenn du Cells mit einem Punkt referenzierst (Do While .Cells)
- Falls du ein leere Zelle und keine Leerzeichen suchst, dann "" und nicht " "
- Formula erwartet eine Formel als Text-String und keinen Wert
cu
Chris
Anzeige
AW: Per Schleife Zellen eines Tabellenblattes auslesen
10.03.2017 11:55:33
Werner
Hallo Marcus,
du schreibst Ich möchte aus einem Tabellenblatt (tblgesamtdaten) eine Reihe von ca. 27 Zellen
In deinem Code hast du aber:
For i = 28 To 55

Das sind aber 28 Zellen
Ich habe bei mir den Code deshalb von To 55 auf To 54 geändert, ggf. musst du das dann noch anpassen.
Versuch mal:
Public Sub Kopieren()
Dim i As Long
Dim loZeile As Variant
Dim strText As String
Application.DisplayAlerts = False
loZeile = Application.InputBox("Bitte eine Ganzzahl eingeben:", "Zeilennummer", Type:=1)
Application.DisplayAlerts = True
If Not loZeile = False Then
With Worksheets("tblGesamtdaten")
For i = 28 To 54
If .Cells(loZeile, i)  "" Then
strText = strText & " " & .Cells(loZeile, i)
End If
Next i
strText = Trim(strText)
Worksheets("tblPreisschild").Cells(26, 13) = strText
End With
End If
End Sub
Gruß Werner
Anzeige
AW: Per Schleife Zellen eines Tabellenblattes auslesen
10.03.2017 12:21:11
Marcus
Danke, Werner. Nach der einer kleinen Anpassung funktioniert das perfekt.
Vielen Dank auch an Chris
AW: Gerne u. Danke für die Rückmeldung. o.w.T.
10.03.2017 12:30:11
Werner
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellen eines Tabellenblattes per Schleife auslesen und Werte schreiben


Schritt-für-Schritt-Anleitung

Um Zellen eines Tabellenblattes mit VBA per Schleife auszulesen und die Werte in eine andere Zelle zu schreiben, kannst du den folgenden VBA-Code verwenden. Dieser Code zeigt, wie du eine Zeilennummer über ein Userform eingeben kannst, um die entsprechenden Werte auszulesen und in eine andere Zelle zu übertragen.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul ein: Rechtsklick auf „VBAProject (DeinArbeitsblatt)“ > Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Public Sub Kopieren()
    Dim i As Long
    Dim loZeile As Variant
    Dim strText As String
    Application.DisplayAlerts = False
    loZeile = Application.InputBox("Bitte eine Ganzzahl eingeben:", "Zeilennummer", Type:=1)
    Application.DisplayAlerts = True
    If Not loZeile = False Then
        With Worksheets("tblGesamtdaten")
            For i = 28 To 54
                If .Cells(loZeile, i) <> "" Then
                    strText = strText & " " & .Cells(loZeile, i)
                End If
            Next i
            strText = Trim(strText)
            Worksheets("tblPreisschild").Cells(26, 13) = strText
        End With
    End If
End Sub
  1. Stelle sicher, dass du die Namen der Arbeitsblätter ("tblGesamtdaten" und "tblPreisschild") entsprechend anpasst, falls sie anders heißen.
  2. Führe das Makro aus, indem du F5 drückst oder das Makro über Excel startest.

Häufige Fehler und Lösungen

  • Fehler: „Typen-Mismatch“

    • Lösung: Stelle sicher, dass die Eingabe der Zeilennummer eine Ganzzahl ist. Nutze Type:=1 in der InputBox, um dies zu gewährleisten.
  • Fehler: Zellen bleiben leer

    • Lösung: Überprüfe, ob die Zellen in „tblGesamtdaten“ tatsächlich Werte enthalten und dass du die richtige Zeilennummer eingibst.
  • Fehler: „Objekt nicht gefunden“

    • Lösung: Vergewissere dich, dass die Arbeitsblätter mit den korrekten Namen existieren.

Alternative Methoden

Wenn du eine andere Möglichkeit suchst, Zellen auszulesen und Werte zu schreiben, kannst du auch die Range-Objekte anstelle von Cells verwenden. Hier ist ein Beispiel:

Dim rng As Range
Set rng = Worksheets("tblGesamtdaten").Range("B28:B54")
For Each cell In rng
    If cell.Value <> "" Then
        strText = strText & " " & cell.Value
    End If
Next cell

Diese Methode ist besonders nützlich, wenn du mit größeren Datenmengen arbeitest.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie du die Werte in Zellen auslesen und in ein anderes Tabellenblatt schreiben kannst:

  • Auslesen von Werten: Angenommen, die Zeilennummer ist 30, und du möchtest die Werte von den Spalten 28 bis 54 in „tblGesamtdaten“ in die Zelle M26 in „tblPreisschild“ schreiben.
  • Ergebnis: Der Code wird die Werte, die nicht leer sind, in M26 mit Leerzeichen trennen.

Tipps für Profis

  • Verwende Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Nutze Trim und Join, um Leerzeichen effizient zu handhaben, wenn du mehrere Werte zusammenfügst.
  • Teste deinen Code regelmäßig, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um Werte in mehrere Zellen zu schreiben?
Du kannst eine Schleife verwenden, um die Werte in verschiedene Zellen zu schreiben, indem du die Zielzelle in jedem Durchlauf änderst.

2. Was mache ich, wenn ich eine Fehlermeldung erhalte?
Überprüfe deine Zeilennummer und die Zellen, aus denen du die Werte auslesen möchtest. Achte darauf, dass die Arbeitsblätter korrekt benannt sind und existieren.

3. Kann ich die Eingabe der Zeilennummer in einer Userform machen?
Ja, du kannst eine Userform erstellen und die Eingabe dort vornehmen. Das macht die Eingabe benutzerfreundlicher.

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