Thema Datum  Von Nutzer Rating
Antwort
12.10.2017 10:19:11 Lukas
NotSolved
12.10.2017 16:10:29 Gast7777
NotSolved
Rot Excel-VBA
12.10.2017 19:16:24 fkw48
NotSolved

Ansicht des Beitrags:
Von:
fkw48
Datum:
12.10.2017 19:16:24
Views:
599
Rating: Antwort:
  Ja
Thema:
Excel-VBA

AUSFÜHRLICH UND ZUM MITLESEN

Option Explicit
'"Scripting.Dictionary"
'ggf. VERWEIS SETZEN

Sub Zahlenwenn()
Const Zahlenspalte As Variant = "B"
Const Ergebnisspalte As Variant = "D"

Dim varArray As Variant
Dim objMyDic As Object
Dim V        As Variant

Dim rngZahlen As Range
Dim rngA As Range, rngC As Range
Dim arrV() As Variant
'
   Set objMyDic = CreateObject("Scripting.Dictionary")
'
   With Columns(Zahlenspalte)
      Set rngZahlen = .ColumnDifferences(.Cells(.Cells.Count))
      For Each rngA In rngZahlen
         For Each rngC In rngA
            If IsNumeric(rngC.Value) Then
               V = rngC.Value
               objMyDic(V) = V
            End If
         Next rngC
      Next rngA
   End With
   
   arrV = objMyDic.Items()
   
   Columns(Ergebnisspalte).Offset(, 1).ClearContents
   With Columns(Ergebnisspalte)
      .ClearContents
      Set rngC = .Cells(1)
      Set rngC = rngC.Resize(UBound(arrV) + 1, 1)
      rngC.Value = Application.Transpose(arrV)
      Set rngA = .Cells(1)
      Set rngA = Range(rngA, rngA.End(xlDown))
      For Each rngC In rngA
         rngC.Offset(, 1).Value = WorksheetFunction.CountIfs(Columns(Zahlenspalte), rngC.Value)
      Next rngC
   End With

   Set rngA = rngA.Resize(, 2)
   With ActiveSheet.Sort
      With .SortFields
         .Clear
         .Add Key:=Range(rngA.Columns(1).Address), _
            SortOn:=xlSortOnValues, _
            Order:=xlAscending, DataOption:=xlSortNormal
      End With
      .SetRange Range(rngA.Address)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
      With .SortFields
         .Clear
         .Add Key:=Range(rngA.Columns(2).Address), _
            SortOn:=xlSortOnValues, _
            Order:=xlDescending, DataOption:=xlSortNormal
      End With
      .SetRange Range(rngA.Address)
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
   End With


End Sub

 


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
12.10.2017 10:19:11 Lukas
NotSolved
12.10.2017 16:10:29 Gast7777
NotSolved
Rot Excel-VBA
12.10.2017 19:16:24 fkw48
NotSolved