Rij kopieëren en invoegen op volgorde

Status
Niet open voor verdere reacties.

Niels28

Terugkerende gebruiker
Lid geworden
20 nov 2008
Berichten
2.492
Hallo

Ik heb in excel een bestand gemaakt dat de planning bij houdt.
Nu wil ik dmv een macro een projectnummer invullen in cel B2 van sheet "blad1" (verborgen blad)
De hele rij 2 zou gekopieërd moeten worden (hier staan formule en voorwaardelijke opmaken in) en ingevoegd in sheet"2009".
Dit lukt mij nog wel, door eerst op het rijnummer te gaan staan waar ik de regel ingevoegd wil hebben.
Wat moet ik aan de macro aanpassen zodat deze regel automatisch wordt ingevoegd op volgorde van de projectnummers?
Het bereik waar deze tussen gevoegd moet worden in momenteel rij 21 t/m 59 maar dit bereik moet elke keer groter worden als er een rij wordt ingevoegd.

Code:
Sub invoegen()

'bij foutmelding bericht tonen
    On Error GoTo invoegen_Err
    
'projectnummer en naam opgeven'
Sheets("blad1").Range("B2").Value = InputBox("projectnummer", "projectnummer")
Sheets("blad1").Range("C2").Value = InputBox("projectnaam", "projectnaam")
    'rij 2 kopiëren van blad1 en invoegen boven geselecteerde rij'
    Sheets("Blad1").Rows("2:2").Copy
    Selection.Insert Shift:=xlDown
Sheets("blad1").Range("B2").Value = ("")
Sheets("blad1").Range("C2").Value = ("")
    
   Exit Sub
     
' Bij fouten hier naartoe gaan.
invoegen_Err:

MsgBox Prompt:="Niet in een enkele cel gaan staan.  " & _
"Een complete rij selecteren en " & _
"Macro nogmaals uitvoeren."

End Sub
 
Het maakt niet uit waar je de nieuwe rij zelt, als je na invoer op nummer sorteert.

Suggestie: gebruik de methode With.... End With
 
Hoe geeft je dan bij het sorteren het bereik aan dat steeds groter wordt.
en hoe geef je aan dat je de hele rij wilt sorteren

With en End With zegt mij niks,ik weet niet zo goed hoe VBA werkt.
 
Ik heb het opgelost.:D

Dit is de macro.

Code:
Sub invoegen()

'projectnummer en naam opgeven'
Sheets("blad1").Range("B2").Value = InputBox("projectnummer", "projectnummer")
Sheets("blad1").Range("C2").Value = InputBox("projectnaam", "projectnaam")

    'rij 2 kopiëren van blad1'
    Sheets("Blad1").Rows("2:2").Copy
    'cel met opvolgend nummer zoeken en rij invoegen boven geselecteerde cel'
    Cells((Range("b19").Value), 2).Select
    ActiveCell.EntireRow.Insert Shift:=xlDown
     
End Sub

In cel B19 heb ik de volgende formule staan.

Code:
=AANTAL.ALS(B21:B65;"<"&Blad1!$B$2)+22

Deze formule kijk hoeveel projectnummers er kleiner zijn dan het opgegeven nummer en tel er 22 bij op omdat het eerste projectnummer in rij 22 staat.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan