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

Opgelost "zoeken en vervangen" gebruiken bij "voorwaardelijke opmaak"

Dit topic is als opgelost gemarkeerd

christianhelp

Gebruiker
Lid geworden
18 jan 2017
Berichten
32
Binnen "voorwaardelijke opmaak" heb ik regels met formules, waarvan ik de tekst "revalidatiefase" wil veranderen in "weefseltolerantie" waarbij de opmaak behouden blijft.
Buiten "voorwaardelijke opmaak" is "zoeken en vervangen" geen probleem, echter binnen "voorwaardelijke opmaak" lijkt het aanpassen van de tekst niet in een keer mogelijk en moet ik het formule voor formule doen, dat is heel veel werk (meer dan 100 formules).
Wie kan mij helpen. Chat GPT lukte het niet :)
 

Bijlagen

  • HelpMij.xlsx
    1,3 MB · Weergaven: 10
misschien moet je de voorwaardelijke opmaak eens gaan herzien.
Ik zie 8 maal de formule: =$D$15="NLPE" met de zelfde opmaak maar een verschillend bereik.
Dat kun je dus reduceren naar 1 formule
 
=$A$27:$A$28;$D$27:$D$28;$G$27:$G$28;$J$27:$J$28;$M$27:$M$28
Een bereik als dit is natuurlijk ook onzinnig dat kan ook:
=$A$27:$M$28
 
Bedankt voor je reactie en je hebt zeker gelijk m.b.t "alles behalve efficiënte formules". Ik heb echter als bijlage maar één werkblad bijgevoegd en er zijn er nog 10 meer met ook deze inefficiënte (maar wel werkende formules) . Ik zou dus super gebaat zijn als ik op een makkelijke manier de tekst kan ("zoeken en selecteren"binnen de "voorwaardelijke opmaak" veranderen, waardoor alles blijft werken mbt opmaak.
 
Als in 1 werk blad al zoveel overbodige VO formules zijn zou ik zeker overwegen om alles aan te passen.
VO doet een enorme aanslag op de performance
Bij (te) veel formules wordt de kans steeds groter dat het bestand ineens crasht.
Ik zou mijn energie steken in vernieuwde formules in plaats van te zoeken naar 'zoeken en vervangen'

Je zou de variabele die je nu wilt vervangen in een cel kunnen zetten en daarna te verwijzen. Mocht je in de toekomst weer wat willen vervangen dan is het veranderen van die ene cel voldoende.
 
Draai deze code eens en kijk of het is gewijzigd.
Code:
Sub hsv()
Dim it As FormatCondition
 For Each it In Blad1.UsedRange.FormatConditions
   On Error Resume Next
  If InStr(it.Formula1, "REVALIDATIE-FASE") Then it.Modify 2, , Replace(it.Formula1, "REVALIDATIE-FASE", "weefseltolerantie")
   On Error GoTo 0
 Next it
End Sub
 
Probeer het hier eens mee:
Code:
Sub FC()
    With ActiveSheet.Cells
        For i = 1 To .FormatConditions.Count
            Debug.Print i, .FormatConditions(i).Type, Formula1, .FormatConditions(i).Formula1
            If InStr(.FormatConditions(i).Formula1, "REVALIDATIE-FASE") > 0 Then
                .FormatConditions(i).Modify xlCellValue, xlEqual, Replace(.FormatConditions(i).Formula1, "REVALIDATIE-FASE", "weefseltolerantie")
            End If
        Next
    End With
End Sub
Oeps, had eerst even moeten refreshen dus.

Maar na het uitvoeren van Sub hsv() geeft ActiveSheet.Cells.FormatConditions.Count een foutmelding: Fout 1004 etc.
Doe ik iets fout?
 
Laatst bewerkt:
Als in 1 werk blad al zoveel overbodige VO formules zijn zou ik zeker overwegen om alles aan te passen.
VO doet een enorme aanslag op de performance
Bij (te) veel formules wordt de kans steeds groter dat het bestand ineens crasht.
Ik zou mijn energie steken in vernieuwde formules in plaats van te zoeken naar 'zoeken en vervangen'

Je zou de variabele die je nu wilt vervangen in een cel kunnen zetten en daarna te verwijzen. Mocht je in de toekomst weer wat willen vervangen dan is het veranderen van die ene cel voldoende.
ik hoop op een goede macro waarmee ik het in een keer kan vervangen. Wel bedankt voor het meedenken !👍
 
Draai deze code eens en kijk of het is gewijzigd.
Code:
Sub hsv()
Dim it As FormatCondition
 For Each it In Blad1.UsedRange.FormatConditions
   On Error Resume Next
  If InStr(it.Formula1, "REVALIDATIE-FASE") Then it.Modify 2, , Replace(it.Formula1, "REVALIDATIE-FASE", "weefseltolerantie")
   On Error GoTo 0
 Next it
End Sub
helaas lukte deze niet. De "REVALIDATIEFASE" werd niet vervangen door "WEEFSELTOLERANTIE". Wel bedankt voor het meedenken!
 
Probeer het hier eens mee:
Code:
Sub FC()
    With ActiveSheet.Cells
        For i = 1 To .FormatConditions.Count
            Debug.Print i, .FormatConditions(i).Type, Formula1, .FormatConditions(i).Formula1
            If InStr(.FormatConditions(i).Formula1, "REVALIDATIE-FASE") > 0 Then
                .FormatConditions(i).Modify xlCellValue, xlEqual, Replace(.FormatConditions(i).Formula1, "REVALIDATIE-FASE", "weefseltolerantie")
            End If
        Next
    End With
End Sub
Oeps, had eerst even moeten refreshen dus.

Maar na het uitvoeren van Sub hsv() geeft ActiveSheet.Cells.FormatConditions.Count een foutmelding: Fout 1004 etc.
Doe ik iets fout?
lijkt heel dicht in de buurt te komen, echter nog niet helemaal. In de voorwaardelijke opmaak, blijft de keuze "REVALIDATIEFASE" bestaan. Het lijkt of dit een conflict geeft met de voorwaardelijke opmaak van "WEEFSELTOLERANTIE" (zie evt bijlage) (als je er nog zin/tijd voor zou hebben. In ieder geval bedankt voor het meedenken
 

Bijlagen

  • HelpMij.xlsm
    1,3 MB · Weergaven: 3
Zo zouden ze verdwenen moeten zijn.
Code:
Sub hsv()
 With ActiveSheet.UsedRange
  For i = .FormatConditions.Count To 1 Step -1
    If InStr(.FormatConditions(i).Formula1, "REVALIDATIE-FASE") Then
      .FormatConditions(i).Modify 2, , Replace(.FormatConditions(i).Formula1, "REVALIDATIE-FASE", "weefseltolerantie")
    End If
  Next
 End With
End Sub
 
Zo zouden ze verdwenen moeten zijn.
Code:
Sub hsv()
 With ActiveSheet.UsedRange
  For i = .FormatConditions.Count To 1 Step -1
    If InStr(.FormatConditions(i).Formula1, "REVALIDATIE-FASE") Then
      .FormatConditions(i).Modify 2, , Replace(.FormatConditions(i).Formula1, "REVALIDATIE-FASE", "weefseltolerantie")
    End If
  Next
 End With
End Sub
En deze werkt!! top, super bedankt. Dit heeft me uren/ dagen werk bespaard. Heel erg bedankt nogmaals, super blij!!
 
Als je mijn macro een paar keer achter elkaar draait is de REVALIDATIE-FASE ook vervangen, maar de oplossing van HSV werkt wel veel beter! We hoeven voorlopig dus niet bang te zijn voor de AI van ChatGPT.
 
VW-opmaak verwijderen zal wel net zoiets zijn als rijen verwijderen; van onder naar boven.
Nu het werkt en je niet van steeds dezelfde lange woorden schrijven houdt.
Code:
Sub hsv()
RF = "REVALIDATIE-FASE"
 With ActiveSheet.UsedRange.FormatConditions
  For i = .Count To 1 Step -1
   If InStr(.Item(i).Formula1, RF) Then .Item(i).Modify 2, , Replace(.Item(i).Formula1, RF, "weefseltolerantie")
  Next i
 End With
End Sub
 
Terug
Bovenaan Onderaan