Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1224to1228
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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!

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 »

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige