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

Forumthread: Spaltenindex

Spaltenindex
10.01.2004 21:23:04
maria
Hallo Forum,
über eine UserForm möchte ich in einer Zeile nach einem bestimmten Wert Suchen. Wenn der Wert gefunden ist, wird die Zelle aktiviert. Nun möchte ich gerne den Spaltenindex haben. Aber irgendetwas ist an meinem Code falsch:

Sub test()
Dim ws1 As Worksheet
Dim rngfinden As Range
Dim rngfinden1 As Range
Dim Spalte As Object
Range("A1").Select
Set ws1 = Workbooks("Kommentar.xls").Worksheets("Kommentare")
Set rngfinden = ws1.Rows("1:1")
rngfinden.Find(What:="222-222-222", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Set rngfinden1 = ws1.ActiveCell
Set Spalte = rngfinden.Columns.Index
End Sub

Wer kann mir helfen???Was mache ich falsch???
Grüße
Maria
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spaltenindex
10.01.2004 21:25:52
Ramses
Hallo
Ich habe das Makro nicht getestet. Aber folgendes fällt mir auf:
Der Spaltenindex ist kein Objekt. Es reicht
Dim Spalte As Byte
und zum Schluss
Spalte = rngfinden.Column
Gruss Rainer
Find-Treffer in IV1 ......Variablentyp? ;-) oT
10.01.2004 22:05:28
Boris
Grüße Boris
Da muss ja niemand suchen ;-))
10.01.2004 22:09:45
Ramses
Hallo Boris
wer schreibt schon seine Tabellen bis dahinten voll ;-))
Gruss Rainer
Anzeige
Solche Leute soll´s wohl geben...
10.01.2004 22:11:58
Boris
Hi Rainer,
...wo doch mit absoluter Regelmäßigkeit die Anfrage kommt, wie man die Spaltenanzahl in Excel erweitern kann...;-))
Grüße Boris
AW: Solche Leute soll´s wohl geben...
11.01.2004 01:14:53
Nepumuk
Hallo Boris und Rainer,
denen wird in Zukunft folgendes verordnet:
Userbild

Gruß
Nepumuk
Anzeige
LOL
11.01.2004 01:22:39
PeterW
Gibt es wirklich keinen Ausweg, ihr Profis kennt doch bestimmt einen Weg, brauche nun mal mindestens 312 Spalten...
AW: LOL
11.01.2004 01:46:43
K.Rola
Hallo,
MS Web Components Spreadsheet. In Office 9 sinds glaub ich 702 Spalten.
Gruß K.Rola
AW: LOL
11.01.2004 01:59:07
PeterW
Hallo K.Rola,
dann mal viel Spass dabei, die Anfragen nach mehr als 256 Spalten zu beantworten. ;-)
Gruß
Peter
Anzeige
OFF TOPIC
11.01.2004 01:45:00
K.Rola
Hallo Paganini der Programmierung,
danke für deinen Tipp, schon geordert.
Gruß K.Rola
Wie ich sehe läuft wieder alles....
11.01.2004 09:51:09
Ramses
Hallo Boris, Nepumuk und K.Rola
damit sind auch K.Rolas 702 Columns mit Byte adressierbar.
Man muss bloss ein wenig kreativ sein,...

Sub write_Columns()
Dim i As Byte, n as Byte
For n = 1 to 3
For i = 0 to 255
Cells(1,(i + 1 ) * n) = (i + 1 ) * n
Next i
Next n
End Sub


Aber ihr habt das Thema zwischenzeitlich ja wunderbar abgehandelt :-))
Gruss Rainer
Anzeige
AW: Spaltenindex
10.01.2004 22:11:50
maria
Hallo Rainer,
wenn ich Spalte als Byte definiere erhalte ich die fehlermeldung: "Fehler beim Komilieren:Objekt erforderlich"
Was tun?
Gruß
Maria
AW: Spaltenindex
11.01.2004 09:54:54
Ramses
Hallo
der code läuft fehlerfrei, ... allerdings habe ich nicht gesucht.
Ich wollte bloss wissen ob keine programmfehler auftauchen
Option Explicit

