Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

per Makro Wert suchen und dessen Position angeben

per Makro Wert suchen und dessen Position angeben
15.02.2013 08:55:34
Frischy1990
Hallo,
ich benötige eure Hilfe bei einem Makro.
Ich habe eine Excel-Datei mit 2 Tabellenblättern. In dem ersten befinden sich sehr viele Maschinen mit allen Eigenschaften ect. In dem zweiten Tabellenblatt befinden sich die selben Maschinen ein weiteres Mal, jedoch stehen dort nur der Hersteller, die Maschinennummer (daran kann die Maschine eindeutig identifiziert werden) und ein Bild der Anlage. Das erste Tabelleblatt kann sortiert werden, dass andere ist statisch, und genau da liegt mein Problem!
Ich benötige ein Makro, welches mir zum Beispiel in Zeile 12 im ersten Tabellenblatt die Maschinennummer ausliest und in dem zweiten Tabellenblatt diesen Wert sucht. Anschließend soll das Makro die Zeile, in der es den Wert gefunden hat zwischenspeichern, sodass ich später das dazugehörige Bild kopieren kann.
Ich hoffe ihr könnt mein Problem nachvollziehen...
LG Frischy1990

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: per Makro Wert suchen und dessen Position angeben
15.02.2013 09:13:25
Klaus
Hi,
sehr magere Angaben ... wo in Tabelle1 (Zeile 12 ... ich such mir dann eine der 16384 Spalten dazu aus, ich nehme mal SpalteA) , wo in Tabelle2 suchen (ich nehm mal: in allen Zellen, Spalte egal). Wie heißen die Tabellen? Ich nehme mal "Tabelle1" und "Tabelle2".
Die Zeile zwischenspeichern, was heisst zwischenspeichern? Kopieren? In die Zwischenablage? Ich geb die Zeile mal in einer MsgBox aus, dann kannst du sie im Kopf zwischenspeichern :-)
Dann so:
Option Explicit
Sub AuslesenSuchenKopieren()
Dim wksAuslesen As Worksheet
Dim wksSuchen As Worksheet
Dim rSuche As Range
Dim lRow As Long
Set wksAuslesen = Sheets("Tabelle1")
Set wksSuchen = Sheets("Tabelle2")
Set rSuche = wksAuslesen.Range("A12")
With wksSuchen
lRow = .Cells.Find(What:=rSuche.Value, After:=.Range("A1"), LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Row
MsgBox lRow
End With
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: per Makro Wert suchen und dessen Position angeben
15.02.2013 10:32:32
Frischy1990
Hallo Klaus,
Vielen Dank für die schnelle Antwort!
Ich hab versucht deinen Code mit einzubauen, jedoch stellt der Range Befehl ein Problem dar.
Schau mal bitte was für meinen Fall geändert werden müsste. Die Deklarationen für meinen Beispielteil hab ich mal ausgelassen.
Option Explicit
Sub AuslesenSuchenKopieren()
Dim wksAuslesen As Worksheet
Dim wksSuchen As Worksheet
Dim rSuche As Range ich denke mal Range ist für meinen Fall falsch?!
Dim lRow As Long
Set wksAuslesen = Sheets("Database")
Set wksSuchen = Sheets("Picture")
ich denke hier liegt aktuell das Problem
Set rSuche = wksAuslesen.Range(lngRow, 4)
also lngRow wird vorher bestimmt und aus der Zeile werden dann alle Daten entnommen; der  _
Wert der in beiden Tabellenblättern gleich ist, befindet sich in Spalte 4
Zur Info, so wird der ermittelte Wert anschließend weiter verwendet:
Set objImg = getPicture(Datenbank.Sheets("picture").Cells(lRow, 6))
If Not objImg Is Nothing Then
objImg.Name = "img_" & Replace(Format(Now, "ddMMyyhhmmss") & Timer, ",", "_")
objImg.Copy
objSh.Paste
objSh.Shapes(objImg.Name).Top = objSh.Cells(1, 4).Top + 1
objSh.Shapes(objImg.Name).Left = objSh.Cells(1, 4).Left
End If
End Sub
Hast du eine Idee was anders gemacht werden müsste?
LG Frischy1990

Anzeige
AW: per Makro Wert suchen und dessen Position angeben
15.02.2013 10:56:11
Klaus
Hi,
ja, range ist hier falsch .. aber statt den code umzustricken, stricke ich deine deklaration um :-)
ich VERMUTE, lngRow ist eine Zeile und 4 ist die Spalte. Das hast du ja leider nicht geschrieben.
Set rSuche = wksAuslesen.Cells(lngRow, 4)
oder
Set rSuche = wksAuslesen.Range("D" & lngRow)
ein CELLS wird mit Zeile-Komma-Spalte angesprochen, ein Range mit Anführungszeichen-SpaltenBuchstabe-Zeilenzahl-Anführungsstrich. Das ansprechen von CELL kann direkt über Variablen erfolgen, für das ansprechen von RANGE mit Variablen muss die Zellen-Namens-Bezeichnung erst "gestrickt" werden.
Grüße,
Klaus M.vdT.

Anzeige
AW: per Makro Wert suchen und dessen Position angeben
15.02.2013 12:00:36
Frischy1990
Super funktioniert einwandfrei!
Vielen Dank!!!
Ich wünsch dir noch einen schönen Tag!

Danke für die Rückmeldung! owT.
16.02.2013 13:35:54
Klaus
.

Noch 'ne Schreibweise für Range, ...
15.02.2013 13:46:19
Luc:-?
…Klaus,
wenn der mehr als 1 Zelle umfasst:
Range(Cells(1, 1), Cells(2, 2)) oder eben mit .Resize, aber das kennst du ja schon… ;-)
Gruß Luc :-?

243 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige