AW: Arbeitsmappe öffnen, Arbeitsblatt suchen, Text ein
18.02.2008 15:35:48
fcs
Hallo J.,
das Makro prüft in den Tabellenblättern der Zieldatei nur die Zelle A1 auf Übereinstimmung mit dem Suchbegriff.
Wenn auf dem Blatt 1 in Zelle A1 kein Maschinenname steht, dann werden dort auch keine Daten eingetragen.
Ich hab jetzt mal eine Zieldatei nachgebastelt. Das Makro funktioniert. Ich hab es um eine Meldung ergänzt, wenn die Maschine nicht gefunden wird, und die Variable "strSuchbegriff" in "varSuchbegriff" umbenannt.
Gruß
Franz
Sub DatenEintragen()
Dim wbQuelle As Workbook, wksQuelle As Worksheet, varSuchbegriff As Variant
Dim wbZiel As Workbook, wksZiel As Worksheet, ZeileZiel As Long
Dim strDateiname As String, Bereich As Range, boGefunden As Boolean
varSuchbegriff = [o1]
If varSuchbegriff = "" Then Exit Sub
Set wbQuelle = ThisWorkbook
Set wksQuelle = wbQuelle.Worksheets("sonstiges") 'Tabellenblatt mit den Daten
'Bereich mit den zu übertragenden Werten, ggf. Anpassen
With wksQuelle
Set Bereich = .Range(.Cells(5, 10), .Cells(5, 17)) 'J5:Q5
End With
strDateiname = "C:\Eigene Dateien\Störfallhandbuch\Störfallhandbuch Bauteilgruppen\Stö _
rfalllogbuch Maschinen.xls"
strDateiname = "C:\Lokale Daten\Test\Mappe1.xls"
Set wbZiel = Workbooks.Open(Filename:=strDateiname)
boGefunden = False
For Each wksZiel In wbZiel.Worksheets
If wksZiel.Range("A1") = varSuchbegriff Then
boGefunden = True
With wksZiel
'nächste freie Zeile im Zielblatt
ZeileZiel = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
'Daten (nur Werte) kopieren
Bereich.Copy
.Cells(ZeileZiel, 1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End With
Exit For
End If
Next
If boGefunden = True Then
'Zieldatei speichern und schliessen
wbZiel.Save
wbZiel.Close
Else
wbZiel.Close savechanges:=False
MsgBox "Maschine """ & varSuchbegriff & """ in Zieldatei nicht gefunden."
End If
Set wbQuelle = Nothing: Set wksQuelle = Nothing
Set wbZiel = Nothing: Set wksZiel = Nothing
End Sub