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

In een willekeurige selectie waarden vervangen

Status
Niet open voor verdere reacties.

Pander

Gebruiker
Lid geworden
14 okt 2014
Berichten
198
Beste mensen,

ik ben op zoek naar een stukje vba code die het mogelijk maakt om in een willekeurige selectie de ene waarde door de ander te laten vervangen.
Stel ik selecteer H7:L16 en wil daar, als die waarde daarin staat, bijvoorbeeld 08:30 vervangen door 09:00. Hoe doe ik dat het beste?

gr,
P
 
Bv.
Code:
Sub hsv()
Selection.Name = "bereik"
 [bereik] = [if(bereik=1/24*8.5,1/24*9,bereik)]
 Application.Names("bereik").Delete
End Sub
 
Hoi HSV,

dank voor de je reactie. Moet eerlijk zeggen dat ik niet helemaal begrijp hoe jouw oplossing kan helpen. Ik zit zelf te prutsen met zo iets als onderstaande

Code:
Sub vervangenwaarden_in_selectie()

    ActiveCell.Replace What:="9:00", Replacement:="08:30"

End Sub

maar ben er inmiddels achter dat de volgende optie voor goed werkt:

Code:
Sub vervangenwaarden_in_selectie()

    Selection.Replace What:="9:00", Replacement:="08:30"

End Sub
 
Prima oplossing Pander,

Code:
Sub vervangenwaarden_in_selectie()
  Selection.Replace "9:00", "08:30"
End Sub

Die van mij werkt wel, maar als er lege cellen in de selectie zijn plaatst het daar een nul.
Zo niet:
Code:
Sub hsv()
Selection.Name = "bereik"
 [bereik] = [if(bereik=1/24*8.5,1/24*9,if(bereik="","",bereik))]
 Application.Names("bereik").Delete
End Sub

Gewoon die van jou gebruiken. :thumb:
 
loop ik toch nog tegen een probleempje aan met deze code

Code:
Sub vervangenwaarden_in_selectie()

    Selection.Replace What:="9:00", Replacement:="08:30"
    Selection.Replace What:="9:30", Replacement:="09:00"
    Selection.Replace What:="10:00", Replacement:="09:30"
    Selection.Replace What:="10:30", Replacement:="10:00"
    Selection.Replace What:="11:00", Replacement:="10:30"
    Selection.Replace What:="11:30", Replacement:="11:00"
    Selection.Replace What:="12:00", Replacement:="11:30"
    Selection.Replace What:="12:30", Replacement:="12:00"
    Selection.Replace What:="13:00", Replacement:="12:30"
    Selection.Replace What:="13:30", Replacement:="13:00"
    Selection.Replace What:="14:00", Replacement:="13:30"
    Selection.Replace What:="14:30", Replacement:="14:00"
    Selection.Replace What:="15:00", Replacement:="14:30"
    Selection.Replace What:="15:30", Replacement:="15:00"
    Selection.Replace What:="16:00", Replacement:="15:30"
    Selection.Replace What:="16:30", Replacement:="16:00"
    Selection.Replace What:="17:00", Replacement:="16:30"
    Selection.Replace What:="17:30", Replacement:="17:00"
    Selection.Replace What:="18:00", Replacement:="17:30"
    Selection.Replace What:="18:30", Replacement:="18:00"
    Selection.Replace What:="19:00", Replacement:="18:30"
    Selection.Replace What:="19:30", Replacement:="19:00"
    Selection.Replace What:="20:00", Replacement:="19:30"

End Sub

Het tijdstip 12:00 uur wordt bij automatisch veranderd naar 23:30
en alle waarden die oorspronkelijk op 13:00 t/m 20:00 worden niet gewijzigd

Wie weet hoe dat kan?
 
Code:
Selection.Replace CDate("12:00"), CDate("11:30") 
 Selection.Replace CDate("20:00"), CDate("19:30")
 
loop ik prompt toch nog tegen een probleem aan

deze code (1 regel) werkt prima

Code:
Selection.Replace CDate("12:30"), CDate("12:00")

alle waarden met 12:30 binnen de aangegeven selectie veranderen keurig naar 12:00

gebruik ik onderstaande code, dan wordt structureel 12:30 aangepast naar 23:30 uur
en 13:00 wordt 12:00 :eek:

Code:
Sub vervangenwaarden_in_selectie()

Selection.Replace CDate("09:00"), CDate("08:30")
Selection.Replace CDate("09:30"), CDate("09:00")
Selection.Replace CDate("10:00"), CDate("09:30")
Selection.Replace CDate("10:30"), CDate("10:00")
Selection.Replace CDate("11:00"), CDate("10:30")
Selection.Replace CDate("11:30"), CDate("11:00")
Selection.Replace CDate("12:00"), CDate("11:30")
Selection.Replace CDate("12:30"), CDate("12:00")
Selection.Replace CDate("13:00"), CDate("12:30")
Selection.Replace CDate("13:30"), CDate("13:00")
Selection.Replace CDate("14:00"), CDate("13:30")
Selection.Replace CDate("14:30"), CDate("14:00")
Selection.Replace CDate("15:00"), CDate("14:30")
Selection.Replace CDate("15:30"), CDate("15:00")
Selection.Replace CDate("16:00"), CDate("15:30")
Selection.Replace CDate("16:30"), CDate("16:00")
Selection.Replace CDate("17:00"), CDate("16:30")
Selection.Replace CDate("17:30"), CDate("17:00")
Selection.Replace CDate("18:00"), CDate("17:30")
Selection.Replace CDate("18:30"), CDate("18:00")
Selection.Replace CDate("19:00"), CDate("18:30")
Selection.Replace CDate("19:30"), CDate("19:00")
Selection.Replace CDate("20:00"), CDate("19:30")

End Sub
 
Laatst bewerkt:
Heel vreemd.

De tijd is al veranderd van 12:30 naar 12:00, en dat komt onderstaande regel er nog een keer achteraan....
Code:
Selection.Replace CDate("14:00:00"), CDate("13:30:00")

....en die maakt van de 12:00 → 23:30.
Die seconden erachter plaatsen biedt ook geen soelaas.

Edit:
Dit moet juist zijn.
Code:
Selection.Replace CDate("14:00:00"), CDate("13:30:00"),xlwhole

Mag ook zo.
Code:
Selection.Replace CDate("09:00:00"), CDate("08:30:00"), 1
 
Laatst bewerkt:
Ja, nu beter getest dan de vorige keer en inderdaad: dit werkt.
Veel dank voor je hulp HSV
 
Even los van de werkende oplossing; waarom wil je dit?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan