Folgendes Excel Bsp:
Release | Liste | Nummer |Quelle | Bearbeiter
DEPT 2.3.4.3 | Batchänderung | 47112 |Kopie V | Thomas
ROER 6.4.0.0 | Batchänderung | 74762 |Kopie V |
ROER 6.4.0.0 | Inbetriebnahme | 74762 |Kopie V | Clemens
ROER 6.4.0.0 | Mussschrit | 74762 |Kopie V |
ROER 6.4.0.0 | CR | 74762 |Kopie V |
ROER 6.4.0.0 | CR | 75001 |Depmp | Karin
In meinem Excel gibts ca 1000e Zeilen die Unterschiedlich Elemente.
Es geht um die Befüllung leerer Zellen in der Spalte "Bearbeiter"
=> Wenn die Werte in den Zellen der Spalte "Nummer" und Zellen in der Spalte "Quelle" gleich sind und es einen Bearbeiter da drinnen gibt, dann soll dieser auf alle zutreffenden Felder kopiert werden.
=> Es kann aber auch sein, dass im Felder "Bearbeiter" nie was drinne steht, dann soll das auch so bleiben
Bsp von oben => nun das Ergebnis:
Release | Liste | Nummer |Quelle | Bearbeiter
DEPT 2.3.4.3 | Batchänderung | 47112 |Kopie V | Thomas
ROER 6.4.0.0 | Batchänderung | 74762 |Kopie V | Clemens
ROER 6.4.0.0 | Inbetriebnahme | 74762 |Kopie V | Clemens
ROER 6.4.0.0 | Mussschrit | 74762 |Kopie V | Clemens
ROER 6.4.0.0 | CR | 74762 |Kopie V | Clemens
ROER 6.4.0.0 | CR | 75001 |Depmp | Karin
Folgenden CODE hab ich zz, jedoch nehm ich immer den ersten Vorkommenden Namen im Feld und ü _ berschreib mir so die anderen Felder (falls das genommenen Feld leer ist) - :(
Private Sub Bearbeiter()
Dim intZaehler1 As Integer
Dim intZaehler2 As Integer
Dim lngLZeile As Long
Dim strQuelle As String
Dim strBearbeiter As String
Dim strBatch As String
Dim strInbe As String
Dim strMuss As String
Dim strCR As String
Dim lngNummer As Long
strBatch = "Batchänderung"
strInbe = "Inbetriebnahmeschritt"
strMuss = "Mussschritt"
strCR = "CR"
lngLZeile = Worksheets("TODO").Cells(Rows.Count, 1).End(xlUp).Row
For intZaehler1 = 2 To lngLZeile
Select Case Cells(intZaehler1, 2).Value
Case strBatch
strBearbeiter = Cells(intZaehler1, 5).Value
lngNummer = Cells(intZaehler1, 3).Value
For intZaehler2 = 2 To lngLZeile
Select Case Cells(intZaehler2, 3).Value
Case lngNummer
If Cells(intZaehler2, 2).Value = strBatch Or Cells(intZaehler2, 2). _
Value = strInbe Or Cells(intZaehler2, 2).Value = strMuss Or Cells(intZaehler2, 2).Value = strCR _
_
Then
Cells(intZaehler2, 5).Value = strBearbeiter
End If
End Select
Next
Case strInbe
strBearbeiter = Cells(intZaehler1, 5).Value
lngNummer = Cells(intZaehler1, 3).Value
For intZaehler2 = 2 To lngLZeile
Select Case Cells(intZaehler2, 3).Value
Case lngNummer
If Cells(intZaehler2, 2).Value = strBatch Or Cells(intZaehler2, 2). _
Value = strInbe Or Cells(intZaehler2, 2).Value = strMuss Or Cells(intZaehler2, 2).Value = strCR _
_
Then
Cells(intZaehler2, 5).Value = strBearbeiter
End If
End Select
Next
Case strMuss
strBearbeiter = Cells(intZaehler1, 5).Value
'Call MsgBox(" " & Cells(intZaehler1, 5).Value)
lngNummer = Cells(intZaehler1, 3).Value
For intZaehler2 = 2 To lngLZeile
Select Case Cells(intZaehler2, 3).Value
Case lngNummer
If Cells(intZaehler2, 2).Value = strBatch Or Cells(intZaehler2, 2). _
Value = strInbe Or Cells(intZaehler2, 2).Value = strMuss Or Cells(intZaehler2, 2).Value = strCR _
_
Then
If Len(Cells(intZaehler2, 5).Value) = 0 Then
Cells(intZaehler2, 5).Value = strBearbeiter
End If
End If
End Select
Next
End Select
Next
End Sub