Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Range nach Werten durchsuchen und dann ausgeben

Range nach Werten durchsuchen und dann ausgeben
24.07.2008 18:07:00
Botti
Hallo,
da ich leider noch ein Vollblut-VBA-Anfänger bin und vor einer etwas kniffligen Aufgabe stehe wende ich mich an Euch. Ich habe folgendes Problem:
In einem Tabellenblatt stehen wahllos verteilt Werte in verschiedenen Zeilen und Spalten. Meine Aufgabe ist es, alle Werte mit einem Makro zu suchen und auf einem Tabellenblatt in Spalte A auszugeben und das untereinander ohne leere Tabellen dazwischen.
A B C D E F
2 3
9
4 89
5 34
am Ende soll das dann so aussehen:
A B C D E
2
3
9
4
89
5
34
kann mir da jemand helfen? Ich denke, dass der Code nicht schwer ist, aber ich komme gerade nicht drauf. Danke schonmal für Eure Hilfe im Voraus!!!
Botti

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Range nach Werten durchsuchen und dann ausgeben
24.07.2008 18:22:30
Tino
Hallo,
so müsste es gehen

Sub Verschieben()
Dim Bereich As Range, lngR As Long
For Each Bereich In Tabelle1.UsedRange
If Bereich > "" Then
lngR = lngR + 1
Tabelle2.Cells(lngR, 1) = Bereich
End If
Next Bereich
End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
Kleines Makro
24.07.2008 18:26:21
Backowe
Hi,
Sub ZahlenLueckenlosInSpalte()
Dim Zelle As Range
Dim i As Long
i = 1
For Each Zelle In Sheets("Tabelle1").[A1:B4]
  If Zelle <> "" Then
    Zelle.Copy Destination:=Sheets("Tabelle2").Cells(i, "A")
    i = i + 1
  End If
Next
End Sub

Anzeige
AW: Range nach Werten durchsuchen und dann ausgebe
24.07.2008 18:37:00
Botti
Hallo ihr lieben,
super & vielen vielen Dank!
Botti
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte in einer Excel-Rangliste durchsuchen und ausgeben


Schritt-für-Schritt-Anleitung

Um Werte in einer Excel-Tabelle zu durchsuchen und in einer neuen Spalte auszugeben, kannst Du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Sub WerteAusgeben()
    Dim Bereich As Range
    Dim lngR As Long
    lngR = 1 ' Startzeile für die Ausgabe in Tabelle2
    For Each Bereich In Tabelle1.UsedRange
        If Bereich.Value <> "" Then
            Tabelle2.Cells(lngR, 1).Value = Bereich.Value
            lngR = lngR + 1
        End If
    Next Bereich
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro auswählst und auf Ausführen klickst.

Du solltest nun alle nicht-leeren Werte aus Tabelle1 in Tabelle2 in Spalte A sehen.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004 - Ungültige Zellreferenz"

    • Lösung: Stelle sicher, dass die Namen Deiner Tabellenblätter (Tabelle1 und Tabelle2) korrekt sind und existieren.
  • Fehler: "Das Makro kann nicht ausgeführt werden"

    • Lösung: Überprüfe, ob die Makros in Excel aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die Makros.

Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch die Funktion FILTER (verfügbar in Excel 365) verwenden, um ähnliche Ergebnisse zu erzielen. Hier ist ein Beispiel:

=FILTER(A1:B4, A1:B4<>"", "Keine Daten gefunden")

Diese Formel gibt alle nicht-leeren Werte aus dem Bereich A1:B4 zurück.


Praktische Beispiele

Angenommen, Du hast folgende Werte in Tabelle1 (z.B. A1:B4):

A    B
2    
3    
9    
4    
89   
5    
34   

Nach dem Ausführen des VBA-Makros wird Tabelle2 so aussehen:

A
2
3
9
4
89
5
34

Tipps für Profis

  • Nutze Option Explicit am Anfang Deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Experimentiere mit Application.ScreenUpdating = False, um die Ausführungsgeschwindigkeit des Makros zu erhöhen, besonders bei großen Datenmengen.
  • Verwende With-Anweisungen, um den Code lesbarer und effizienter zu machen.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um Daten aus mehreren Blättern zu sammeln?
Du kannst eine Schleife über alle Blätter hinzufügen und die Daten entsprechend in Tabelle2 ausgeben.

2. Was mache ich, wenn ich nur bestimmte Werte filtern möchte?
Du kannst die Bedingung im If-Statement anpassen, um nur Werte zu berücksichtigen, die einem bestimmten Kriterium entsprechen (z.B. If Bereich.Value > 10 Then).

3. Ist dieses VBA-Skript mit Excel 2016 kompatibel?
Ja, der Code funktioniert auch in Excel 2016 und neueren Versionen.

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