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

Cellen automatisch wijzigen

Status
Niet open voor verdere reacties.

Karag68

Gebruiker
Lid geworden
25 jan 2008
Berichten
111
Ik heb een probleem waar ik niet uitkom.
Getallen in kolom A zijn horizontaal gekoppeld aan de cellen in kolom B
De vertikale volgorde kan tgv een nieuwe sortering veranderen
Als nu de tekst in een cel van kolom B (bv B6) gewijzigd wordt, moet op blad2 de bijbehorende cel (indien deze voorkomt op blad2) ook gewijzigd worden. In dit voorbeeld dus cel B5 op blad2.
Omgekeerd moet dit dus ook werken. Als ik een cel op blad2 wijzig, moet de bijbehorende cel op blad1 ook wijzigen (indien deze op blad1 voorkomt)
Ik heb een bijlage toegevoegd om eea te verduidelijken. Ik hoop dat het zo een beetje duidelijk is wat ik graag wil.
Wie kan mij hierbij helpen?
 

Bijlagen

Laatst bewerkt:
Of wel heb je het verkeerde bestand meegestuurd of je hebt het gewoon vrij uit het Chinees vertaald.:)
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns(2)) Is Nothing Then
        On Error Resume Next
        Sheets("Blad2").Columns(1).Find(Target.Offset(, -1), , _
            xlValues, xlWhole).Offset(, 1) = Target.Value
    End If
End Sub
 
Blad1 cel B1 wil je dus hebben staan: =Blad2!B2
Blad2 cel B2 wil je dus hebben staan: =Blad1!B1

Maar je wilt tegelijk er ook nog tekst is zetten.
Je kunt in 1 cel niet tegelijk een verwijzing naar een andere cel hebben en/of een tekst.

Waarom wil je op 2 verschillende tabbladen het zelfde hebben staan?
Het is verstandiger om alle veranderingen in 1 tabel te zetten en vanuit deze tabel van alles te doen.
 
popipipo:

Ik snap dat het onlogisch lijkt. Om nu uit te leggen waarom ik dit zo wil hebben kan ik nogal moeilijk uitleggen maar ik heb er een goede reden voor.
Het probleem zit hem inderdaad in het feit dat men niet met formules naar een andere cel kan verwijzen en tegelijk ook tekst in die cel kan invoeren. Ik hoop er daarom ook op dat iemand hier iets heel slims voor kan verzinnen.

Warme bakkertje:
Bedankt dat je de moeite neemt om een code te schrijven, maar ik snap het niet helemaal wat je bedacht hebt. Kun je mij uitleggen hoe dit werkt? Zo ervaren op het gebied van VBA ben ik niet.
Het werkt perfect als ik deze code zet in blad1. Als ik nu wijzig op blad1 dan veranderd inderdaad in blad 2 de waarde. Maar als ik deze code ook in blad2 zet, gaat het mis. Excel blijft dan vasthangen? Doe ik iets fout of klopt de code niet helemaal?

Alvast bedankt.
 
Laatst bewerkt:
Nu met een woordje uitleg
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns(2)) Is Nothing Then 'code reageert enkel bij een wijziging in kolom 2
        On Error Resume Next
        Sheets("Blad2").Columns(1).Find(Target.Offset(, -1), , _ 'ga op het andere blad op zoek naar het nummer van kolom A
            xlValues, xlWhole).Offset(, 1) = Target.Value 'en vervang dan de oude tekst naast het gevonden nr door de nieuw ingebrachte tekst
    End If
End Sub
 
Warme bakkertje:

Oke, nu snap ik het beter, maar hoe kan het dat excel blijft vasthangen zodra ik de code aan beide sheets hang, want uiteindelijk wik ik graag zowel op blad1 als ook op blad2 wijzigingen aanbrengen. Ik heb het idee dat hij dan in een soort loop vast gaat hangen. Heb je hier ook een oplossing voor?
 
Code voor Blad1
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns(2)) Is Nothing Then
        On Error Resume Next
        If ActiveSheet.Name <> "Blad1" Then Exit Sub
        Sheets("Blad2").Columns(1).Find(Target.Offset(, -1), , _
            xlValues, xlWhole).Offset(, 1) = Target.Value
    End If
End Sub

Code voor Blad2
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns(2)) Is Nothing Then
        On Error Resume Next
        If ActiveSheet.Name <> "Blad2" Then Exit Sub
        Sheets("Blad2").Columns(1).Find(Target.Offset(, -1), , _
            xlValues, xlWhole).Offset(, 1) = Target.Value
    End If
End Sub
 
Warme Bakkertje:

Ik ben wel erg lastig maar de laatste code werkt bij mij niet. Als ik wijzigingen maak op blad 2 dan werkt het niet. Wel op blad 1??
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Columns(2)) Is Nothing Then
        On Error Resume Next
        If ActiveSheet.Name <> "Blad2" Then Exit Sub
        Sheets("Blad1").Columns(1).Find(Target.Offset(, -1), , _
            xlValues, xlWhole).Offset(, 1) = Target.Value
    End If
End Sub
 
Warme Bakkertje:

Je bent geweldig. Het werkt perfect. Hartelijk dank.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan