Workbook.open erzeugt Virenwarnung

09/12/2010 - 10:56 von Volker Wolf | Report spam
Hallo,

nach langer Zeit bin mal wieder am Makro erstellen. Jetzt möchte ich
das bei öffnen der Ausführungsdatei andere Dateien eingelesen werden
und dann als neue Datei ausgegeben werden. Im Prinzip genug das meine
(geringen) Ansprüchen. Aber wenn ich die Funktion Workbook.open
einfüge bekomme ich eine Viruswarnung von Avira Antivir 9. Und kann
nicht speichern.

Bin für jede Hilfe dankbar.

Beste Grüße

Volle

hier der Code:
Private Sub Workbook_Open()
Zusammenfassen
End Sub

Sub Zusammenfassen()
Dim MySheet As Worksheet ' aktuelles Arbeitsblatt
Dim strPath As String ' Dateipfad zum Auslesen der Dateien
Dim strFile As String ' Quelldatei
Dim wkbInput, meins As Workbook ' Quell-Arbeitsmappe
Dim wksInput As Worksheet ' Quell-Registerblatt
Dim WKS As Worksheet 'Zwischenspeicher
Dim lngTargetRow As Long ' Zeilenzàhler für die
Bewertungsinformationen
Dim InRowLetzte As Long
Dim InColumLetzte As Long
Dim OutRowErste As Integer
Dim OutRowLetzte As Long
Dim OutColumLetzte As Integer
Dim Dateiname As String


Dim i As Integer
Application.DisplayAlerts = False

' alle Aktiven Fenster in Excel Schließen
'
Set MySheet = ActiveSheet
Set meins = ActiveWorkbook
strPath = ActiveWorkbook.Path

'-'
' Inhalt außer der Überschrift löschen
'-'

InRowLetzte = MySheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
InColumLetzte MySheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
MySheet.Range(Cells(3, 1).Address, Cells(InRowLetzte,
InColumLetzte).Address).Select
Selection.Delete

OutRowErste = 3
InRowLetzte = 3
'-'
' Verzeichnis durchgehen und alle Dateien auslesen
'-'
strFile = Dir(strPath & "\*.xls")
Do While strFile <> "" ' Schleife beginnen

If strFile = ActiveWorkbook.Name Then
'-'
' Zieldatei natürlich übergehen
'-'
Else
'-'
' Quelldatei öffnen
' und 1. Registerblatt auswàhlen
'-'
Set wkbInput = Application.Workbooks.Open(strPath & "\" & strFile)
'Quelldatei öffen
Set wksInput = wkbInput.Worksheets(1) 'erstes tabellenblatt öffnen

'-'
' Daten auslesen und in Auswertung kopieren
'-'

wksInput.Activate
InRowLetzte = wksInput.UsedRange.SpecialCells(xlCellTypeLastCell).Row
InColumLetzte = 7
wksInput.Range(Cells(3, 1).Address, Cells(InRowLetzte,
InColumLetzte).Address).Select
Selection.Copy

meins.Activate
MySheet.Activate
OutRowLetzte = MySheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
OutColumLetzte = 7

MySheet.Range(Cells(OutRowErste, 1).Address, Cells(OutRowLetzte +
InRowLetzte, InColumLetzte).Address).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks:=False, Transpose:=False
OutRowErste = MySheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row +
1

'-'
' Datei schließen
'-'
wkbInput.Close
Set wkbInput = Nothing

End If

strFile = Dir ' Nàchsten Eintrag abrufen

Loop
MySheet.Range(Cells(3, 2).Address, Cells(50000, 2).Address).Select
With Selection
.NumberFormat = "dd.mm.yy"
End With

MySheet.Range(Cells(3, 6).Address, Cells(50000, 6).Address).Select
With Selection
.NumberFormat = "hh:mm"
End With

Dateiname = "Stunden_" & Format(Date$, "dd.mm.yy") & ".xls"

Set wkbInput = Application.Workbooks.Add

MySheet.Copy (wkbInput.Worksheets(1))

For Each Worksheet In wkbInput.Worksheets
If Worksheet.Name <> "2010" Then
Worksheet.Activate
Worksheet.Delete
End If
Next

wkbInput.SaveAs Filename:=strPath & "/Zusammenfassung/" & Dateiname,
FileFormat:=xlNormal, Password:="", WriteResPassword:="",
ReadOnlyRecommended:=False, CreateBackup:=False

meins.Close


End Sub
 

Lesen sie die antworten

#1 Claus Busch
09/12/2010 - 13:55 | Warnen spam
Hallo Volker,

Am Thu, 9 Dec 2010 01:56:58 -0800 (PST) schrieb Volker Wolf:

nach langer Zeit bin mal wieder am Makro erstellen. Jetzt möchte ich
das bei öffnen der Ausführungsdatei andere Dateien eingelesen werden
und dann als neue Datei ausgegeben werden. Im Prinzip genug das meine
(geringen) Ansprüchen. Aber wenn ich die Funktion Workbook.open
einfüge bekomme ich eine Viruswarnung von Avira Antivir 9. Und kann
nicht speichern.



das Problem wird durch deinen Virenscanner verursacht und muss auch dort
behoben werden. Wenn in mehrere Dateien innerhalb kürzester Zeit
geschrieben wird, wird ein Virus vermutet, aber du solltest das in den
Einstellungen des Virenscanners beheben können.

Zu deinem Code: Du kannst einen Range mit Cells zusammenstellen. Dazu
genügt aber z.B. Range(Cells(1,1),Cells(1000,6))
Du brauchst das Address nicht. Außerdem ist es besser auf Select und
Selection zu verzichten. Du kannst z.B. direkt ein Format zuweisen:
Range(Cells(1,1),Cells(1000,6)).NumberFormat=..


Mit freundlichen Grüssen
Claus Busch
Win XP Prof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2

Ähnliche fragen