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

Macro wijziging in beveiligde tabbladen

Status
Niet open voor verdere reacties.

wimven

Gebruiker
Lid geworden
26 jul 2009
Berichten
54
Wat ik heb gemaakt werkt perfect maar ik denk dat het een stuk korter+beter geschreven kan worden. Er staat beschreven wat de bedoeling is. Wie kan me helpen.


Code:
Sub KlantwijzigingKopieren()
'

' KlantwijzigingKopieren Macro
' wijziging in tabblad KLANTEN. De waarden uit de Formule tekst.samenvoegen in kolom R
' worden gekopieerd naar kolom A van tabblad KLANTEN en naar kolom CH van tabblad CALCULATIE die
' eerst ge-unhide moet worden. Daarna weer hide en naar uitgangspositie B1 gaan

      Application.ScreenUpdating = False
    Sheets("CALCULATIE").Activate
    ActiveSheet.Unprotect ("mijn ww")
    Columns("K:CH").EntireColumn.Hidden = False
    Sheets("KLANTEN").Activate
    Range("R1").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("A2").Select
    Sheets("CALCULATIE").Select
    Range("CH2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("K:CH").Select
    Selection.EntireColumn.Hidden = True
    Application.CutCopyMode = False
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True, AllowFormattingRows:=True, _
        AllowInsertingRows:=True, AllowDeletingRows:=True, AllowSorting:=True, _
        AllowFiltering:=True
    ActiveSheet.Protect Password:="mijn ww"
    Range("B1").Select
    Application.ScreenUpdating = True
   
End Sub
 
Laatst bewerkt door een moderator:
Code:
Sub KlantwijzigingKopieren()

Dim lRij As Long
    lRij = Sheets("KLANTEN").Range("R" & Rows.Count).End(xlUp).Row

    Application.ScreenUpdating = False
    With Sheets("CALCULATIE")
        .Unprotect ("mijn ww")
        .Range("CH2:CH" & lRij + 1).Value = Sheets("KLANTEN").Range("R1:R" & lRij).Value
        Sheets("KLANTEN").Range("A2:A" & lRij + 1).Value = .Range("CH2:CH" & lRij + 1).Value
        .Protect Password:="mijn ww"
    End With
    Application.ScreenUpdating = True

End Sub

Met vriendelijke groet,


Roncancio
 
Dit zou het moeten zijn
Code:
Sub KlantwijzigingKopieren()
With Sheets("CALCULATIE")
    .Unprotect "mijn ww"
    sq = Sheets("Klanten").Range("R1:R" & Cells(Rows.Count, 18).End(xlUp).Row).Value
    [Klanten!A2].Resize(UBound(sq)) = sq
    .Range("CH2").Resize(UBound(sq)) = sq
    .Protect Password:="mijn ww", DrawingObjects:=True, Contents:=True, _
    Scenarios:=True, AllowFormattingCells:=True, AllowFormattingRows:=True, _
    AllowInsertingRows:=True, AllowDeletingRows:=True, AllowSorting:=True, _
    AllowFiltering:=True
End With
End Sub
 
Laatst bewerkt:
Kleine aanvulling op het werk van Warme bakkertje
Je kunt de beveiliging per blad zo instellen dat het voor de gebruiker beveiligd blijft, maar voor de macro wel toegankelijk is.
Je hoeft dan niet meer iedere keer te unprotecten.
Dit gaat met
Code:
[Blad1].Protect ("ww"), UserInterfaceOnly:=True
Gebruik dit voor ieder blad wat je met een macro wilt bewerken.
Dit werkt wel pas vanaf Excel 2003 (mogelijk XP)

Mvg Leo
 
@LEO: dat heb ik nog niet geprobeerd maar ga ik zeker doen.

Verder geweldig, dit doet (met een kleine aanpassing) precies wat ik wil maar toch heb ik nog één vraag.

Het wordt met een button geactiveerd die boven in het tabblad staat; er staan 10.000 regels in. Is het mogelijk om die button "zwevend" te maken zodat deze meescrold, bijvoorbeeld in het midden van het scherm blijft staan, ongeacht in welke rij je je bevindt.
 
@LEO: dat heb ik nog niet geprobeerd maar ga ik zeker doen.

Verder geweldig, dit doet (met een kleine aanpassing) precies wat ik wil maar toch heb ik nog één vraag.

Het wordt met een button geactiveerd die boven in het tabblad staat; er staan 10.000 regels in. Is het mogelijk om die button "zwevend" te maken zodat deze meescrold, bijvoorbeeld in het midden van het scherm blijft staan, ongeacht in welke rij je je bevindt.

In deze topic heb ik een bestand bijgesloten waar een knop continu zichtbaar is.

Met vriendelijke groet,


Roncancio
 
Zweefeend

Tja, laat ik nou niet op zweefeend gezocht hebben :confused:

Dank je, ik ga het proberen in te passen met mijn gebrekkige (lees ontbrekende) kennis
 
De oplossing van Roncancio om een modelless form te gebruiken is prima en daar wil ik verder iets aan af doen.

Wel als aanvulling de manier die Excel al ingebouwd heeft.
N.l om de knop bij de koppen in de bovenste rijen te zetten en deze vervolgens vast te zetten met Menu venster> titels blokkeren.

Selecteer daarvoor de eerste cel rechts naast en onder de gewenste selectie die je blokkeren wil.
Koppen en knoppen blijven zo ook altijd in beeld.

mvg Leo
 
Laatst bewerkt:
Titelblokkering

@Leo
Dit heb ik in het verleden geprobeerd maar leidde tot een probleempje met sorteren, kopieren, plakken. Toch maar even uitzoeken dus want het is inderdaad de meest eenvoudige manier.

Bedankt allemaal.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan