Opgelost Lege rij kiezen

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Mark_68

Gebruiker
Lid geworden
17 mei 2024
Berichten
44
Beste,

Met onderstaande code word er altijd na de laatste gevulde rij toegevoegd, nu zou ik graag willen als er lege rijen ontstaan dat die eerst gevukld worden. Ik denk zelf dat het in de rode gemarkeerde tekst zit, maar kom er niet uit.

If Worksheets("Data").Cells(r, 1).Value = "Aluminium" Then
Worksheets("Data").Range("A2:E2").Copy
Worksheets("Aluminium").Activate
lastrowaluminium = Worksheets("Aluminium").Range("A" & Rows.Count).End(xlUp).Row
Worksheets("Aluminium").Cells(lastrowaluminium + 1, 1).Select
ActiveSheet.Paste
Worksheets("Data").Range("A2").ClearContents

End If
 
Dat kan bijvoorbeeld zo:
Code:
lastrowaluminium = Sheets("Aluminium").Range("A1").CurrentRegion.Rows.Count
 
Laatst bewerkt:
Als ik jou code probeer gaat hij rechtstreeks naar de laaste regel van het document
 
Dat kan niet.
Plaats dan een voorbeeld document.
 
De code moet in het userform "Invoeren" komen onder de knop "opslaan", en dan zou hij regel 3 op het tabblad aluminium het eerste moeten vullen.
 

Bijlagen

Regel 3 is niet leeg.
Daarnaast heb je bijna 3000 lege regels onder regel 4 zitten.
 
Die 3000 regels gaat minder worden als het werkt met het invullen. Klopt dat hij niet helemaal leeg is en was mijn vraag dus onduidelijk ,mijn excuses. Maar de bedoeling is wel dat hij in dit geval het wel weer als eerst op regel 3 gaat invullen.
 
Zo zie je hoe belangrijk het is precies te zijn.
Gebruik dan deze functie in een Module:
Code:
Function LaatsteRegel(Werkblad As String) As Long
    Dim y As Long
    With Sheets(Werkblad)
        For y = 2 To .UsedRange.Rows.Count
            If .Cells(y, 1) = "" Then
                LaatsteRegel = y
                Exit Function
            End If
        Next y
    End With
End Function
Aanroep:
Code:
lastrowaluminium =LaatsteRegel("Aluminium")
 
Bedankt, maar zou je die voor mij in het bestand kunnen plaatsen, zie nu door de bomen ff het bos niet meer.
 
Bedankt maar bij mij plaatsts hij hem in Cel A1 in plaats van A3
 

Bijlagen

  • Schermafbeelding 2024-11-04 143018.jpg
    Schermafbeelding 2024-11-04 143018.jpg
    27,3 KB · Weergaven: 0
De functie geeft de eerstvolgende regel terug waar de cel in kolom A leeg is.
Plaats dan je document zoals deze nu is.
 
Ik heb nu het volgende staan

If Worksheets("Data").Cells(r, 1).Value = "Aluminium" Then
Worksheets("Data").Range("A2:E2").Copy
Worksheets("Aluminium").Activate
lastrowaluminium = LaatsteRegel("Aluminium")
Worksheets("Aluminium").Cells(lastrowaluminium + 1, 1).Select
ActiveSheet.Paste
Worksheets("Data").Range("A2").ClearContents

End If

En nu blijt hij regel 4 overschrijven
 
Haal dan die +1 weg.
 
De code achter je formulier "Invoeren" kan iets korter, 48 regels i.p.v. 173.
 

Bijlagen

In het formulier "Verwerken" is x de onderste gevulde rij in het werkblad "Aluminium". Datzelfde rijnummer gebruik je als bovengrens in je loop door de andere materiaalwerkbladen, lijkt mij niet helemal jofel.
En het telkens herhalen van de code voor ieder materiaalwerkblad is niet nodig, maak er een aparte functie voor, dat maakt het onderhoud veel eenvoudiger.
Het is ook véél handiger om alle materialen in één werkblad te plaatsen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan