Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

Excel Macro voor rij invoegen

Pagina: 1
Acties:

Vraag


Verwijderd

Topicstarter
Goedemiddag!

Ik stoei al even met dit probleem en krijg het helaas zelf niet voor elkaar..

Software: Excel 2016


Mijn vraag; Is het mogelijk om een macro te schrijven/opnemen die een rij invoegd, en deze rij wordt altijd boven een andere rij ingevoegd.

Dus als ik de betreffende rij invoeg mbv de macro, voegt hij hem bijvoorbeeld in boven rij 23

Maar als ik de macro nog een keer zijn gang laat gaan voegt hij hem in boven 24. Dit omdat rij 23 eentje naar onder in geschoven.


Van alles kunnen vinden maar niet specifiek dit.....


Heb wel deze code (ik weet dat het een rommeltje is heb hem ook opgenomen en niet zelf geschreven ben daar nog niet aan toe)

De macro:

Sub Iwan()
'
' Iwan Macro
'

'
ActiveSheet.Unprotect
Rows("9:10").Select
Selection.Copy
Rows("9:9").Select
ActiveWindow.SmallScroll Down:=-6
Selection.Insert Shift:=xlDown
Range("B9").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Nee"
Range("B10").Select
ActiveCell.FormulaR1C1 = "Nee"
Range("C9").Select
Selection.ClearContents
Range("C10").Select
Selection.ClearContents
Range("C9:N10").Select
Range("C10").Activate
Selection.ClearContents
Range("Q10").Select
Selection.ClearContents
Range("Q9").Select
Selection.ClearContents
Range("S10").Select
Selection.ClearContents
Range("S9").Select
Selection.ClearContents
Range("T9").Select
Selection.ClearContents
Range("T10").Select
Selection.ClearContents
Range("V10").Select
Selection.ClearContents
Range("V9").Select
Selection.ClearContents
Range("B9:B10").Select
Selection.Copy
Range("C9:C10").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Range("B9").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
True, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True
End Sub

Hij deed precies wat ik wilde! Alleen nu heb ik de vraag gekregen om er voor te zorgen dat de rijen ingevoegd worden boven de onderste rij (zijn alle sommen van de uitkomsten van de rijen)


Als er nog onduidelijkheid is mijn excuses!


Alvast bedankt!

Alle reacties


  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Waarom een marco schrijven wat je met 1 simpele muisknop kan doen?

Ey!! Macarena \o/


Verwijderd

Topicstarter
Hele goede vraag!

Maar, omdat er vrij onervaren excel gebruikers (60+ ers) mee moeten werken wil ik alles beveiligen zodat ze het model niet verpesten.


Dus het antwoord: Zo eenvoudig mogelijk maken voor de gebruikers.

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 12:01
Wat wil je nu doen en wat doet de macro nu? Dat stukje snap ik niet.

Ik vermoed overigens dat je het moet gaan zoeken in de hoek van absolute en relatieve verwijzingen.

Hier zou een handtekening kunnen staan.


  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

Of beter uitleggen ;)

Rij selecteren door op het rijnummer te klikken
Rechtermuisknop -> Invoegen

Dat is wat je wil, je marco doet iets anders.

Maar wat je zoekt voor VBA is
Visual Basic:
1
Row(rijnummer).Insert

Ey!! Macarena \o/


  • Eppo ©
  • Registratie: Juni 2004
  • Niet online
Ik zou zoiets doen:

Visual Basic:
1
2
3
4
5
6
Set sht = ActiveSheet

with sht
    LaatsteRij = .Cells(Rows.Count, ColumnNaam).End(xlUp).Row 'ColumnNaam is bijv "A"
    .Rows(LaatsteRij).Insert shift:=xlShiftDown
end with


Eerste stukje is de laatste rij bepalen, de tweede voegt een rij toe eentje boven de laatste rij.

[ Voor 4% gewijzigd door Eppo © op 30-10-2019 11:57 . Reden: Aangepast op aangeven van dix-neuf ]


  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

count.rows wel eens de mist mee ingegaan. Soms "lijken" velden leeg. Staat er een spatie in. Of een ascii 160, wat je ook niet ziet. Dan kom je toch op een andere plek uit dan waar je had gehoopt ;)

Ey!! Macarena \o/


  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Om boven een bepaalde rij (dat kan ook de laatste rij zijn) een rij in te voegen:
Selecteer een willekeurige cel in de rij waarboven je een rij wil invoegen en voer onderstaande macro uit:
code:
1
2
3
Sub Rij_invoegen()
Rows(ActiveCell.Row).Insert
End Sub

Om boven de laatste (niet verborgen) rij een rij in te voegen zonder in die laatste rij een cel te moeten selecteren, kun je gebruiken:
code:
1
2
3
Sub Rij_invoegen_boven_laatste()
Rows(Cells(Rows.Count - 1, 1).End(xlUp).Row).Insert
End Sub
Hierbij is het getal vóór het haakje bepalend voor de kolom die je wil hanteren om de laatste rij met gegevens te bepalen. In dit voorbeeld is dat kolom 1 (of "A", wat je ook mag gebruiken), maar je kunt daarvoor ook een andere kolom nemen.

NB: De macro van eppo hierboven voegt niet een rij toe boven de laatste, maar boven de op 1 na laatste rij.

[ Voor 3% gewijzigd door dix-neuf op 30-10-2019 02:52 ]


  • Eppo ©
  • Registratie: Juni 2004
  • Niet online
@dix-neuf Je hebt helemaal gelijk, had de -1 niet moeten doen. Heb het nu aangepast voor als iemand het later wilt gebruiken.

@RaZ Klopt, maar ken geen mooie manier om hier gemakkelijk mee om te gaan.
Pagina: 1