Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

markierte zellen auslesen(For..each)

Forumthread: markierte zellen auslesen(For..each)

markierte zellen auslesen(For..each)
17.09.2002 17:06:06
Davidx
Ich habe irgendeinen Bereich im Tabellenblatt markiert.
Wie benutze ich die for...each Anweisung, so daß er in Zelle("A1") sämtliche Daten hintereinander weg aus dem makierten Bereich schreibt.
Sorry für die blöde Frage, muss erst mal bei FOR...EACH hintersteigen :-)
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: markierte zellen auslesen(For..each)
17.09.2002 17:16:11
Boris
Hallo David,

ich bin zwar ein absoluter VBA-Stümper, aber folgender Code funktioniert:

Sub verketten()
For Each zelle In Selection
a = a & zelle.Value
Next
Range("a1").Select
ActiveCell.Value = a
End Sub

Vorher musst du halt einen Bereich markieren.
Das Ergebnis wird in A1 ausgegeben.

Die VBAler unter uns: Bitte nicht lachen...


Gruß Boris

Anzeige
Danke Boris
17.09.2002 17:24:46
Davidx
alles klar hat super funktioniert,
damit komm ich erst mal weiter,
Danke nochmal Boris:-)
Re: markierte zellen auslesen(For..each)
17.09.2002 19:54:48
Ralf K.
Hallo Boris!

Ich weiß garnicht warum du dich entschuldigst?
Ich pers. finde das Super, das Du versuchst (Um dich zu zitieren:"VBA-Stümper")anderen zu helfen und es hat ja wunderbar gefruchtet.
Ich selber bin auch ein VBA-Stümper und brauch z.Z. leider noch mehr Hilfe als ich selber geben kann, aber was nicht ist, kann ja noch werden...Hoffe ich zumindest!

Sorry, musste ich unbedingt loswerden!

Gruss Ralf K.

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Markierte Zellen mit VBA auslesen und verarbeiten


Schritt-für-Schritt-Anleitung

Um in Excel mit VBA die markierten Zellen auszulesen und deren Werte in eine bestimmte Zelle zu schreiben, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Erstelle ein neues Modul: Rechtsklicke im Projekt-Explorer auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Sub verketten()
       Dim zelle As Range
       Dim a As String
       a = ""
    
       For Each zelle In Selection
           a = a & zelle.Value
       Next
    
       Range("A1").Value = a
    End Sub
  4. Schließe den VBA-Editor: Drücke ALT + Q oder schließe das Fenster.

  5. Markiere den gewünschten Bereich in Deinem Arbeitsblatt.

  6. Führe das Makro aus: Gehe zu Entwicklertools > Makros > wähle verketten und klicke auf Ausführen.

Jetzt werden alle Werte der markierten Zellen in die Zelle A1 geschrieben.


Häufige Fehler und Lösungen

  • Fehler: "Objekt erforderlich"

    • Lösung: Stelle sicher, dass Du einen Bereich markiert hast, bevor Du das Makro ausführst.
  • Fehler: Zelle A1 bleibt leer

    • Lösung: Überprüfe, ob die markierten Zellen tatsächlich Werte enthalten. Leere Zellen werden nicht in den String aufgenommen.

Alternative Methoden

Eine weitere Methode, um die ausgewählten Zellen auszulesen, besteht darin, die Daten in eine Liste oder ein Array zu schreiben. Hier ein Beispiel:

Sub arrayAuslesen()
    Dim zelle As Range
    Dim werte() As Variant
    Dim i As Integer

    ReDim werte(1 To Selection.Count)

    i = 1
    For Each zelle In Selection
        werte(i) = zelle.Value
        i = i + 1
    Next

    ' Beispiel: Werte in A1 bis A(n) ausgeben
    For i = LBound(werte) To UBound(werte)
        Cells(i, 1).Value = werte(i)
    Next
End Sub

Praktische Beispiele

  • Beispiel 1: Wenn Du die Werte aus den Zellen B1 bis B5 zusammenfassen und in C1 schreiben möchtest, markiere einfach die Zellen B1 bis B5 und führe das erste Makro aus. Die Ergebnisse erscheinen in C1.

  • Beispiel 2: Mit dem Array-Beispiel kannst Du die Werte nicht nur in eine Zelle, sondern in eine gesamte Spalte ausgeben. Dies ist nützlich, wenn Du Daten strukturierter darstellen möchtest.


Tipps für Profis

  • Verwende Trim(): Wenn Du sicherstellen möchtest, dass keine überflüssigen Leerzeichen in den Werten enthalten sind, kannst Du Trim(zelle.Value) verwenden.

  • Fehlerbehandlung implementieren: Ergänze Deinen Code mit Fehlerbehandlungsroutinen, um auf unerwartete Eingaben zu reagieren.

  • Variablen deklarieren: Achte darauf, alle Variablen korrekt zu deklarieren, um den Code lesbarer und weniger fehleranfällig zu machen.


FAQ: Häufige Fragen

1. Wie kann ich die markierten Zellen in eine andere Zelle als A1 schreiben? Du kannst die Zeile Range("A1").Value = a anpassen, indem Du die gewünschte Zielzelle angibst, z.B. Range("B1").Value = a.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, dieser Code ist mit allen modernen Excel-Versionen kompatibel, die die VBA-Programmierung unterstützen.

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