Discussion:
Wert suchen in Excel über Word-VBA
(zu alt für eine Antwort)
stego
2009-08-19 09:41:01 UTC
Permalink
Hallo zusammen,

ich gehe davon aus, dass mir hier wieder geholfen werden kann.
Ich trage bestimmte Daten aus einem Word-Makro in eine Excel-Tabelle ein.

Nun möchte ich eine Prüfung einbauen:

bevor der Wert aus der Variablen (hier: svertrag(6)) in die Exceltabelle
eingetragen wird, soll geprüft werden, ob dieser Wert aus der Variablen
bereits in Zelle A2 bis zur letzten gefüllten Zelle vorhanden ist.

Wenn ja, dann Meldung, wenn nein einfach weitermachen.

Hab schon so ein bisschen mit Find rumgestochert, aber irgendwie komm ich
nicht weiter.

Vielen Dank für Tipps oder Lösungen

Gruß
Stephan
Andreas Killer
2009-08-19 10:22:13 UTC
Permalink
Post by stego
Hab schon so ein bisschen mit Find rumgestochert, aber irgendwie komm ich
nicht weiter.
Nimm mal das Excel-File, starte den Makrorecorder, markiere den zu
durchsuchenden Bereich, suche nach dem Begriff, stoppe den
Makrorecorder.

Damit hast Du schon mal eine Basis, in etwa so:

Range("A1:A25").Select
Selection.Find(What:="1", etc. ).Activate

das schreibst Du dann so um:

set C = Range("A1:A25").Find(What:="1", etc. )
If C Is Nothing Then
'Nicht gefunden
Else
'gefunden
End If

Und alles weitere findest Du in der Excel-Hilfe wenn Du mal auf Find
klickst und Strg-F1 drückst. .-)

Andreas.
stego
2009-08-19 11:14:04 UTC
Permalink
Hallo Andreas,

vielen Dank für die Hilfe, das funktioniert soweit...
wie finde ich jetzt noch heraus in welcher zelle der wert gefunden wurde?
Andreas Killer
2009-08-19 15:17:57 UTC
Permalink
Post by stego
wie finde ich jetzt noch heraus in welcher zelle der wert gefunden wurde?
Brauchst Du nicht, Du hast mit "set C = Range.Find" schon einen
"direkten Link", sprich einen Verweis auf die Zelle.

Anders gesagt C ist vom Typ Range und repräsentiert die gefundene
Zelle. Daher kannst Du direkt mit C arbeiten und alles anstellen was
mit einem Range machbar ist, z.B. mit "MsgBox C.Address" Dir die
Adresse anzeigen lassen oder "C = 123" einen Wert reinschreiben.

Andreas.

Loading...