Sub test()
Dim ws1 As Worksheet
Dim rngfinden As Range
Dim rngfinden1 As Range
Dim Spalte As Byte
Range("A1").Select
Set ws1 = Workbooks("Kommentar.xls").Worksheets("Kommentare")
Set rngfinden = ws1.Rows("1:1")
rngfinden.Find(What:="222-222-222", After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
Spalte = rngfinden.Column
Debug.Print Spalte
End Sub

Gruss Rainer
Anzeige
AW: Spaltenindex
11.01.2004 13:34:10
maria
hallo rainer,
war mein fehler, falsch definierte variable...
vielen dank nochmal
gruß
maria
Merci :-)) Geschlossen o.T.
11.01.2004 14:41:59
Ramses
...
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Spaltenindex in Excel ermitteln


Schritt-für-Schritt-Anleitung

Um den Spaltenindex in Excel zu ermitteln, kannst du folgendes VBA-Skript verwenden. Dieses Skript sucht in der ersten Zeile nach einem bestimmten Wert und gibt den Spaltenindex zurück:

Sub test()
    Dim ws1 As Worksheet
    Dim rngfinden As Range
    Dim Spalte As Byte
    Set ws1 = Workbooks("Kommentar.xls").Worksheets("Kommentare")
    Set rngfinden = ws1.Rows("1:1")

    On Error Resume Next
    Set rngfinden = rngfinden.Find(What:="222-222-222", LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)
    On Error GoTo 0

    If Not rngfinden Is Nothing Then
        Spalte = rngfinden.Column
        Debug.Print Spalte
    Else
        MsgBox "Wert nicht gefunden."
    End If
End Sub

In diesem Code wird der spaltenindex durch die Eigenschaft .Column des gefundenen Bereichs ermittelt.


Häufige Fehler und Lösungen

  1. Fehler: "Objekt erforderlich"
    Ursache: Dies kann passieren, wenn die variable Spalte als Objekt definiert ist. Ändere die Definition von Dim Spalte As Object zu Dim Spalte As Byte.

  2. Fehler: Wert nicht gefunden
    Lösung: Stelle sicher, dass der gesuchte Wert tatsächlich in der ersten Zeile vorhanden ist. Überprüfe außerdem, ob die Arbeitsmappe und das Arbeitsblatt korrekt benannt sind.


Alternative Methoden

Falls du nicht mit VBA arbeiten möchtest, kannst du auch die Funktion VERGLEICH in Excel nutzen, um den Spaltenindex zu ermitteln. Hier ein Beispiel:

=VERGLEICH("222-222-222";A1:Z1;0)

Diese Funktion gibt den Index der Spalte zurück, in der der Wert gefunden wird. Dies ist eine einfache Methode, um den spaltenindex ohne Programmierung zu erhalten.


Praktische Beispiele

  1. Suchen eines Wertes in einer Tabelle
    Wenn du eine große Datenmenge hast und den Spaltenindex eines bestimmten Wertes benötigst, kannst du den oben beschriebenen VBA-Code verwenden.

  2. Verwendung der VERGLEICH-Funktion
    Angenommen, du hast eine Tabelle mit den Kopfzeilen in der ersten Zeile und möchtest den Index der Spalte "Umsatz" ermitteln. Verwende die Formel:

    =VERGLEICH("Umsatz";A1:Z1;0)

Tipps für Profis

  • Nutze Option Explicit am Anfang deines VBA-Codes, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
  • Experimentiere mit der Find-Methode, um verschiedene Suchparameter zu verwenden, wie z.B. MatchCase oder LookAt, um die Suche weiter anzupassen.
  • Du kannst den spaltenindex auch in einer benutzerdefinierten Funktion zurückgeben, um ihn mehrfach in deinem Code zu verwenden.

FAQ: Häufige Fragen

1. Frage
Wie kann ich den Spaltenindex schneller finden?
Antwort: Du kannst die VERGLEICH-Funktion in Excel verwenden, um den Spaltenindex ohne VBA zu ermitteln.

2. Frage
Was mache ich, wenn ich mehr als 256 Spalten brauche?
Antwort: Neuere Versionen von Excel unterstützen bis zu 16.384 Spalten (XFD). Stelle sicher, dass du eine aktuelle Version verwendest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige