ich stehe vor folgender Herausforderung:Ich möchte in einer Tabelle leerze Zellen unter Abhängigkeit zur Splate A mit Text füllen.
Ich habe eine Liste mit ID in Spalte A, Firmennamen in Spalte B, Firmenanschrift in Spalte C und die Tochterunternehmen in Spalte D sowie weitere Attribute in den darauffolgenden Spalten bis EY.
Jetzt ist es so, dass bspw. in Zeile 2 der Firmenname steht und in Spalte D 2,3,4, ..100 jeweils in einer separaten Zelle untereinander die Tochtergesellschaften. Jetzt möchte ich ganz gerne die leeren Zellen mit den darüberliegenden Informationen füllen:
ID Firma A Adresse A Tochter 1 Manager X
1 Tochter 2 Manager XX
Tochter 3
Tochter 4
2 Firma B Adresse B Tochter 1
Den oberen Wert nach unten kopieren klappt mit folgendem VBA schon sehr gut. Nur habe ich das _
Problem, dass IMMER der obrige Wert Kopiert wird. Fehlt bspw. eine Information bei einem _
Unternehmen, so wird eine falsche Information runter kopiert:
Sub FillColBlanks()
Dim wks As Worksheet
Dim rng As Range
Dim LastRow As Long
Dim col As Long
Application.ScreenUpdating = False
Set wks = ActiveSheet
With wks
For col = 1 To Cells(1, 155).Column
Set rng = .UsedRange 'try to reset the lastcell
LastRow = .Cells.SpecialCells(xlCellTypeLastCell).Row
Set rng = Nothing
On Error Resume Next
Set rng = .Range(.Cells(2, col), .Cells(LastRow, col)) _
.Cells.SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If rng Is Nothing Then
MsgBox "No blanks found"
Application.ScreenUpdating = True
Exit Sub
Else
rng.FormulaR1C1 = "=R[-1]C"
End If
'replace formulas with values
With .Cells(1, col).EntireColumn
.Value = .Value
End With
Next col
End With
Application.ScreenUpdating = True
End Sub
1 Firma A Adresse A Tochter A1 Manager A
1 Firma A Adresse A Tochter A2 Manager A
1 Firma A Adresse A Tochter A3 Manager A
1 Firma A Adresse A Tochter A4 Manager A
2 Firma B Adresse B Tochter B1 Manager A
3 Firma C Adresse B Tochter B1 Manager A
4 Firma D Adresse B Tochter B1 Manager A
5 Firma E Adresse E Tochter E1 Manager E
Nun habe ich zwischen jedem neuen Eintrag eine Leerzeile eingefügt.
Ein neuer Eintrag ist dann, wenn ich einen Change in Value in Spalte A habe.
Die Herausforderung besteht allerdings weiterhin. Wie teile ich Excel mit nur dann den oberen Wert runter zu kopieren, wenn dieser auch zur gleichen ID/Company gehört?
Ich freue mich auf eure Lösungsvorschläge!