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

Forumthread: Columns mit Zahlen

Columns mit Zahlen
RainerK
Hallo,
habe eine UserForm gefunden und möchte mir diese nun erweitern.
Leider funktioniert alles nur mit Text. Meine Erweiterung soll jedoch mit einer Zahlenreihe sein.
      For iRow = 0 To lstSelect.ListCount - 1
Columns(WorksheetFunction.Match(lstSelect.List(iRow), Rows(9), 0)).Hidden = False
Next iRow
Zudem kann meine Zahlenreihe "Bewertung" (im Beispiel Spalte D9-J9) Ziffern doppelt haben.
Insofern wäre jede Ziffer nur einmal und abwärts ideal.
Gruß Rainer
https://www.herber.de/bbs/user/79607.xls
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Columns mit Zahlen
29.03.2012 19:11:17
Hajo_Zi
Hallo Rainer,
Spalten mit Zahlen ansprechen
Range(Columns(7), Columns(27)).Hidden=true

AW: Columns mit Zahlen
29.03.2012 21:53:53
RainerK
Hallo Hajo,
vielen Dank für Deine Nachricht.
Leider komme ich damit nicht zurecht, da ich ja nur die in der Listbox "lstSelect" übertragenen Werte angezeigt haben möchte.
Mit "Range(Columns(7), Columns(27)).Hidden=true" habe ich ja einen zusammenhängenden Bereich.
Wie die einzelnen Spalten selectiert werden sollen habe ich damit noch nicht verstanden.
Gruß
Rainer
Anzeige
AW: Columns mit Zahlen
30.03.2012 05:56:23
Hajo_Zi
Hallo Rainer,
ich hätte , Columns(27) gelöscht.
Mal ohne Testung.
Gruß Hajo
AW: Columns mit Zahlen
30.03.2012 10:24:50
RainerK
Hallo Hajo,
bin mittlerweile noch mit der Auflistung fündig geworden und habe eine Hilfszeile genommen.
Damit werde ich vermutlich bei einem Textfeld bleiben.
Dennoch: habe Deinen Code versucht einzubauen und bekam eine Fehlermeldung.
Allerdings: Bei meinem Code mit Text hänge ich leider schon wieder.
Dim iRow As Integer
Dim iCol As Integer
For iRow = 0 To lstSelect.ListCount + 10 '+10 = vorläufige Gesamtzahl an Spalten
iCol = WorksheetFunction.Match(lstSelect.List(iRow), Rows(9), 0)
If Cells(9, iCol).Value = lstSelect.List(iRow) Then
Columns(iCol).Hidden = False
End If
Next iRow

Der Durchlauf wird wohl nur ein einziges Mal gemacht. Dann hält der Code bei "iCol = ..." an.
Gruß Rainer
https://www.herber.de/bbs/user/79615.xls
Anzeige
AW: Columns mit Zahlen
30.03.2012 17:20:18
RainerK
Hallo Hajo,
das Problem hat sich erledigt.
Herr Herber hatte mir mal was programmiert.
Ein Teil davon war eine solche Selektion.
Habe zwar nicht alle Details verstanden, konnte mir dennoch die erforderlichen Codeteile für die neue Tabelle abändern.
Vielen Dank für Deine Mithilfe.
Gruß Rainer
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dynamische Spaltenauswahl in Excel VBA mit Zahlen


Schritt-für-Schritt-Anleitung

Um mit Excel VBA Spalten zu bearbeiten, die Zahlen enthalten, kannst Du die Columns()-Funktion verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu: Rechtsklick auf „VBAProject (DeinWorkbook)“ > Einfügen > Modul.

  3. Schreibe den folgenden Code in das Modul:

    Dim iRow As Integer
    Dim iCol As Integer
    For iRow = 0 To lstSelect.ListCount - 1
        iCol = WorksheetFunction.Match(lstSelect.List(iRow), Rows(9), 0)
        If Not IsError(iCol) Then
            Columns(iCol).Hidden = False
        End If
    Next iRow
  4. Achte darauf, dass lstSelect Deine ListBox ist, die die Werte enthält, die Du anzeigen möchtest.

  5. Führe das Makro aus und überprüfe, ob die entsprechenden Spalten sichtbar sind.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Methode 'Columns' der Objekt 'Worksheet' ist fehlgeschlagen"

    • Lösung: Stelle sicher, dass die iCol-Variable tatsächlich einen gültigen Spaltenindex zurückgibt. Überprüfe, ob die gesuchten Werte in der Zeile vorhanden sind.
  • Fehler: "Laufzeitfehler 2042: Fehler bei der Auswertung"

    • Lösung: Dies tritt auf, wenn der Match-Befehl keinen Wert findet. Füge eine Fehlerbehandlung hinzu, um dies zu vermeiden.

Alternative Methoden

Eine alternative Methode zur Auswahl von Spalten, die Zahlen enthalten, ist die Verwendung von Range.Columns. Hier ein Beispiel:

Range(Columns(1), Columns(5)).Hidden = True

Diese Methode blendet die Spalten 1 bis 5 aus. Du kannst sie anpassen, um spezifische Spalten zu selektieren.


Praktische Beispiele

Wenn Du beispielsweise eine Liste von Bewertungen in den Spalten D bis J hast, könntest Du den folgenden Code verwenden, um nur die Spalten mit den Bewertungen anzuzeigen:

Dim ratings As Variant
ratings = Array(4, 5, 6) ' Beispielhafte Bewertungsspalten

For i = LBound(ratings) To UBound(ratings)
    Columns(ratings(i)).Hidden = False
Next i

In diesem Beispiel werden nur die Spalten 4, 5 und 6 sichtbar gemacht.


Tipps für Profis

  • Verwende With-Anweisungen: Dies kann Deinen Code effizienter und lesbarer machen.

    With Worksheets("Sheet1")
        .Columns("A:C").Hidden = True
    End With
  • Dokumentiere Deinen Code: Verwende Kommentare, um die Funktionalität Deines Codes zu erklären, besonders wenn Du mit vba columns arbeitest.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Spalten gleichzeitig ausblenden? Du kannst Range.Columns oder eine Schleife verwenden, um mehrere Spalten auszublenden.

2. Was ist der Unterschied zwischen Columns und Range.Columns? Columns bezieht sich auf die gesamte Spalte, während Range.Columns einen bestimmten Bereich von Spalten ansprechen kann.

3. Wie kann ich sicherstellen, dass meine Spalten korrekt ausgewählt werden? Verwende die Match-Funktion, um den korrekten Spaltenindex zu finden und überprüfe die Rückgabe auf Fehler.

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