Hallo allerseits,
ich habe es bereits an anderer Stelle versucht, bislang konnte mir aber noch keiner helfen. Ich bin noch blutiger Anfänger was VBA anbelangt, und hoffe daher auf eure Hilfe.
Ich habe ein Makro, mit dem ich eine Tabelle aus einer geschlossenen Datei auslesen kann. Jetzt wollte ich das Makro dahingehend erweitern, dass man in eine Zelle eine Zahl eingibt nach der gesucht werden soll. Die gesuchte Zahl sollte sich in der geschlossenen Datei in Spalte E befinden. Es sollen dann nur die Zeile/n ausgegeben werden, die die gesuchte Zahl in Spalte E haben.
Makro lade ich hier hoch.
Ich habe versucht den Suchbegriff zu finden
Set bereich = Range("B9:F32").Find("suchbegriff"), bekomme dann aber einen Fehler bei der Schleife "For each cell in bereich"
Ich hoffe mir kann jemand helfen, ich weiß nicht was ich noch probieren kann. Vielen Dank im Voraus.
LG
Sub Bereich_auslesen()
'** Dimensionierung der Variablen
Dim pfad As String, datei As String, blatt As String, bereich As Range, cell As Object
suchbegriff = ThisWorkbook.Sheets("Auslesen").Cells(4, 4).Value
'** Pop-Up wenn kein Kennzeichen eingegeben wurde
If suchbegriff = "" Then
answer = MsgBox("Es wurde kein Kennzeichen eingegeben." & vbNewLine & "Möchten Sie trotzdem suchen?", vbQuestion + vbYesNo + vbDefaultButton2, "Suche")
If answer = vbNo Then
End
End If
End If
'** Angaben zum auszulesenden Bereich
pfad = "C:\NeuerOrdner"
datei = "Report.xlsx"
blatt = "ExportReport"
Set bereich = Range("B9:F32")
'** Bereich auslesen
For Each cell In bereich
'** Zellen umwandeln
cell = cell.Address(False, False)
'** Eintragen in Bereich
ActiveSheet.Cells(cell.Row, cell.Column).Value = GetValue(pfad, datei, blatt, cell)
Next cell
End Sub
Private Function GetValue(pfad, datei, blatt, cell)
'** Daten aus geschlossener Arbeitsmappe auslesen
'*** Dimensionierung der Variablen
Dim arg As String
'Sicherstellen, dass die Datei vorhanden ist
If Right(pfad, 1) <> "\" Then pfad = pfad & "\"
If Dir(pfad & datei) = "" Then
GetValue = "Datei nicht gefunden"
Exit Function
End If
'** Das Argument erstellen
arg = "'" & pfad & "[" & datei & "]" & blatt & "'!" & Range(cell).Range("A1").Address(, , xlR1C1)
'** Auslesen über Excel4Macro
GetValue = ExecuteExcel4Macro(arg)
End Function
|