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

Find Methode

Forumthread: Find Methode

Find Methode
Jonathan
Hey,
ich habe einen etwas umständlichen Code gebastelt, welcher mit mehreren Schleifen Werte in meinem Tabellenblatt sucht - dies sollte eigentlich mit find schneller gehen, leider finde ich nicht so wirklich eine Hilfe dazu.
Kann mir jemand eine gute hilfeseite nennen, wo die find-Methode einfach erklärt ist?
Danke Euch!
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Find Methode
15.08.2011 16:11:36
Josef

Hallo Jonathan,
das ist doch in der VBA-Hilfe recht gut beschrieben.

« Gruß Sepp »

Anzeige
AW: Find Methode
15.08.2011 16:23:33
jowe
Hallo Jonathan,
schau mal hier nach:
http://msdn.microsoft.com/en-us/library/aa195730(v=office.11).aspx
oder teste mal dies hier:
Sub finder()
Dim sh As Worksheet
Set sh = ThisWorkbook.ActiveSheet
Dim gefunden As Range
Set gefunden = sh.Cells.Find(What:="Hallo Welt!")
If gefunden Is Nothing Then
MsgBox "nix gefunden"
Else
MsgBox "Ich bin in " & gefunden.Address
End If
End Sub

Gruß
Jochen
Anzeige
AW: Find Methode
16.08.2011 13:51:38
Jonathan
Hey,
danke für die Tipps. Habe es soweit programmieren können; dabei ist mir etwas aufgefallen:
Nicht das Suchen per Schleife dauert lange, sondern das darauf folgende Ausblenden von Spalten. Zu meinem Code:
Ich suche in Zeile 1 bestimmte Werte (aus einer UF), werden diese gefunden, wird in Zeile 2 der Wert 1 geschrieben. Mit der nächsten Schleife blende ich alle Spalten aus, zu welchen es in Zeile 2 keinen Wert 1 gibt. Dies dauert unheimlich lange, auch reagiert Excel dabei oft nicht mehr.
Hier mal der Codeausschnitt für das Ausblenden:
For i = 3 To letSpa
' Me.probar = i
If DATEN.Cells(2, i).Value 1 Then
DATEN.Columns(i).EntireColumn.Hidden = True
Else
DATEN.Cells(2, i).Value = ""
End If
Gibt es dafür eine schnellere Lösung?
Danke Euch!!
Next
Anzeige
AW: Find Methode
16.08.2011 16:28:45
Erich
Hi Jonathan,
probier mal:

Option Explicit
Sub Ausbl()
Dim rngH As Range, arrW, i As Long
Dim DATEN As Worksheet
Const letSpa As Long = 25
Set DATEN = ActiveSheet
arrW = DATEN.Cells(2, 1).Resize(, letSpa)
For i = 3 To letSpa
If arrW(1, i) = 1 Then
arrW(1, i) = ""
Else
If rngH Is Nothing Then
Set rngH = Cells(2, i)
Else
Set rngH = Union(rngH, Cells(2, i))
End If
End If
Next i
If Not rngH Is Nothing Then rngH.EntireColumn.Hidden = True
DATEN.Cells(2, 1).Resize(, letSpa) = arrW  ' evtl. werden Formeln durch Werte ersetzt
End Sub
Stehen in dem Bereich Formeln? Die sind nachher weg...
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Find Methode
16.08.2011 16:41:16
Jonathan
Hey,
ich werde des Code gleich testen und versuchen, alles nachzuvollziehen... ;-)
Habe es zwischenzeitlich wie folgt gelöst:
Die Spalten, welche eingeblendet bleiben sollen, erhalten nach wie vor eine 1 in Zelle x; die anderen blende ich so aus:
With DATEN.Range(DATEN.Cells(2, 3), DATEN.Cells(2, letSpa))
.SpecialCells(xlCellTypeBlanks).EntireColumn.Hidden = True
.ClearContents
Das geht auch sehr schnell und funktioniert. Wahrscheinlich werde ich aber nach Tests dienen Code übernehmen! ;-) Danke für die super Hilfe!
VG
End With
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