Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1868to1872
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

flexible Range in Find

flexible Range in Find
04.02.2022 10:55:23
StefanH
Hallo zusammen,
ist es möglich bei der Find-Methode über VBA nicht zusammenhängende Spalten der gleichen Zeile zu prüfen ob etwas vorhanden ist?
Also "falsch" dargestellt einmal so:

If Not Tabelle2.range(Cells(lzeile, lspalte(1)), Cells(lzeile, lspalte(2)), Cells(lzeile, lspalte(3)), Cells(lzeile, lspalte(4))).Find("X") Is Nothing Then
Die Variablen weise ich zuvor schon einem Wert zu, bei lspalte(1-4) sind die Werte 5-14 möglich.
So wie ich es geschrieben habe, funktioniert es natürlich nicht, ich dachte vllt das es so funktionieren könnte:

strRng = Array(Cells(lzeile, lspalte(1)), Cells(lzeile, lspalte(2)), Cells(lzeile, lspalte(3)), Cells(lzeile, lspalte(4)))
If Not Tabelle2.Range(strRng).Find("X") Is Nothing Then
Code wenn "X" vorhanden
End If
Hätte jemand eine Idee wie ich das umsetzten kann um nicht jede Spalte einzeln abfragen zu müssen?
Herzlichen Dank im Vorraus und
Grüße
StefanH

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

Betreff
Datum
Anwender
Anzeige
AW: flexible Range in Find
04.02.2022 11:22:18
Piet
Hallo
strRng = Cells(lzeile, lspalte(1).Resize(1, 4) - Resize(1,4) vergrössert den Spaltenbereich auf 4 Spalten. Resize(4,1) verlängert die Zeilen nach unten! Probier es mal damit.
mfg Piet
AW: flexible Range in Find
04.02.2022 11:26:07
Stefan
Hallo Piet,
danke schonmal für den Code.
Er funktioniert bei mir leider nicht.
Ich vermute auch erst ist eher dafür ausgelegt, wenn die Spalten nebeneinander liegen.
Es kann aber auch so sein:
lspalte(1) = 6
lspalte(2) = 7
lspalte(3) = 10
Ich werd die Datei mal anonymisieren und hochladen.
Grüße
Stefan
noch die Datei
04.02.2022 11:31:53
Stefan
Ging schneller als gedacht:
https://www.herber.de/bbs/user/150874.xlsm
Der code ist im Modul "DatenÜbernehmenUndSpeichern" als Sub "Kopieren_Nach_Maschine"
Ich hoff man kann den Code einigermaßen nachvollziehen.
Normalerweise öffnet sich bei Start direkt die UF"Maschine_Wählen", zum besseren reinkommen hab ich das auskommentiert.
Gruß
Stefan
Anzeige
AW: flexible Range in Find
04.02.2022 11:37:56
GerdL
Moin Stefan,
es ist schöner, erst zu suchen u. danach das Ergebnis auszuwerten.
Die Range-Find-Methode hat einige weitere Argumente, die man einstellen sollte (after:= .., lookat:=.., lookin:= ...matchcase:= ..)
denn sie könnten im Dialog Suchen "verstellt" werden.
Einige Beispiele für die Bildung eines heterogenen Bereichs:

Dim rngBereiche As Range, rngCell As Range
Set rngBereiche = Union(Tabelle1.Cells(5, 1), Tabelle1.Cells(5, 3), Tabelle1.Cells(5, 4), Tabelle1.Cells(5, 8))
Set rngBereiche = Tabelle1.Range("A5,C5:D5,H5")
Set rngBereiche = Intersect(Tabelle1.Rows(5), Tabelle1.Range("A:A,C:D,H:H"))
'Set rngCell = rngBereiche.Find(.....)
'If Not objCell Is Nothing Then
'machwas
'End If
Gruß Gerd
Anzeige
gelöst
04.02.2022 12:20:44
Stefan
Hallo Gerd,
herzlichen Dank. auch für die Erklärung.
Genau nach dem hab ich gesucht, funktioniert einwandfrei.
Ich wünsche dir noch ein schönes Wochenende :)
Gruß
Stefan

196 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige