Thema Datum  Von Nutzer Rating
Antwort
01.07.2021 13:31:25 Lukas Schwanz
NotSolved
01.07.2021 19:51:06 Gast78921
NotSolved
01.07.2021 20:08:22 Gast34498
NotSolved
02.07.2021 08:53:31 Gast91952
NotSolved
02.07.2021 13:37:17 Gast60790
NotSolved
02.07.2021 14:21:53 Lukas Schwanz
NotSolved
02.07.2021 15:21:02 Gast69038
NotSolved
03.07.2021 12:23:36 Lukas Schwanz
NotSolved
03.07.2021 22:13:43 Gast93186
NotSolved
06.07.2021 09:40:14 Lukas Schwanz
NotSolved
07.07.2021 09:32:51 Gast9064
NotSolved
07.07.2021 09:44:08 Gast31074
NotSolved
07.07.2021 09:44:59 Gast91455
NotSolved
Blau Blau Makro nur bis bestimmter Wert in Zelle ausführen
07.07.2021 21:22:17 Gast74934
NotSolved
01.07.2021 23:17:46 Gast65029
NotSolved

Ansicht des Beitrags:
Von:
Gast74934
Datum:
07.07.2021 21:22:17
Views:
1068
Rating: Antwort:
  Ja
Thema:
Makro nur bis bestimmter Wert in Zelle ausführen
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
  
Sub Test()
    
  Dim sh        As Excel.Worksheet
  Dim rngFails  As Excel.Range
  Dim rngMatch  As Excel.Range
  Dim rngStart  As Excel.Range
  Dim rngTarget As Excel.Range
    
  With ThisWorkbook.Worksheets("Zusammenfassung")
    Set rngStart = .Range("A5")
    Set rngTarget = rngStart
    Call .UsedRange.Clear
  End With
   
  For Each sh In ThisWorkbook.Worksheets
      
    Set rngMatch = sh.Columns("A").Find("BOARDRESULT", , xlValues, xlWhole, xlByColumns, xlNext, False)
    Set rngFails = Nothing
      
    If Not rngMatch Is Nothing Then
      If rngMatch.Offset(0, 1).Value = "FAIL" Then
        Set rngFails = sh.Range("A4", rngMatch.Offset(-2))
      End If
    End If
      
    If Not rngFails Is Nothing Then
      rngTarget.Font.Bold = True
      rngTarget.Value = sh.Name
      Call rngFails.EntireRow.Copy(Destination:=rngTarget.Offset(1))
      Set rngTarget = rngTarget.Offset(1 + rngFails.Rows.Count)
    End If
      
  Next
   
  Dim dic As Object
  Set dic = CreateObject("Scripting.Dictionary")
   
  With rngTarget.Worksheet.Range(rngStart, rngTarget.Offset(-1))
    For Each rngMatch In .Offset(0, 2).Cells
      If rngMatch.Value <> "" Then
        dic(rngMatch.Value) = dic(rngMatch.Value) + 1
      End If
    Next
  End With
   
  With rngTarget.Offset(1, 2)
    'Beschriftungen setzen
    .Offset(0, 1).Value = "Anzahl"
    .Offset(0, 2).Value = "relative Häufigkeit"
    .Offset(1, -1).Value = "Fehler (nur einmal):"
    .Offset(dic.Count + 1, 0).Value = "Summe"
    'Werte setzen/berechnen
    If dic.Count > 0 Then
      'Spalte mit SN
      With .Offset(1, 0).Resize(dic.Count, 1)
        .Value = WorksheetFunction.Transpose(dic.Keys)
      End With
      'Spalte: Anzahl
      With .Offset(1, 1).Resize(dic.Count, 1)
        .Value = WorksheetFunction.Transpose(dic.Items)
      End With
      'Spalte: rel. Häufigk.
      With .Offset(1, 2).Resize(dic.Count, 1)
        .NumberFormat = "0.00%"
        .Formula = "=RC[-1]/" & rngTarget.Offset(dic.Count + 2, 3).Address(ReferenceStyle:=xlR1C1)
      End With
      'Zeile: Summe
      With .Offset(dic.Count + 1, 1).Resize(1, 2)
        .Cells(2).NumberFormat = "0.00%"
        .Formula = "=SUM(R[-" & dic.Count & "]C:R[-1]C)"
      End With
      With .Resize(dic.Count + 1, 3)
        Call .Sort(.Cells(1, 3), xlAscending, Header:=xlYes)
      End With
    End If
  End With
   
  rngTarget.Worksheet.UsedRange.Columns.AutoFit
   
End Sub

Änderungen zu hier sind markiert.

 

Grüße


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
01.07.2021 13:31:25 Lukas Schwanz
NotSolved
01.07.2021 19:51:06 Gast78921
NotSolved
01.07.2021 20:08:22 Gast34498
NotSolved
02.07.2021 08:53:31 Gast91952
NotSolved
02.07.2021 13:37:17 Gast60790
NotSolved
02.07.2021 14:21:53 Lukas Schwanz
NotSolved
02.07.2021 15:21:02 Gast69038
NotSolved
03.07.2021 12:23:36 Lukas Schwanz
NotSolved
03.07.2021 22:13:43 Gast93186
NotSolved
06.07.2021 09:40:14 Lukas Schwanz
NotSolved
07.07.2021 09:32:51 Gast9064
NotSolved
07.07.2021 09:44:08 Gast31074
NotSolved
07.07.2021 09:44:59 Gast91455
NotSolved
Blau Blau Makro nur bis bestimmter Wert in Zelle ausführen
07.07.2021 21:22:17 Gast74934
NotSolved
01.07.2021 23:17:46 Gast65029
NotSolved