• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

hoe voeg ik in een tabel regels toe op dynamische plek

Status
Niet open voor verdere reacties.

Jolte

Gebruiker
Lid geworden
10 jul 2009
Berichten
22
Ik heb in excel een tabel (tabel 2) gemaakt welke gegevens haalt uit een andere tabel (tabel 2).
Het is in sommige situaties wenselijk dat ik in tabel 2 extra regels toe wil voegen om gegevens uit tabel 1 te splitsen.

Hiervoor heb ik onderstaande macro aangemaakt.

In onderstaande macro wordt in regel 6 een nieuwe regel toegevoegd en niet op de plek waar ik de cel geselecteerd heb.
Hoe pas ik de macro aan zodat er op de plek waar de cel geselecteerd is regels worden toegevoegd en dat de overige taken op die plek worden uitgevoerd?

Code:
ActiveCell.Select
    Selection.ListObject.ListRows.Add (6)
    Selection.ListObject.ListRows.Add (6)
    Selection.ListObject.ListRows.Add (6)
    ActiveCell.Rows("1:4").EntireRow.Select
    With Selection.Font
        .ThemeColor = xlThemeColorAccent1
        .TintAndShade = -0.249977111117893
    End With
    ActiveCell.Offset(0, 2).Range("Tabel2[[#Headers],[rekening]]").Select
    ActiveCell.FormulaR1C1 = "1250"
    ActiveCell.Offset(3, 0).Range("Tabel2[[#Headers],[rekening]]").Select
    ActiveCell.FormulaR1C1 = "1250"
    ActiveCell.Offset(0, 2).Range("Tabel2[[#Headers],[rekening]]").Select
    ActiveCell.FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)*-1"
    ActiveCell.Offset(-2, 0).Range("A1:A2").Select
    With Selection.Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent4
        .Color = 10092543
        .TintAndShade = 0
        .PatternTintAndShade = 0
    End With
    Selection.ClearContents
    ActiveCell.Offset(0, -2).Range("Tabel2[[#Headers],[rekening]]").Select
 
aanzetje.
Code:
Selection.ListObject.ListRows.Add (Selection.Row)
 
Deze zal niet helemaal zuiver zijn omdat je zo niet naar een tabelrij verwijst
 
@AD1957 bedankt voor het aanzet. Het toevoegen van een regel werkt op deze wijze. Alleen komt de regel nu een regel te hoog en zou dus een regel lager moeten komen
 
Probeer dit eens.
Code:
Selection.ListObject.ListRows.Add (Selection.Row+1)
 
@ JEC,
Was me niet helemaal duidelijk, of de oplossing in #6 nu goed is weet ik eigenlijk niet zeker.
Wat is anders de juiste oplossing.
 
Laatst bewerkt:
Code:
Selection.ListObject.ListRows.Add (Selection.Row+0)

doet redelijk wat ik wil
 
Dat lijkt me sterk, dat is hetzelfde als de eerste oplossing van Albert.
Zo maakt het niet uit op welke regel de tabel begint.

Code:
Sub jec()
 With Sheets(1).ListObjects(1)
   .ListRows.Add ActiveCell.Row - .HeaderRowRange.Row
 End With
End Sub
 
Code:
MsgBox Selection.Row & " is hetzelfde als  " & Selection.Row + 0
:D
 
Het lijkt alsof je gelijk 3 regels wilt toevoegen. Dat doe je dan zo

Code:
Sub jec()
 With Sheets(1).ListObjects(1)
   .ListRows.Add(ActiveCell.Row - .HeaderRowRange.Row).Range.Resize(2).Insert
 End With
End Sub
 
Laatst bewerkt:
Eentje teveel, voor 3 rijen boven de actieve cel.:d:d
Code:
Sub jec()
 With Sheets(1).ListObjects(1)
   .ListRows.Add(ActiveCell.Row - .HeaderRowRange.Row).Range.Resize([COLOR="#FF0000"]2[/COLOR]).Insert
 End With
End Sub



3 regels onder de actieve cel
Code:
Sub jec()
 With Sheets(1).ListObjects(1)
   .ListRows.Add(ActiveCell.Row - .HeaderRowRange.Row+1).Range.Resize([COLOR="#FF0000"]2[/COLOR]).Insert
 End With
End Sub
En weer heb ik wat geleerd.
 
Laatst bewerkt:
dat (+0) zelfde zou zijn als () leek mij ook. Maar resultaat leek wel anders te zijn.

@JEC, jou code werkt wel, maar de regels worden in de andere tabel toegevoegd en niet in de tabel waar ik een cel geselecteerd heb

maar dat zal te maken hebben met de naam van de tabel die ik gewijzigd heb naar "Tabel_DB", hoe pas ik dat aan?
 
Laatst bewerkt:
Mag ik ook antwoorden?
Code:
 With Sheets(1).ListObjects("Tabel_DB")
 
Ik had het ondertussen op onderstaande wijze opgelost

Code:
    With Sheets(2).ListObjects(1)
        .ListRows.Add(ActiveCell.Row + 1 - .HeaderRowRange.Row).Range.Resize(2).Insert
    End With
 
Met een voorbeeldbestandje was het duidelijker geweest.
Succes met de rest van de code.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan