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

VBA code niet hoeven aanpassen bij verwijderen regels

Status
Niet open voor verdere reacties.

Appievee

Gebruiker
Lid geworden
15 jul 2010
Berichten
83
Beste forummers,

Ik maak gebruik van bijvoorbeeld onderstaande code om gebruikers met-een-druk-op-de-knop gegevens over te laten nemen en elders plakken.
Echter het probleem is als ik op het werkblad regels toevoeg of verwijder de verwijzingen in de VBA niet meer kloppen. Kan dat verholpen worden door de 'range' relatief te schrijven.

Code:
Sub Gegevensovernemen()
'
' Gegevensovernemen Macro
'

'
    ActiveSheet.Unprotect
    
    Range([COLOR="#FF0000"]"h103:h105"[/COLOR]).Select
    Selection.Copy
    Range([COLOR="#FF0000"]"i103"[/COLOR]).Select
    Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
        xlNone, SkipBlanks:=False, Transpose:=False
    Range([COLOR="#FF0000"]"c107:g105,c107:g108"[/COLOR]).Select
    Application.CutCopyMode = False
    Selection.ClearContents
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End Sub

Groeten, Albert
 
Zonder voorbeeld gaat dat niet lukken om een zinnig antwoord te geven.
De bereiken in de code staan vast, dus ofwel maak je die bereiken dynamisch ofwel definiëer je een naam.

Code:
Sub Gegevensovernemen()
    
    With ActiveSheet
        .Unprotect
         Range("h103:h105").Copy
          Range("i103").PasteSpecial Paste:=xlPasteValuesAndNumberFormats
           Range("c107:g105,c107:g108").ClearContents
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
End Sub
 
Bij deze een uitgekleed voorbeeld

Het gaat in dit voorbeeld om dat iemand een oordeel geeft over iets. En een maand later opnieuw.
Om de gebruikers te ontlasten wil ik het oordeel van de maand overnemen naar vorige maand (nu zijn het maar 6 waarden, maar in het grote bestand gaat het om veel meer gegevens).

De macro werkt goed, totdat je boven de tabel wat regels toevoegt zodat de tabel begint in bijvoorbeeld a5.


Let op: de Code tekst uit mijn eerste bericht matcht niet met de huidige opgave.

Gr. Albert
 

Bijlagen

Geef je bereik kolom B de naam BRON en je cel D5 de naam DOEL, dan past deze code daar precies in
en kan je rijen verwijderen en/of toevoegen boven of onder je tabel:

Code:
Sub Gegevensovernemen_proces()

' Gegevensovernemen Macro
    
    Range("BRON").Copy
    Range("DOEL").PasteSpecial Paste:=xlPasteFormulas
    Range("BRON") = "Selecteren…"
End Sub
 
Dag Cobbe,

Dit lijkt te werken.
Had ik mij dit vanaf het begin gerealiseerd, dan had mij dat een hoop tijd gescheeld:o.
Maar goed ik ga alle macro's doorworstelen, ik ben geholpen. Thx:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan