Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1228to1232
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

@ Sepp: DAtei noch verbessern

@ Sepp: DAtei noch verbessern
Claudia
Hallo Sepp,
an dieser Datei hast Du mir mindestens schon zweimal geholfen. Jetzt bräuchte ich nochmals Deine Hilfe!
Ich würde gerne neben den bestehenden Funktionen "löschen" und "verschieben" noch "kopieren" reinbringen. Die Eingabe soll in Spalte G erfolgen (wie bei den anderen auch).
Die Pfadangabe des Ordner, in den die betreffende Mail kopiert werden soll, möchte ich in Spalte K (ab Zeile 2) eingeben - neben der betreffenden Mail.
Praktisch sollte es dann so sein, wenn ich das Makro "kopieren" ausführe, dass alle gekennzeichneten Mails in den / die angegegeben Ordner kopiert werden. Die Ordner in Spalte K können unterschiedlich sein.
Hier die Datei.
https://www.herber.de/bbs/user/76448.xls
Wäre schön, wenn Du Dir das mal anschauen könntest.
Liebe Grüße
Claudia

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: @ Sepp: DAtei noch verbessern
03.09.2011 17:34:45
Josef

Hallo Claudia,
teste mal.

Sub delMails()
  Dim lngRow As Long, strLink As String, strFile As String
  Dim strPath As String, strName As String, strExt As String
  Dim lngIndex As Long, lngPos As Long
  Dim rng As Range
  
  With ActiveSheet
    strPath = .Range("M1")
    strPath = IIf(Right(strPath, 1) = "\", strPath, strPath & "\")
    
    For lngRow = 2 To Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row)
      If LCase(.Cells(lngRow, 7)) = "löschen" Then
        If .Cells(lngRow, 1).Hyperlinks.Count > 0 Then
          strLink = .Cells(lngRow, 1).Hyperlinks(1).Address
          If Dir(strLink, vbNormal) <> "" Then
            If rng Is Nothing Then
              Set rng = .Rows(lngRow)
            Else
              Set rng = Union(rng, .Rows(lngRow))
            End If
            Kill strLink
          End If
        End If
      ElseIf LCase(.Cells(lngRow, 7)) = "verschieben" Then
        strLink = .Cells(lngRow, 1).Hyperlinks(1).Address
        If Dir(strLink, vbNormal) <> "" Then
          strFile = Mid(strLink, InStrRev(strLink, "\") + 1)
          If Dir(strPath & strFile, vbNormal) <> "" Then
            lngPos = InStrRev(strFile, ".")
            strName = Left(strFile, lngPos - 1)
            strExt = Mid(strFile, lngPos)
            Do
              lngIndex = lngIndex + 1
              strFile = strName & "(" & CStr(lngIndex) & ")" & strExt
            Loop While Dir(strPath & strFile, vbNormal) <> ""
          End If
          Name strLink As strPath & strFile
        End If
      ElseIf LCase(.Cells(lngRow, 7)) = "kopieren" Then
        If .Cells(lngRow, 1).Hyperlinks.Count > 0 Then
          strLink = .Cells(lngRow, 1).Hyperlinks(1).Address
          If Dir(strLink, vbNormal) <> "" Then
            If Dir(.Cells(lngRow, 11).Text, vbDirectory) <> "" Then
              strFile = Mid(strLink, InStrRev(strLink, "\"))
              FileCopy strLink, .Cells(lngRow, 11).Text & strFile
            End If
          End If
        End If
      End If
    Next
    If Not rng Is Nothing Then rng.Delete
  End With
End Sub


Private Function copyFile(ByVal sourceFileName As String, targetFileName As String) As Long
  Dim objFSO As Object, objFile As Object
  
  On Error GoTo ErrExit:
  
  copyFile = -1
  
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  
  Set objFile = objFSO.GetFile(sourceFileName)
  
  objFile.Copy targetFileName, True
  
  GoTo GoOut
  
  ErrExit:
  copyFile = 0
  
  GoOut:
  Set objFSO = Nothing
  Set objFile = Nothing
End Function



« Gruß Sepp »

Anzeige
AW: @ Sepp: DAtei noch verbessern
03.09.2011 22:29:50
Claudia
Hallo Sepp,
funktioniert wieder einmal reibungungslos.
Vielen Dank und Schönes WE!
Claudia

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige