Bij het opnieuw opstarten van excel doet de macro het niet meer??

Status
Niet open voor verdere reacties.

eriksommeren

Gebruiker
Lid geworden
6 okt 2011
Berichten
10
Hallo,

ik heb zelf een macro opgenomen om een onderdeel tekst in een cel te vervangen, deze tekst komt over 100 tabbladen voor op exact dezelfde locatie.

Hij doet het prima, totdat ik excel afsluit en opnieuw opstart, dan werkt hij niet meer??

In de cellen staat bv dit:
Site number: 2510
Provider: SGD
Name: John Raak

Wat ik moet overhouden is dit:
2510
SGD
John Raak

Ik heb daar deze macro voor opgenomen.

Code:
Sub FilterenInformatie()
    Cells.Replace What:="Site number:", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:="Provider:", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
    Cells.Replace What:="Name:", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

Kan iemand mij helpen om dit op te lossen?

Heel erg bedankt.

Gr Erik
 
Laatst bewerkt door een moderator:
Kun je uitleggen wat je bedoeld met: "hij doet het niet meer?".

Deze sub vervangt je text op 1 sheet? Wordt er geen text meer vervangen na het herladen? Krijg je een error?
 
Op het moment dat ik de code schrijf en de macro laat uitvoeren werkt hij op alle sheets. Ook als ik nieuwe sheets toevoeg die nog gefilterd moeten worden.

Maar wanneer ik excel heb afgesloten en later weer open, en het bestand weer opstart werkt de macro niet meer, geen foutmeldingen, geen error.

Hij voert de macro wel uit, aangezien er onder in de status balk komt te staan "verwerken", maar als ik dan controleer is er niets vervangen.

Ik hoop dat het zo duidelijk is.
Gr
 
De macro zoals nu beschreven werkt slechts op 1 sheet. Om het op alle sheets te laten werken zul je een "for each" loop toe moeten voegen en door elke sheet apart gaan. Dat is een beperking van de code.

Code:
For Each ws In Worksheets

ws.Cells.Replace What:="Site number:", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False

ws.Cells.Replace What:="Provider:", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False

ws.Cells.Replace What:="Name:", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
ReplaceFormat:=False

next ws
 
Je kan er zelfs een loop aan toevoegen zodat je de Replace maar 1 keer moet schrijven.
Code:
For Each ws In Worksheets
    For i = 1 To 3
        ws.Cells.Replace What:=Choose(i, "Site number:", "Provider:", "Name:"), Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByColumns, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
    Next
Next ws
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan