Ga naar inhoud

Excel; lege cellen vullen met waarde bovenstaande cel


anoniem

Aanbevolen berichten

Ik lees een grote hoeveelheid gegevens in Excel in vanuit een .txt-bestand. Dat levert helaas een groot aantal lege cellen op omdat bij rijen over hetzelfde onderwerp alleen de eerste rij de naam van het onderwerp bevat. Ik ben dus op zoek naar een manier (in een macro?) om een lege cel automatisch te vullen met de eerste de beste waarde die, omhoog zoekende, te vinden is in dezelfde kolom. Wie heeft een goed idee? Moonie
Link naar reactie
Moonie, Onderstaande sub zou het moeten doen. Selecteer de cellen en laat de routine het werk doen. Als je een hele kolom selecteert, kan het een paar seconden duren voor de hele kolom gedaan is. Ik kon niet vinden hoe je de laatste rij en kolom uit een selectie kan vinden. Maar misschien helpt iemand daarbij. Ik heb de sub getest met Excel-97 SR2. Het zal ook wel met hogere versies werken. [code:1:e05a84aa4c]Sub VulWaardenAan() Dim SelectieStartRij As Integer Dim BladLaatsteRij As Integer Dim c As Variant Dim WaardeHogereCel As Variant SelectieStartRij = Selection.Cells(1, 1).Row BladLaatsteRij = Cells.SpecialCells(xlCellTypeLastCell).Row For Each c In Selection If c.Row <= BladLaatsteRij Then If c.Row > SelectieStartRij Then If c.Value = "" Then c.Value = WaardeHogereCel End If WaardeHogereCel = c.Value End If Next c End Sub[/code:1:e05a84aa4c] Met vriendelijke groet, Maarten.
Link naar reactie
Probeert anders dit eens: [code:1:3c379c7757] Public Sub Test() Dim rng As Range Dim sCol As String sCol = ActiveCell.Address(ColumnAbsolute:=False) sCol = Mid(sCol, 1, InStr(sCol, "$") - 1) Set rng = Range(sCol & "1", _ sCol & CStr(Cells(Rows.Count, sCol).End(xlUp).Row)) rng.Replace What:="", Replacement:="999" End Sub [/code:1:3c379c7757] U selecteert een cel in een kolom waarin willekeurige [i:3c379c7757]lege[/i:3c379c7757] cellen staan. Wanneer u deze macro uitvoert zult u zien dat alle [i:3c379c7757]lege[/i:3c379c7757] cellen zijn ingevuld met de opgegeven waarde, in dit geval '999'. Mijn macro is gemaakt om maar voor één bepaalde kolom per keer te werken (deze waarin een cel is geselecteerd), maar u kunt de functie [i:3c379c7757]Replace[/i:3c379c7757] uiteraard gebruiken op een veel grotere range. Aan [i:3c379c7757]sCol[/i:3c379c7757] wordt de letter van de kolom (niet het cijfer) toegekend. Als we die kennen wordt de range gespecificeerd, zijnde van de eerste tot de allerlaatste gebruikte rij van deze kolom. Als het [i:3c379c7757]de eerste de beste[/i:3c379c7757] waarde mag zijn, kan dit voor u een [i:3c379c7757]snelwerkende[/i:3c379c7757] oplossing betekenen...[/i]
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...