Thema Datum  Von Nutzer Rating
Antwort
20.09.2013 15:17:39 Seidel, Uwe
NotSolved
Blau Mail mit zwei Anhängen senden
21.09.2013 15:31:49 Gast27582
NotSolved
09.10.2013 13:33:28 Seidel, Uwe
NotSolved

Ansicht des Beitrags:
Von:
Gast27582
Datum:
21.09.2013 15:31:49
Views:
972
Rating: Antwort:
  Ja
Thema:
Mail mit zwei Anhängen senden

Was heißt "Anhänge sortieren"?

 

So?

Option Explicit

Public Sub test()
  
  Const C_TAB1 As Integer = 50
  
  Dim pdf() As Variant
  Dim nr()  As Variant
  
  'Beispieldaten
  pdf = Array("Betrieb_Henkel_7341625.pdf", _
              "Betrieb_Telekom_1562347.pdf", _
              "Betrieb_Handknecht_1234567.pdf", _
              "Betrieb_Infineon_1732645.pdf", _
              "Betrieb_Firmenname_1475623.pdf", _
              "Betrieb_AMD_3261754.pdf", _
              "Betrieb_Bayer_5623417.pdf", _
              "Betrieb_Siemens_4521736.pdf", _
              "Betrieb_MöbeltransportUnger_4152736.pdf")
  
  'array mit gleicher Dimension wie die Beispieldaten
  ReDim nr(LBound(pdf) To UBound(pdf))
  
  Dim s As Long, e As Long
  Dim i As Long
  
  ' wir wollen nach den Nummern sortieren, also...
  ' -> nummer extrahieren
  For i = LBound(nr) To UBound(nr)
    s = InStrRev(pdf(i), "_")
    e = InStrRev(pdf(i), ".")
    If e > s And s > 0 Then
      nr(i) = Mid$(pdf(i), s + 1, e - s - 1)
    Else
      Call Err.Raise(vbObjectError + 1, "test()", "Konnte Nummer in Dateinamen nicht finden")
    End If
  Next
  
  Dim idx() As Long
  
  'nummern sortieren
  Call bubbleSort(nr, idx)
  
  'Ausgabe
  Debug.Print
  Debug.Print "PDF"; Tab(C_TAB1); "NR(sortiert)"
  For i = LBound(pdf) To UBound(pdf)
    'Ausgabe im Direktbereich (anzeigen im VBA-Editor mit Tastenkombination STRG+G [s. Menü: Ansicht])
    Debug.Print "'" & pdf(idx(i)) & "'"; Tab(C_TAB1); nr(idx(i))
  Next
  
  Call MsgBox("Fertig.", vbInformation)
  
  'wir denken ans Aufräumen (auch wenn wir es in diesem Fall nicht müssten)
  Erase idx, nr, pdf
  
End Sub

' sehr simpler sort-algorithmus
'[IN]   val, idx
'[OUT]  idx (stellt die sortierte Indizierung dar)
Public Sub bubbleSort(val() As Variant, ByRef idx() As Long)
  
  Dim t As Variant
  Dim i As Long
  Dim j As Long
  
  'index-array mit gleicher Dimension der
  'zu sortierenden Werte erstellen
  ReDim idx(LBound(val) To UBound(val))
  For i = LBound(idx) To UBound(idx)
    idx(i) = i
  Next
  
  'sortieren...
  For i = UBound(val) - 1 To LBound(val) Step -1
    For j = i To UBound(val) - 1
      If val(idx(j)) > val(idx(j + 1)) Then
        'Indizes tauschen
        t = idx(j)
        idx(j) = idx(j + 1)
        idx(j + 1) = t
      End If
    Next
  Next
  
End Sub

 

VG


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
20.09.2013 15:17:39 Seidel, Uwe
NotSolved
Blau Mail mit zwei Anhängen senden
21.09.2013 15:31:49 Gast27582
NotSolved
09.10.2013 13:33:28 Seidel, Uwe
NotSolved