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

Alle commando's werken, behalve Replace

Status
Niet open voor verdere reacties.

Bakkerbakgraag

Gebruiker
Lid geworden
24 okt 2015
Berichten
76
Fijne mensen,
Ik ben bezig met een blad waarin klinkers vervangen moeten worden door een punt (zie bijgevoegde code). Als het blad beveiligd wordt, werkt de macro niet meer, terwijl in dezelfde cellen andere macro's wel werken. Het lijkt wel of specifiek het commando "replace" beveiligd blijft ondanks de volgende code

Dim wSheetName As Worksheet
For Each wSheetName In Worksheets
wSheetName.Protect Password:="WACHTWOORD", UserInterFaceOnly:=True, AllowFiltering:=True
Next wSheetName

Kortweg gezegd al mijn macro's doen wat ze moeten doen, ook in de cellen a1:b3. Alleen het vervangen van de klinkers door punten werkt niet als het blad beveiligd is. De macro die ik gebruik is:

Sub vervangen()
'klinkers vervangen door punten
Range("a1:b3").Replace What:="a", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("a1:b3").Replace What:="e", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("a1:b3").Replace What:="o", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("a1:b3").Replace What:="u", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Range("a1:b3").Replace What:="i", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

End Sub

Ik hoop dat iemand mij kan helpen.
Bij voorbaat dank!

Ramon
 
Wellicht handig om twee dingen nog te doen: 1) zet bovenstaande code tussen CODE tags, en 2) post een bestandje. Of heb je graag dat we zelf eerst een typcursus gaan doen? :D
 
en/of laat ook eens een macro zien die wel werkt.....
 
Dit doet het bij prima:
Code:
Sub vervangen()
    [COLOR="#008000"]'klinkers vervangen door punten[/COLOR]
    Dim Klinkers As String
    
    Klinkers = "aeiou"
    For i = 1 To Len(Klinkers)
        Range("A1:B3").Replace What:=Mid(Klinkers, i, 1), Replacement:=".", LookAt:=xlPart, SearchOrder:=xlByRows
    Next i
End Sub

Maar ik denk dat je in je eigen code de Range("A1:B3") nog vooraf moet laten gaan door de naam van het betreffende werkblad:
Code:
Sheets("Bladnaam").Range("A1:B3")
 
Of:
Code:
Sub hsv()
Dim cl As Range
With CreateObject("VBscript.Regexp")
 For Each cl In Sheets("[COLOR=#ff0000]bladnaamhier[/COLOR]").Range("a1:b3")
       .Global = True
       .Pattern = "([aeiouAEIOU])"
     cl.Value = Trim(.Replace(cl, "."))
 Next
End With
End Sub
 
Voortbordurend op....:

Code:
Sub hsv_snb()
  With CreateObject("VBscript.Regexp")
       .Global = True
       .Pattern = "([aeiouAEIOU])"
        Range("D1:E3").Value = .Replace(Range("D1:E3").Text, ".")
  End With
End Sub

NB. Helass, gaat alleen maar op als de inhoud overal gelijk is.
 
Laatst bewerkt:
@edmoor

Dit werkt perfect edmoor.

@iedereen: Dank jullie wel voor het meedenken en jullie antwoorden! :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan