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

Forumthread: Anwendungs- oder objektori. Fehler

Anwendungs- oder objektori. Fehler
21.01.2008 12:56:00
Bea
Hallo!
Da ich relativ am Ende meines Lateins bin und langsam "betriebsblind" werde, versuche ich es jetzt mal hier mit eurer Hilfe!
Ich schreibe gerade ein Macro mit dem ich aus einer Tabelle bestimmte "Überschriften" suchen kann und von denen ich die Spaltennummer auslesen will. Diese kann immer unterschiedlich sein, da die Spalten variieren. Der Fehler läuft immer auf ein anwendungs- oder objektorientiertes Problem hinaus und ich weiß nun nicht mehr weiter, da ich alle Möglichkeiten ausprobiert habe, diese Zelle zu aktivieren.
Nachfolgend steht der Code:

Sub SpaltennummernKopf()
Workbooks("Kopfdaten.xls").Activate
Worksheets("Tabelle1").Activate
Range("A1").Select 'hier hackts
'letzte Spalte finden
letzteSpalte = Range("A1").End(xlToRight).Column
'Spalte auswählen
Range(Cells(1, letzteSpalte), Cells(1, letzteSpalte)).Select
'Bereich durchsuchen und Wert ausgeben
Zeile = Sheets("Tabelle1"). _
UsedRange.SpecialCells(xlCellTypeLastCell).Row
For Suchen = 1 To letzteSpalte
If Cells(1, Suchen) = "Regulierer" Then
MsgBox Suchen
End If
Next Suchen
End Sub


Vielen lieben Dank schonmal im Voraus für die Hilfe!

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Anwendungs- oder objektori. Fehler
21.01.2008 13:01:41
Hajo_Zi
Hallo Bea,
in VBA kann zu 99,9% auf select usw. verzichtet werden.
Lösche die Zeile und Range(Cells(1, letzteSpalte), Cells(1, letzteSpalte)).Select da nirgens auf die Selection Bezug genommen wird.

AW: Anwendungs- oder objektori. Fehler
21.01.2008 13:18:00
Renee
Hi Bea,
Das kannst Du auch billiger haben:

Sub SpaltennummernKopf()
Const tSuchbegriff = "Regulierer"
Const tThisWorkbook = "Kopfdaten"
Const tThisWorksheet = "Tabelle1"
Dim rThisRange As Range
Dim iSpalte As Integer
Set rThisRange = Workbooks(tThisWorkbook).Sheets(tThisWorksheet).Rows(1)
On Error Resume Next
iSpalte = Application.WorksheetFunction.Match(tSuchbegriff, rThisRange, 0)
MsgBox IIF(iSpalte=0,"Nix gefunden","Gefunden in Spalte " & iSpalte)
End Sub


GreetZ Renée

Anzeige
AW: Anwendungs- oder objektori. Fehler
21.01.2008 13:19:00
Rudi
Hallo,
das packst du sinnvollerweise in eine Function.

Function SpaltenNummer(wks As Worksheet, txt As String)
Dim tmp
tmp = Application.Match(txt, wks.Rows(1), 0)
If Not IsError(tmp) Then
SpaltenNummer = tmp
Else
SpaltenNummer = "Nicht vorhanden"
End If
End Function



Sub tt()
MsgBox SpaltenNummer(Workbooks("Mappe6").Sheets("Tabelle1"), "Regulierer"), , "Spaltennummer" _
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Anwendungs- oder objektori. Fehler
21.01.2008 13:43:00
Bea
Vielen Dank für die schnelle Antworten!
Hajo: Nach deinem Tipp hat es dann doch geklappt! Und das mit "Select" werde ich mir merken ;)!
Rudi und Renee: Auch bei euch bedanke ich mich für den Code und die Mühe. Ich werde mich auf jeden Fall damit auseinandersetzen, da es wesentlich "schlanker" aussieht, als meiner und funktioniert ;).
Als Neuling achtet man nicht so auf schlanken, einfachen Code ;)
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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