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

Forumthread: Debug print in Zellen umleiten

Debug print in Zellen umleiten
07.11.2013 15:16:57
Selina
Hallo
habe aus Google folgenden Code, der mir in einer Arbeitsmappe die Anzahl Vorkommnisse pro Wert (Spalte P) ermittelt und in Debug-Print ausgibt:
Sub Z() 'Anzahl Vorkomniss pro Wert in Spalte P zählen
Dim objDic As Object, varVal As Variant, lngZeile As Long
Set objDic = CreateObject("scripting.dictionary")
For lngZeile = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
varVal = Cells(lngZeile, 16).Value
objDic(varVal) = objDic(varVal) + 1
Next
For Each varVal In objDic
Debug.Print varVal, objDic(varVal)
Next
objDic.RemoveAll
Set objDic = Nothing
End Sub
Wie kann ich nun - statt in Debugprint - die Werte auf einem Tabellenblatt untereinander ausgeben lassen ?
Danke für die Ratschläge

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Debug print in Zellen umleiten
07.11.2013 15:57:25
fcs
Hallo Selina,
ich hab die erforderlichen Ergänzungen im Makro eingefügt. Den Tabellenblattnamen musst du noch anpassen.
Alternativ kannst du so eine Auswertung auch mit einem Pivottabellenbericht machen.
Gruß
Franz
Sub Z() 'Anzahl Vorkomniss pro Wert in Spalte P zählen
Dim objDic As Object, varVal As Variant, lngZeile As Long
Set objDic = CreateObject("scripting.dictionary")
For lngZeile = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
varVal = Cells(lngZeile, 16).Value
objDic(varVal) = objDic(varVal) + 1
Next
lngZeile = 1
With Worksheets("Tabelle_ObjDic")    'Tabellenname anpassen
.UsedRange.Clear
For Each varVal In objDic
Debug.Print varVal, objDic(varVal)
lngZeile = lngZeile + 1
.Cells(lngZeile, 1).Value = varVal
.Cells(lngZeile, 2).Value = objDic(varVal)
Next
End With
objDic.RemoveAll
Set objDic = Nothing
End Sub

Anzeige
AW: Debug print in Zellen umleiten
08.11.2013 06:08:57
Selina
Guten Morgen Herr Franz
Das funktioniert ja bestens. Vielen Dank
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Debug Print in Zellen Umleiten in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Ausgabe von Debug.Print in Zellen einer Excel-Tabelle anzuzeigen, kannst du den folgenden VBA-Code verwenden. Dieser Code zählt die Vorkommen der Werte in Spalte P und gibt sie in einem angegebenen Tabellenblatt aus.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu, indem du auf "Einfügen" > "Modul" klickst.
  3. Kopiere den folgenden Code in das Modul:
Sub Z() 'Anzahl Vorkommen pro Wert in Spalte P zählen
    Dim objDic As Object, varVal As Variant, lngZeile As Long
    Set objDic = CreateObject("scripting.dictionary")

    ' Zähle die Vorkommen
    For lngZeile = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
        varVal = Cells(lngZeile, 16).Value
        objDic(varVal) = objDic(varVal) + 1
    Next

    ' Ausgabe in das Tabellenblatt
    lngZeile = 1
    With Worksheets("Tabelle_ObjDic")    ' Tabellenname anpassen
        .UsedRange.Clear
        For Each varVal In objDic
            lngZeile = lngZeile + 1
            .Cells(lngZeile, 1).Value = varVal
            .Cells(lngZeile, 2).Value = objDic(varVal)
        Next
    End With

    objDic.RemoveAll
    Set objDic = Nothing
End Sub
  1. Passe den Namen des Tabellenblattes in der Zeile With Worksheets("Tabelle_ObjDic") an, falls nötig.
  2. Schließe den VBA-Editor und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 9: Index außerhalb des gültigen Bereichs"

    • Lösung: Stelle sicher, dass der angegebene Tabellenblattname im Code existiert.
  • Fehler: "Objektvariable oder With-Blockvariable nicht gesetzt"

    • Lösung: Überprüfe, ob die scripting.dictionary-Objektbibliothek korrekt referenziert ist. Du kannst die Bibliothek unter "Extras" > "Verweise" im VBA-Editor aktivieren.

Alternative Methoden

Eine andere Möglichkeit, um die Daten zu analysieren, ist die Verwendung von Pivot-Tabellen. Mit Pivot-Tabellen kannst du die Vorkommen der Werte in Spalte P schnell zusammenfassen und analysieren, ohne VBA verwenden zu müssen.

  1. Markiere die Daten in Spalte P.
  2. Gehe zu "Einfügen" > "PivotTable".
  3. Wähle das Ziel für die Pivot-Tabelle aus und klicke auf "OK".
  4. Ziehe das Feld mit den Werten in den Bereich "Zeilen" und das gleiche Feld in den Bereich "Werte", um die Anzahl der Vorkommen anzuzeigen.

Praktische Beispiele

Angenommen, du hast in Spalte P die folgenden Werte:

Apfel
Banane
Apfel
Orange
Banane

Wenn du den obigen VBA-Code ausführst, wird das Tabellenblatt Tabelle_ObjDic folgendes anzeigen:

A         | B
----------------
Apfel     | 2
Banane    | 2
Orange    | 1

Dies gibt dir einen schnellen Überblick über die Vorkommen der einzelnen Werte.


Tipps für Profis

  • Debugging: Verwende Debug.Print für die Fehlersuche, um den Wert von varVal während der Schleife zu überprüfen.
  • Optimierung: Du kannst die Leistung verbessern, indem du die Anzahl der Zellzugriffe reduzierst, indem du die Werte in ein Array einliest und die Berechnungen in diesem Array durchführst, bevor du sie zurück in die Zellen schreibst.
  • Fehlerbehandlung: Implementiere eine Fehlerbehandlung im Code, um unerwartete Probleme abzufangen und die Benutzerfreundlichkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich den Code anpassen, um mehr als eine Spalte zu zählen? Du kannst eine Schleife einfügen, um mehrere Spalten zu durchlaufen und die Ergebnisse in separaten Zellen auszugeben.

2. Funktioniert dieser Code in allen Excel-Versionen? Ja, der Code sollte in den meisten modernen Excel-Versionen (Excel 2010 und höher) funktionieren, die VBA unterstützen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige