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

Replace/Substitute in Excel

Status
Niet open voor verdere reacties.

Hans Gorter

Gebruiker
Lid geworden
27 okt 2008
Berichten
97
Ik ben voor mijn school een plannningsprogramma aan het maken. Als een niewe week wordt gepland, moet de oude week verhuizen naar een soort archief.

Stel A2 bevat de waarde 10

Als A2 wordt gewijzigd in 20 moet de oude waarde 10 in B2 worden geplaatst.

Hoe doe je dat?

Vast dank voor de moeite!

Groeten,
Hans
 
Ik ben voor mijn school een plannningsprogramma aan het maken. Als een niewe week wordt gepland, moet de oude week verhuizen naar een soort archief.

Stel A2 bevat de waarde 10

Als A2 wordt gewijzigd in 20 moet de oude waarde 10 in B2 worden geplaatst.

Hoe doe je dat?

Vast dank voor de moeite!

Groeten,
Hans

Eerst tik je in B2 10 en daarna in A2 20.

Wim
 
Ga op kolom A staan en voeg een nieuwe kolom in
Kolom A wordt kolom B en kolom B wordt kolom C enz.
 
Ga op kolom A staan en voeg een nieuwe kolom in
Kolom A wordt kolom B en kolom B wordt kolom C enz.


Ook weer een hele oplossing. Maar stel nou dat ik rijen namen heb, waarachter per naam de oude en nieuwe week moet worden bijgehouden. Dan is jouw oplossing lijkt mij niet echt bruikbaar.

Maar natuurlijk wel superaardig dat je me hebt willen helpen, waarvoor dank!
 
Ik begrijp je probleem nu even niet.
Bij mij oplossing heb je cel A2 toch verplaatst naar B2 en kun je nu toch in Cel A2 een nieuwe waarde invullen.

Post ander even een voorbeeldje met het hoe en wat.
 
Ik begrijp je probleem nu even niet.
Bij mij oplossing heb je cel A2 toch verplaatst naar B2 en kun je nu toch in Cel A2 een nieuwe waarde invullen.

Post ander even een voorbeeldje met het hoe en wat.

Ik heb me rotgelachen om jullie antwoorden, klaarblijkelijk heb ik mijn vraag niet juist geformuleerd. Sorry daarvoor.

Onze planner moet per leerling een bespreking plannen in een week. En daarbij moet hij vooral niet vergeten dat wat er stond, verplaatst moet worden naar het archief. Je snapt dat het verplaatsen naar het archief snel vergeten wordt.

Dus als de planner cel A2 wijzigt, moet automatisch wat er stond in A2 verplaatst worden naar een andere cel b.v. B2.

Ik ben benieuwd of ik nu in ieder geval duidelijk genoeg ben en nogmaals dank voor je reactie.

Groeten,
Hans
 
Tja, is natuurlijk op zich een geniale oplossing. Maar ik zou dat tikken liever overlaten aan een programma want ik ben er niet altijd bij als zoiets gebeurt.

Toch wel dank!
:pGrapje.

Ik begrijp uit de rest van je post dat er wel iets anders aan de hand is.
Je heb meerdere rijen met namen en daar achter de nieuwe week en de oude week.
Dat kan per persoon verschillen naar ik aan neem.

Ik denk dat je met een VBAtje dit wel kan oplossen
Code:
Private Sub Worksheet_Change (Byval Target as Range)
    Rij = Target.Row
    Range("B" & Rij) = Target.Value

Niet getest, even snel ingetikt.

Succes
Wim
 
:pGrapje.

Ik begrijp uit de rest van je post dat er wel iets anders aan de hand is.
Je heb meerdere rijen met namen en daar achter de nieuwe week en de oude week.
Dat kan per persoon verschillen naar ik aan neem.

Ik denk dat je met een VBAtje dit wel kan oplossen
Code:
Private Sub Worksheet_Change (Byval Target as Range)
    Rij = Target.Row
    Range("B" & Rij) = Target.Value

Niet getest, even snel ingetikt.

Succes
Wim

Super Wim dat je me wilt helpen. Ik ben een oude Clipper-programmeur en begrijp dus op zich wel wat de code inhoudt, maar zou niet weten hoe je dit wegschrijft. Ik vermoed dat je de code moet onderbrengen in een functie met een bepaalde naam en dan die functie aanroepen zodra de waarde in de broncel (A2) wijzigt?

Nogmaals dank en hoe prektischer hoe sneller je van me af bent, hoeft echt niet meteen!

Groeten,
Hans
 
Super Wim dat je me wilt helpen. Ik ben een oude Clipper-programmeur en begrijp dus op zich wel wat de code inhoudt, maar zou niet weten hoe je dit wegschrijft. Ik vermoed dat je de code moet onderbrengen in een functie met een bepaalde naam en dan die functie aanroepen zodra de waarde in de broncel (A2) wijzigt?

Nogmaals dank en hoe prektischer hoe sneller je van me af bent, hoeft echt niet meteen!

Groeten,
Hans

Voor de volligheid.
Je moet wel naar VBA gaan (Visual Basic).
Daar kan je dan bij het blad waar de wijzigingen plaatsvinden deze sub opnemen.
Iedere keer dat er iets veranderd aan het bla wordt deze Sub uitgevoerd.
ps. Volledig is deze code als hier onder
Code:
Private Sub Worksheet_Change (Byval Target as Range)
    Rij = Target.Row
    Range("B" & Rij) = Target.Value
End Sub

Maar ik heb een beetje mij twijfel of dit wel de juiste oplossing is.

Je gaf aan dat iedere leerling op het moment dat hij/zij een wijziging gaat aanbrengen je een backup wilt maken van de vorige ingave.
Wellicht wil je dat op een ander blad hebben.
Misschien kan je daarom even een voorbeeltje sturen (liefst .rar) dan kan ik het volledig maken.

Wim
 
Voor de volligheid.
Je moet wel naar VBA gaan (Visual Basic).
Daar kan je dan bij het blad waar de wijzigingen plaatsvinden deze sub opnemen.
Iedere keer dat er iets veranderd aan het bla wordt deze Sub uitgevoerd.
ps. Volledig is deze code als hier onder
Code:
Private Sub Worksheet_Change (Byval Target as Range)
    Rij = Target.Row
    Range("B" & Rij) = Target.Value
End Sub

Maar ik heb een beetje mij twijfel of dit wel de juiste oplossing is.

Je gaf aan dat iedere leerling op het moment dat hij/zij een wijziging gaat aanbrengen je een backup wilt maken van de vorige ingave.
Wellicht wil je dat op een ander blad hebben.
Misschien kan je daarom even een voorbeeltje sturen (liefst .rar) dan kan ik het volledig maken.

Wim

Ik zal je niet zoenen, maar vind je echt geweldig.

Ik wil het inderdaad op een ander blad hebben maar daar kom ik wil uit (Anderblad!C2).

Zou je bijgaand voorbeeldje (ontdaan van alles dat er niet toedoet) zo kunnen maken dat de B-kolom wordt geupdated als er in de aanverwante C-kolom iets wijzigt? Ik denk dat ik de module waarin je de functie plaatst wel kan vinden.

Met dank is enorm!

Hans
 

Bijlagen

Helaas, ik kan het niet voor je oplossen

Hans,

Ik moet even bekennen dat ik dacht dat mij routine zou werken.
Maar al mijn probeersel leiden niet tot het gewenst effect.
De Worksheet_Change reageerd pas als er werkelijk een wijziging is aangebracht.
Dat betekend dus, dat alleen de nieuwe waarde wordt gecopieerd en niet de oude.

Daar kan ik helaas geen oplossing voor vinden.
Misschien is er een ander forum lid hier wel toe in staat.

Excusses

Wim
 
Het verbaast mij eerlijk gezegd dat ik nog geen oplossing heb gehoord. Is het probleem echt onoplosbaar of is er nog iemand met een idee??!!! Graag hoor ik die!

Vast dank,
Hans
 
Hans,

Deze macro moet je plaatsen in de programmacode van je werkblad. Het is een aanzet om te komen tot wat jij wil.

Iedere keer dat je een andere cel selecteert op je werkblad wordt de inhoud van de cel die je gekozen hebt opgeslagen in de variabele "Inhoud". Om zichtbaar te maken dat-ie dat doet schrijft de macro die waarde daarna weg naar cel D1.

Je zou een tweede macro nodig hebben die checkt of de cel gewijzigd is en daarna de oude waarde van "Inhoud" naar de juiste plek schrijft.

Code:
Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Inhoud As String

Inhoud = ActiveCell.Value
Range(["D1"]).Value = Inhoud
End Sub

Misschien kun je hier wat mee.
 
Bedoel je het zo?

Code:
Dim vWaarde As Variant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then vWaarde = ActiveCell.Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Range("B" & Target.Row).Value = vWaarde
End Sub

Bovenstaande code geeft de waarde van de huidige cel aan vWaarde als de huidige cel in de C-kolom staat.
Zodra de C-kolom wordt gewijzigt, verandert de cel in de B-kolom op dezelfde rij in de waarde van de C-kolom.

Dus
B3 = leeg
C3 = 12

C3 wordt 41

Resultaat:
B3 = 12
C3 = 41

Met vriendelijke groet,


Roncancio
 
Beste Gert,

Dank je voor je hulp, het lijkt me er goed uit te zien. Ga het proberen!

Hans


Hans,

Deze macro moet je plaatsen in de programmacode van je werkblad. Het is een aanzet om te komen tot wat jij wil.

Iedere keer dat je een andere cel selecteert op je werkblad wordt de inhoud van de cel die je gekozen hebt opgeslagen in de variabele "Inhoud". Om zichtbaar te maken dat-ie dat doet schrijft de macro die waarde daarna weg naar cel D1.

Je zou een tweede macro nodig hebben die checkt of de cel gewijzigd is en daarna de oude waarde van "Inhoud" naar de juiste plek schrijft.

Code:
Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Inhoud As String

Inhoud = ActiveCell.Value
Range(["D1"]).Value = Inhoud
End Sub

Misschien kun je hier wat mee.
 
Is helemaal wat ik bedoel, super van je!

Heb de code op het blad geplaatst, er gebeurt wel iets maar helaas loopt het vast.

?????????

Als je een idee hebt, graag!

Niettemin enorme dank,
Hans


Bedoel je het zo?

Code:
Dim vWaarde As Variant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then vWaarde = ActiveCell.Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Range("B" & Target.Row).Value = vWaarde
End Sub

Bovenstaande code geeft de waarde van de huidige cel aan vWaarde als de huidige cel in de C-kolom staat.
Zodra de C-kolom wordt gewijzigt, verandert de cel in de B-kolom op dezelfde rij in de waarde van de C-kolom.

Dus
B3 = leeg
C3 = 12

C3 wordt 41

Resultaat:
B3 = 12
C3 = 41

Met vriendelijke groet,


Roncancio
 
Zie ook mijn eerste reactie.

De cellen wisselen van waarde zoals bedoelt, maar daarna komt het programma in een loop die alleen met Ctrl-Break kunt onderbreken.
Het invoeren van de nieuwe week heeft natuurlijk ook gevolgen, zo moet de naam van de leerling worden ingepland etc. Zonder jouw code werkt dat prima, nu ook nog wel maar ik krijg nooit meer de focus terug.

Hoop dat ik je voldoende info heb gegeven.


Bedoel je het zo?

Code:
Dim vWaarde As Variant
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 3 Then vWaarde = ActiveCell.Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
Range("B" & Target.Row).Value = vWaarde
End Sub

Bovenstaande code geeft de waarde van de huidige cel aan vWaarde als de huidige cel in de C-kolom staat.
Zodra de C-kolom wordt gewijzigt, verandert de cel in de B-kolom op dezelfde rij in de waarde van de C-kolom.

Dus
B3 = leeg
C3 = 12

C3 wordt 41

Resultaat:
B3 = 12
C3 = 41

Met vriendelijke groet,


Roncancio
 
Hans Gorter, ff via een héél andere invalshoek... Maar zet dit blokje 'ns in de Sheetmodule van de worksheet waar je code moet werken.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Target.Insert Shift:=xlToRight
End Sub
Door te dubbelklikken op de cel die je wilt gaan vullen, verschuiven ALLE naastgelegen cellen. Zo kan je een hele tijd historie opbouwen.

Groet, Leo
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan