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

[Excel 2007] Macro voor invoegen rijen op meerdere tabbladen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo,

Ik ben al een tijd op zoek naar een soort van Macro of iets dergelijks dat het mogelijk maakt om tegelijkertijd op 2 aangewezen tabbladen op exact dezelfde plek een nieuwe rij toevoegt.

Stel dat ik dus 2 tabbladen heb: tabblad X en tabblad Y.
Nu wil ik iets hebben dat indien ik in tabblad X bij rij 10 een nieuwe rij invoeg dat dit automatisch ook gebeurt in tabblad Y bij rij 10. En dat deze macro dan ook werkt indien ik plotseling in tabblad X een nieuwe rij toevoeg bij rij 25 dan dit dan ook bij 25 Y gebeurt.

Is dit mogelijk?

[ Voor 13% gewijzigd door Verwijderd op 23-03-2009 19:28 ]


  • JohnD
  • Registratie: December 2001
  • Laatst online: 28-11 15:38

JohnD

Bernd

kan wel als je een range definieert zodat het aantal rijen kan tellen in deze range. Sla dit nummer op in een public var zodat je hem later kan vergelijken met het nieuwe aantal rijen in de range.

krijg je ongeveer zoiets:

Let wel op dat ik geen programmeur ben dus misschien dat er iemand nog wat toe te voegen heeft.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Public nrijen As Single


Private Sub Workbook_Open()
On Error Resume Next
ThisWorkbook.Names("blaataap").Delete
ThisWorkbook.Names.Add Name:="blaataap", RefersToR1C1:="=Blad1!R1:R300"
nrijen = Worksheets("Blad1").Range("blaataap").Rows.Count
End Sub


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim rangerijen As Single
Dim rownr As Integer
rangerijen = Worksheets("Blad1").Range("blaataap").Rows.Count
If rangerijen <> nrijen Then
  If rangerijen > nrijen Then
    verschil = rangerijen - nrijen
    MsgBox (verschil & " rij(en) ingevoegd")
    rownr = ActiveCell.Row
    nrijen = rangerijen
    Worksheets("Blad2").Select
    ActiveSheet.Rows(CStr(rownr) & ":" & CStr(rownr + verschil - 1)).Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Worksheets("Blad1").Select
  Else
    verschil = nrijen - rangerijen
    MsgBox (verschil & " rij(en) verwijderd")
    rownr = ActiveCell.Row
    nrijen = rangerijen
    Worksheets("Blad2").Select
    ActiveSheet.Rows(CStr(rownr) & ":" & CStr(rownr + verschil - 1)).Select
    Selection.Delete Shift:=xlUp
    Worksheets("Blad1").Select
  End If
End If
End Sub


edit:
"blaataap" is hier rij 1 t/m 300. Dit moet je waarschijnlijk veranderen. misschien dat je de laatste rij wel kan bepalen door te kijken waar de laatste waarde in ingevuld.

[ Voor 5% gewijzigd door JohnD op 24-03-2009 10:35 ]

Fear thy name as hell awakens
FKA SunStorms_Sletje


Verwijderd

Topicstarter
Alvast bedankt voor het begin zal het vandaag of morgen even proberen. Nader bericht volgt.

  • Lolhozer
  • Registratie: Oktober 2004
  • Nu online

Lolhozer

Cetero censeo birrum bibendum

Beide bladen selecteren en dan vervolgens in 1x de rijen op beide bladen invoegen is niet voldoende?

Waarom? Omdat het kan!!


Verwijderd

Topicstarter
Lolhozer schreef op dinsdag 24 maart 2009 @ 13:06:
Beide bladen selecteren en dan vervolgens in 1x de rijen op beide bladen invoegen is niet voldoende?
Dit is ook een manier simpel maar effectief tnx :P .
Echter wil ik ook nog de macro werkend krijgen, omdat dit gemakkelijker is voor mensen die dit bestand gaan gebruiken (denk ik).

[ Voor 8% gewijzigd door Verwijderd op 24-03-2009 13:16 ]


  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Als anderen het moeten gaan gebruiken en die anderen Lolhozer's manier niet zouden snappen, wil je dat imho niet met een macro oplossen. Hoe dan ook kan het best foutgevoelig zijn: je kunt niet 100% zeker zijn dat het altijd goed gaat.

Doe het dan andersom: verbied het mensen om zelf een rij toe te voegen en doe het helemaal via een macro (door naar een regelnummer te vragen en daaronder een rij toe te voegen). Of, als je een of ander administratief 'programma' maakt: gebruik geen Excel maar een tool dat er voor is gemaakt :)

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
Even terugkomend op de simpele manier: ' Beide bladen selecteren en dan vervolgens in 1x de rijen op beide bladen invoegen is niet voldoende? '.
Deze methode heeft gewerkt totdat ik gebruik ging maken van tabbladen waarin gegevens zijn opgemaakt als tabel. Plotseling kan ik dan niet meer op meerdere tabbladen een cel tegelijkertijd verwijderen.

Tabbladen niet opgemaakt als tabel, de simpele manier werkt:
Afbeeldingslocatie: http://i40.tinypic.com/r7n0g3.jpg

Tabbladen met opgemaakte gedeeltes als tabel, simpele manier werkt niet:
Afbeeldingslocatie: http://i43.tinypic.com/qn0k5g.jpg

Iemand een idee om dit probleem op te lossen?

[ Voor 3% gewijzigd door Verwijderd op 07-04-2009 21:20 ]

Pagina: 1