Thema Datum  Von Nutzer Rating
Antwort
23.10.2017 21:57:26 Marco
NotSolved
24.10.2017 10:25:34 Gast17668
NotSolved
Rot doch EASY
25.10.2017 05:29:06 fransi
NotSolved

Ansicht des Beitrags:
Von:
fransi
Datum:
25.10.2017 05:29:06
Views:
607
Rating: Antwort:
  Ja
Thema:
doch EASY
Sub Testen()

Dim strMaterial As String
Dim arrV() As String

Application.ScreenUpdating = False
Application.DisplayAlerts = False

   'Hier wähle ich das Material aus
   strMaterial = InputBox("Ihre Auswahl")
   If Len(strMaterial) < 1 Then Exit Sub
   'Ich mach mir eine Hilfs-Arbeitsmappe
   HilfsArbeitsmappe "Hilfstabelle"
   'meine Auflistung in "Tabelle4"
   'mein Material in Spalte "E"
   'mein Diagramm in Spalte "I"
   arrV = Unikatliste("Tabelle4", "Hilfstabelle", "E", "I", strMaterial)
   Sheets("Hilfstabelle").Delete
   'mein Test
   MsgBox Join(arrV, vbNewLine)

Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Function Unikatliste(strA As String, strH As String, _
   colM As String, colD As String, strMat As String) As Variant

Dim ShA As Excel.Worksheet
Dim ShH As Excel.Worksheet

Dim rngF As Range, rngA As Range, rngR As Range, c As Range
Dim strarr As String, vArr() As String, i As Integer
   
   
   Set ShA = Sheets(strA)
   Set ShH = Sheets(strH)
   
   With ShH
      .AutoFilterMode = False
      .Cells.Clear
      ShA.Columns(colM).Copy .Range("A1")
      ShA.Columns(colD).Copy .Range("B1")
      With .UsedRange.Columns("C")
         .FormulaR1C1 = "=RC[-2]&RC[-1]"
         .Value = .Value
      End With
      .UsedRange.RemoveDuplicates Columns:=3, Header:=xlNo
      .UsedRange.AutoFilter Field:=3, Criteria1:= _
        "=" & strMat & "*", Operator:=xlAnd
      Set rngF = .UsedRange.SpecialCells(12)
      For Each rngA In rngF.Areas
         For Each rngR In rngA.Rows
            If rngR.Cells(1).Value = strMat Then
               ReDim Preserve vArr(0 To i)
               vArr(i) = rngR.Cells(2).Value
               i = i + 1
            End If
         Next rngR
      Next rngA
   End With

   Unikatliste = vArr
   
End Function

Private Sub HilfsArbeitsmappe(strName As String)
Dim Sh As Excel.Worksheet

   For Each Sh In Sheets
      If Sh.Name = strName Then Exit For
   Next Sh
   If Sh Is Nothing Then
      Sheets.Add
      ActiveSheet.Name = strName
   End If
   
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
23.10.2017 21:57:26 Marco
NotSolved
24.10.2017 10:25:34 Gast17668
NotSolved
Rot doch EASY
25.10.2017 05:29:06 fransi
NotSolved