Hallo,
Waarschijnlijk zeer makkelijk, maar vinden doe ik het zelf momenteel niet. Daarom zou ik graag weer jullie hulp vragen voor het volgende.
Ik heb een sheet met informatie in de kolommen A tot en met N. Mijn probleem situeert zich in kolom F en G. In kolom F staat een nummer en kolom G de omschrijving. Door een bug in het informaticasysteem ontbreekt soms de informatie in kolom F en G en zet het systeem "UNKNWN" in kolom F en "Unknown vendor" in kolom G. De informatie is echter op dezelfde sheet terug te vinden (meestal in de rij erboven). Het probleem is echter dat dit niet altijd het geval is, waardoor de macro die ik momenteel heb niet correct werkt (zie hieronder). Ik vraag me ook af of het misschien op een andere manier nog makkelijker zou kunnen; bijvoorbeeld indien "UNKNWN" dan zoeken in de sheet of er nog andere rijen zijn met de zelfde waarde in kolom A en B en indien dit het geval is de waarde van kolom F en G van die betreffende rij in de rij met UNKNWN plakken? In kolom A staat een tekst en kolom een nummer. Indien de waarde niet op de sheet staat, dan een messagebox die vraagt de informatie zelf in te vullen?
Dit is de macro die ik momenteel heb geschreven:
Sub test()
Columns("F:F").Replace _
What:="UNKNWN", Replacement:="", _
SearchOrder:=xlByColumns, MatchCase:=True
Columns("G:G").Replace _
What:="Unknown vendor", Replacement:="", _
SearchOrder:=xlByColumns, MatchCase:=True
Columns("F:F").Select
Dim Area As Range, LastRow As Long
On Error Resume Next
LastRow = Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, _
LookIn:=xlFormulas).Row
For Each Area In ActiveCell.EntireColumn(1).Resize(LastRow). _
SpecialCells(xlCellTypeBlanks).Areas
Area.Value = Area(1).Offset(-1).Value
Next
Columns("G:G").Select
LastRow = Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, _
LookIn:=xlFormulas).Row
For Each Area In ActiveCell.EntireColumn(1).Resize(LastRow). _
SpecialCells(xlCellTypeBlanks).Areas
Area.Value = Area(1).Offset(-1).Value
Next
End Sub
Alvast bedankt.
Nuki
Waarschijnlijk zeer makkelijk, maar vinden doe ik het zelf momenteel niet. Daarom zou ik graag weer jullie hulp vragen voor het volgende.

Ik heb een sheet met informatie in de kolommen A tot en met N. Mijn probleem situeert zich in kolom F en G. In kolom F staat een nummer en kolom G de omschrijving. Door een bug in het informaticasysteem ontbreekt soms de informatie in kolom F en G en zet het systeem "UNKNWN" in kolom F en "Unknown vendor" in kolom G. De informatie is echter op dezelfde sheet terug te vinden (meestal in de rij erboven). Het probleem is echter dat dit niet altijd het geval is, waardoor de macro die ik momenteel heb niet correct werkt (zie hieronder). Ik vraag me ook af of het misschien op een andere manier nog makkelijker zou kunnen; bijvoorbeeld indien "UNKNWN" dan zoeken in de sheet of er nog andere rijen zijn met de zelfde waarde in kolom A en B en indien dit het geval is de waarde van kolom F en G van die betreffende rij in de rij met UNKNWN plakken? In kolom A staat een tekst en kolom een nummer. Indien de waarde niet op de sheet staat, dan een messagebox die vraagt de informatie zelf in te vullen?
Dit is de macro die ik momenteel heb geschreven:
Sub test()
Columns("F:F").Replace _
What:="UNKNWN", Replacement:="", _
SearchOrder:=xlByColumns, MatchCase:=True
Columns("G:G").Replace _
What:="Unknown vendor", Replacement:="", _
SearchOrder:=xlByColumns, MatchCase:=True
Columns("F:F").Select
Dim Area As Range, LastRow As Long
On Error Resume Next
LastRow = Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, _
LookIn:=xlFormulas).Row
For Each Area In ActiveCell.EntireColumn(1).Resize(LastRow). _
SpecialCells(xlCellTypeBlanks).Areas
Area.Value = Area(1).Offset(-1).Value
Next
Columns("G:G").Select
LastRow = Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, _
LookIn:=xlFormulas).Row
For Each Area In ActiveCell.EntireColumn(1).Resize(LastRow). _
SpecialCells(xlCellTypeBlanks).Areas
Area.Value = Area(1).Offset(-1).Value
Next
End Sub
Alvast bedankt.
Nuki