Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA - Wert finden und ganze Zeile ausgeben
#1
Hallo,

Habe mir jetzt ein Makro geschrieben, das mir die gesamte aus einem Formular ein Datum ausliest, und mir aus einer Tabelle die Zeile zum entspr. Datum anzeigt.
Sollte das Datum nicht vorhanden sein, soll es quasi in der nächsten Zeile weiterlesen. Zur Zeit erscheint diese MsgBox "Wert nicht gefunden"

Geht das mit meiinem Ansatz:

Code:
Sub DatenfindenundkopierenTEST()

Dim rng As Range
Dim suchDatum As Date

suchDatum = Sheets("Tabelle1").Range("H4").Value 'gesuchter Wert
'Range("B13") = suchDatum


Set rng = Worksheets("CSV Transfer").Range("A2:A366").Find(suchDatum)
If rng Is Nothing Then
  MsgBox "Wert nicht gefunden!"
 
Else
   rng.EntireRow.Copy
   Worksheets("Tabelle1").Range("A13").PasteSpecial Paste:=xlPasteAll
End If

End Sub
Antworten Top
#2
Hallo,

(27.04.2016, 14:54)lapunta schrieb: Sollte das Datum nicht vorhanden sein, soll es quasi in der nächsten Zeile weiterlesen.

geht das etwas genauer/verständlicher?

Gruß Uwe
Antworten Top
#3
In der Tabelle CSV Transfer stehen in der Spalte A die Datumsangaben, in den folgenden Spalten weitere Daten.

 Momentan sucht das Makro nach einem Datum und gibt dann die ganze Zeile aus. Jetzt kann es aber sein, daß es das gesuchte Datum einfach nicht gibt. Sieht dann so aus:

15.03.2016       41,71      41,99      41,04
14.03.2016       40,885    41,83      40,73
11.03.2016       40           40,965    39,62
10.03.2016       40,855    41,99      39,2

Also hier fehlen der 12. bzw. der 13.März, somit kann das Makro diese Zeile nicht finden.

Es wäre schön, wenn es stattdessen die nächste vorhandene Zeile anzeigen würde. Also in diesem Beispiel die vom 14.März.
Antworten Top
#4
Hallo,

wenn die Daten absteigend sortiert sind, ginge es mit der Funktion VERGLEICH (entspricht Match) mit dem Parameter -1:
Sub DatenfindenundkopierenTEST()
 Dim rng As Range
 Dim suchDatum As Double
 
 suchDatum = Sheets("Tabelle1").Range("H4").Value 'gesuchter Wert
 Set rng = Worksheets("CSV Transfer").Range("A2:A366")
 rng.Rows(Application.Match(suchDatum, rng, -1)).EntireRow.Copy Worksheets("Tabelle1").Range("A13")
End Sub

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • lapunta
Antworten Top
#5
Hallo Lapunta

mir ist noch nicht ganz klar was du mit dem naechsten Wert meinst?

So wie die Aufgabe jetzt aussieht wird das Datum aus Zelle H4 gesucht.
Wenn es gefunden wurde, wird das Datum dann manuell geaendert?
Oder soll Das Makro ab H5, H6 das naechste Datum weiter suchen?

Das ist mir noch nicht ganz klar.

mfg  Gast 123
Antworten Top
#6
sorry doppel post...
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste