• 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.

Oplossing voor extra regels in te voeren in tabel

Status
Niet open voor verdere reacties.

jv345

Gebruiker
Lid geworden
25 mrt 2007
Berichten
167
Hoi,

Ik heb reeds eerder vragen gesteld EN antwoorden gekregen op bovengenoemde vraag.
De aangereikte oplossing werken prima mits er sprake is van 1 tabel.
Via via heb ik een andere oplossing gekregen die werkt indien er meerdere tabellen in het werkblad voorkomen.
Hiermee kan een soort standaard gemaakt worden voor de separate tabellen.
Heeft de gebruiker in 1 tabel te weinig regels dan kan hij/zij dit laten aanvullen.
Het werkt met een knop of teken (bijv pijltje omlaag) waar je dan de macro aankoppeld.
De macro zoekt naar een bepaalde kleur. In mijn voorbeeld is dit heel licht geel.
Heb je zelf een andere kleur neem dan even met de macro-opnemer een cel op, verander de kleur en sluit de macro. Nu weet je de code.
In mijn voorbeeld zitten 7 tabellen vandaar de laatste 7 regels.
Staat de cursor buiten een tabel dan wordt de gebruiker hiervan op de hoogte gesteld door de messagebox.

Doe er je voordeel mee.:thumb:
Ik weet niet of ik nu de vraag direct moet sluiten maar dat hoor ik wel.:D

Code:
Sub voegregeltoe()

rij = ActiveCell.Row()
If Cells(rij, 2).Interior.Color <> 10092543 Then
    MsgBox ("Ik weet niet welke tabel u wilt u vergroten ?")
Else
    For x = 1 To 10000
       If Cells(rij + x, 2).Interior.Color <> 10092543 Then
            lastrij = rij + x - 1
            x = 10001  'eruit
       End If
    Next
    Rows(lastrij).Copy
    Rows(lastrij).Insert Shift:=xlDown
    Cells(lastrij + 1, 3).ClearContents
    Cells(lastrij + 1, 5).ClearContents
    Cells(lastrij + 1, 10).ClearContents
    Cells(lastrij + 1, 11).ClearContents
    Cells(lastrij + 1, 12).ClearContents
    Cells(lastrij + 1, 13).ClearContents
    Cells(lastrij + 1, 14).ClearContents
End If
End Sub
 
Laatst bewerkt door een moderator:
Jv345, Grote klasse dat je bezig bent met het 'doorgronden en gebruiken' van VBA! Maar toch ff een vraag over je geplaatste code... Werkt deze??? :eek::shocked:
Zomaar een paar dingen om 'ns over na te denken
Via het 1e if-statement controleer je de kleur van de cel
MsgBox ("Ik weet niet welke tabel u wilt u vergroten ?")
...de kleur is dus ongelijk aan licht geel en dan ga je dat via een msgbox melden. Da's op zich ok. Maar je hebt geen verdere afhandeling! Iets van 'Exit Sub' zou wellicht op z'n plaats zijn?
x = 10001 'eruit
....is een methode. Het gebruik van 'Exit For' is mooier.
Rows(lastrij).Insert Shift:=xlDown
...ik gok dat je je 'copie' onder het orgineel wilt hebben. Zo ja, dan moet je er Rows(lastrij + 1).Insert Shift:=xlDown van maken.
Dan het laatste stukje van het 'clearen' kan natuurlijk korter met de SpecialCells methode (zie ook mijn laatste oplossing in je vorige topic).

Let wel... Deze reactie moet je niet zien als een aanval, maar als helpende hand in het mooie land van VBA...:D:thumb:

Groet, Leo

P.s. Zet je code ff tussen 'code tags'. Dat doe je dmv die knop met het #
 
Laatst bewerkt:
Ginger,

Bedankt voor je opmerkingen.
Zo zie je..ik kan nog een hoop leren.
Nogmaals bedankt en ik zie het zeer zeker niet als kritiek:D.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan