Thema Datum  Von Nutzer Rating
Antwort
09.05.2013 18:54:18 Bella
Solved
10.05.2013 10:51:41 kim
NotSolved
12.05.2013 19:45:52 woswasi
NotSolved
Blau wenns schnell gehen soll
12.05.2013 22:14:26 Gast56524
NotSolved

Ansicht des Beitrags:
Von:
Gast56524
Datum:
12.05.2013 22:14:26
Views:
1082
Rating: Antwort:
  Ja
Thema:
wenns schnell gehen soll
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Option Explicit
 
Public Sub Demo()
   
  Dim at(), am()
  Dim n As Long
   
  'Auswertung:
  n = MyEvaluation(Tabelle1, at, am)
   
  If n > 0 Then
     
    Tabelle2.Columns("A").Resize(n).Value = at
    Tabelle2.Columns("B").Resize(n).Value = am
     
    Erase at, am 'Aufräumen
     
    Call MsgBox(n & " Artikel wurde(n) verarbeitet.", _
          vbInformation, _
          "Vorgang abgeschlossen")
     
  ElseIf n = 0 Then
     
    Call MsgBox("Keine Artikel zum verarbeiten gefunden.", _
          vbInformation, _
          "Vorgang abgeschlossen")
     
  Else
    Call MsgBox("Es ist ein unerwarteter Fehler aufgetreten." & vbNewLine & _
                "(siehe VBA-Direktbereich für mehr Details)", _
            vbCritical, _
            "Vorgang unterbrochen")
  End If
   
End Sub
 
Private Function MyEvaluation(Worksheet As Excel.Worksheet, Article(), Amount()) As Long
   
  On Error GoTo ErrHandler
   
  Dim rngData As Excel.Range
  Dim rngRS   As Excel.Range
  Dim dicT    As Object
  Dim t       As String
   
  With Worksheet.UsedRange
    Set rngData = .Resize(.Rows.Count - 1).Offset(1) 'Kopfzeile rausnehmen
  End With
   
  Set dicT = CreateObject("Scripting.Dictionary")
   
  For Each rngRS In rngData.Rows
     
    t = rngRS.Cells(1).Text
     
    If dicT.Exists(t) Then
      dicT.Item(t) = dicT.Item(t) + rngRS.Cells(2).Value
    Else
      dicT.Add t, rngRS.Cells(2).Value
    End If
     
  Next
   
  Article() = WorksheetFunction.Transpose(dicT.Keys)
  Amount() = WorksheetFunction.Transpose(dicT.Items)
   
  MyEvaluation = dicT.Count
   
  GoTo SafeExit
   
ErrHandler:
   
  Debug.Print ">> Error " & Err.Number & ": " & Err.Description & " <<"
   
  MyEvaluation = -1
   
SafeExit:
  Set rngRS = Nothing
  Set rngData = Nothing
  Set dicT = Nothing
 
End Function

 


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
09.05.2013 18:54:18 Bella
Solved
10.05.2013 10:51:41 kim
NotSolved
12.05.2013 19:45:52 woswasi
NotSolved
Blau wenns schnell gehen soll
12.05.2013 22:14:26 Gast56524
NotSolved