Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1600to1604
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bedingtes Kopieren von Zellinhalten

Bedingtes Kopieren von Zellinhalten
09.01.2018 08:38:27
Zellinhalten
Hallo,
ich habe ein Problem bei dem bedingten kopieren von Zellinhalten. Im Tabellenblatt Ishikawa-Diagramm werden mögliche Ursachen für ein Problem erfasst und dann Bewertet. Alle Ursachen die mit größer oder gleich 5 bewertet werden sollen in das Tabellenblatt Maßnahmen unter den einzelnen Einflussgrößen eingefügt werden. Das geht dann durch das ganze Diagramm so.
Kann mir da jemand Helfen? Ich bin leider nicht so fit im VBA Programmieren.
Die Datei ist angehängt:
https://www.herber.de/bbs/user/118799.xlsm
Vielen Dank Josi

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nachfrage..
09.01.2018 12:48:20
UweD
Hallo
sollen beide Spalten (B und D , bezogen auf Produkt) abgearbeitet werden
oder nur B oder nur D?
sollen im Maßnamenblatt dann Zeilen eingefügt werden?
LG UweD
AW: Nachfrage..
09.01.2018 12:53:17
UweD
sind es immer maximal 10 Direkte / 20 indirekte Ursachen je Ursachengruppe
AW: Nachfrage..
09.01.2018 14:25:55
UweD
Einige Fragen konnte ich aus deinem angefangenen Makro entnehmen
so?
Public TbI, TbM
Option Explicit
Sub Ellipse1_Klicken()
    Dim ArrSpalte, ArrZeile, Sp, Ze, Anz As Integer, i
    Dim UGr As String, NZ As Double
    
    ArrSpalte = Array(4, 10, 16)
    ArrZeile = Array(13, 38)
    Set TbI = Sheets("Ishikawa-Diagramm")
    Set TbM = Sheets("Maßnahmen")
    Anz = 20 'Fixe Anzahl Ursachen 
    
    Application.ScreenUpdating = False
    
    For Each Ze In ArrZeile 'für die Zeilen 13 und 38 
        For Each Sp In ArrSpalte 'für die Spalten 4, 10, 16 
            With TbI.Cells(Ze, Sp)
                UGr = .Offset(-3, -3) 'Name Ursachengruppe 
                
                For i = 0 To Anz - 1
                    If .Offset(i, 0).Value > 4 Then
                        NZ = WorksheetFunction.Match(UGr, TbM.Columns(2), 0)  'Zeile Überschrift der Ursache 
                        NZ = Evaluate("=MIN(IF(A" & NZ & ":A65536="""",ROW(" & NZ & ":65536)))") 'Erste Lücke in Spalte 
        
                        'Zeile einfügen 
                        TbM.Rows(NZ).Insert Shift:=xlDown ', CopyOrigin:=xlFormatFromLeftOrAbove 
                        
                        Call Formatieren(NZ)
                
                        ' Inhalte kopieren 
                        TbM.Cells(NZ, 1).Resize(1, 2).Value = .Offset(i, -1).Resize(1, 2).Value
                
                    End If
                Next i
            End With
        Next Sp
    Next Ze
End Sub

Private Sub Formatieren(Zeile As Integer)
    With TbM.Cells(Zeile, 1).Resize(1, 6)
        With .Interior
            .Pattern = xlNone
            .TintAndShade = 0
            .PatternTintAndShade = 0
        End With
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
        With .Borders(xlEdgeLeft)
             .LineStyle = xlContinuous
             .ColorIndex = 0
             .TintAndShade = 0
             .Weight = xlThin
        End With
        With .Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With .Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        .RowHeight = 40
    End With

End Sub

LG UweD
Anzeige
AW: Nachfrage..
10.01.2018 07:39:45
Josi
Hallo Uwe,
die VBA Programmierung soll die Direkten Ursachen (Spalte B) und die indirekten Ursachen (Zeile D) auf die Bedigung Bewertung größer als 4 prüfen. In der Praxis ist es zwar recht unwahrscheinlich das eine direkte Unwichtige Ursache eine wichtige indirekte Ursache besitzt ich möchte den Fall trotzdem abgedeckt haben. Die Anzahl sind 10 Direkte Ursachen und 20 indirekte Ursachen, diese werden aber die alle komplett gefüllt sein.
Hab dein Makro jetzt mal so in meine Tabelle kopiert und habe bei folgenden Abschnitt eine Fehlermedlung.
Call Formatieren (NZ) Fehlermeldung: markiert NZ und zeigt an: Fehler beim Kompilieren: Argumententtyp ByRef unverträglich
Ich versuche noch das Makro in Einzelschritten nachzuvollziehen vielleicht finde ich den Fehler noch.
LG Josi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige