25.07.2017, 15:27
(Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2017, 16:13 von Rabe.
Bearbeitungsgrund: Anhang umbenannt
)
Hi,
im Thema Analyse mit MMULT() habe ich diverse Fragen zu MMULT gestellt.
Ich habe an der Datei weitergemacht, da das unabhängig von den Antworten für die dortigen Fragen ist.
Ich habe nun eine Vorlage eingebaut, auf der ich für einen im Blatt "Ergebnistabelle 2" markierten Mitarbeiter alle seine Maßnahmen aufzählen will ohne Lücke.
Jede Maßnahme (Spaltenbezeichnung aus Zeile 3), die in der Maßnahmenspalte einen Wert größer 0 stehen hat, soll in das betreffende Mitarbeiter-Blatt eingetragen werden.
Mit dem unteren Code werden leider die Lücken mitgeschrieben. Wie kann ich das verhindern?
Hier das Makro für den Button im Blatt "Ergebnistabelle 2":
Gefährdungsanalyse V2.xlsb (Größe: 162,45 KB / Downloads: 5)
im Thema Analyse mit MMULT() habe ich diverse Fragen zu MMULT gestellt.
Ich habe an der Datei weitergemacht, da das unabhängig von den Antworten für die dortigen Fragen ist.
Ich habe nun eine Vorlage eingebaut, auf der ich für einen im Blatt "Ergebnistabelle 2" markierten Mitarbeiter alle seine Maßnahmen aufzählen will ohne Lücke.
Jede Maßnahme (Spaltenbezeichnung aus Zeile 3), die in der Maßnahmenspalte einen Wert größer 0 stehen hat, soll in das betreffende Mitarbeiter-Blatt eingetragen werden.
Mit dem unteren Code werden leider die Lücken mitgeschrieben. Wie kann ich das verhindern?
Hier das Makro für den Button im Blatt "Ergebnistabelle 2":
Option Explicitund hier die Datei:
Sub MitarbeiterBlatt_anlegen()
'
' Protokoll_anlegen Makro
'
Dim loLetzte As Long
Dim loZeile As Long
Dim i As Long
Dim strTabelle As String
Dim strName As String
'
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
If ActiveCell.Column <> 1 Then Exit Sub
strName = ActiveCell.Value
Sheets("Vorlage").Visible = True
Sheets("Vorlage").Select
Sheets("Vorlage").Copy Before:=Sheets(11)
Range("B4").Value = strName
loZeile = Application.Match(strName, Sheets("Ergebnistabelle 2").Columns(1), 0)
Range("B4").Value = Range("B4").Value & ", " & Sheets("Mitarbeiter").Range("B" & loZeile).Value
ActiveSheet.Name = Range("B4").Value
Range("F4").Value = Sheets("Mitarbeiter").Range("C" & loZeile).Value
Range("B6").Value = Sheets("Mitarbeiter").Range("D" & loZeile).Value
' Sheets("Vorlage").Visible = False
'Nun sollen die Maßnahmen (Spaltenbezeichnungen aus Zeile 3) in das Mitarbeiter-Blatt eingetragen werden. *Ohne Lücken!*
With Sheets("Ergebnistabelle 2")
' loLetzte = .Cells(Rows.Count, 1).End(xlUp).Row ' letzte belegte in Spalte A (1)
For i = 2 To 103
If .Cells(loZeile, i).Value > 0 Then
ActiveSheet.Range("B" & i + 10) = .Cells(3, i)
End If
Next i
End With
With Application
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub
