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

automatische update bij wijzigingen een waarde in een ander bestand

Status
Niet open voor verdere reacties.

elodie

Gebruiker
Lid geworden
18 mei 2010
Berichten
48
Heeft iemand toevallig een oplossing voor het volgende probleem?

Dit is wat er nu staat:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If (Target.Column = 4 Or Target.Column = 5) And Len(Target) = 1 And Target.Value < 5 And Target.Value >= 1 Then
    Target.Value = Year(Now()) & "-" & Target

ElseIf Target.Column = 6 And Range("A" & Target.Row) <> "" Then
    Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\centraal systeem\database materieel\nieuwe codes materieell.xls"
    With ActiveWorkbook
        .Sheets("Blad1").Columns(1).Find(Target.Offset(0, -5).Value, , xlValues, xlWhole).Offset(0, 16).Value = Target.Value
        .Close True
    End With

End If
end sub


maar dit zorgt er niet voor dat wanneer er een verandering komt in kolom "D" of "E" en dit een verandering in kolom F veroorzaakt, dat dit automatisch ook wordt gewijzigd in het doelbestand:C:\Documents and Settings\evanaken\Desktop\systeem\centraal systeem\database materieel\nieuwe codes materieell.xls

De waarden van kolom D en E worden elk met een macro uit 2 verschillende bestanden gekopiërd, deze macros staan in de editor van de 2 verschillende bestanden.

Kolom F is een vergelijking tussen D en E met als formule: "=ALS(D2>E2;D2;E2)" .
 
Elodie, het herberekenen van een formule is geen trigger voor een Worksheet_Change-event. Dit kan je wel bewerkstelligen met een Calculate-event maar daar heb je dan geen Targetwaarde als referentie. Aangezien de wijziging van kolom F het resultaat is van een wijziging van kolom D of E zou ik ipv een event-procedure gaan voor een combinatie van je kopieërmacro voor kolom D en/of E en de Find-procedure die je nu hebt (en werkt).
Post anders eens deze macros zodat we kunnen zien hoe we deze kunnen combineren
 
Laatst bewerkt:
voor kolom D en kolom E gebruik ik in de 2 andere bestanden de volgende formule

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 13 And Range("E" & Target.Row).Value <> "" Then
        Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\centraal systeem\VCA database\VCA .xls"
        With Workbooks(Workbooks.Count)
             .Sheets("Blad1").Columns(1).Find(Target.Offset(0, -8).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
            .Close Savechanges:=True
        End With
end if
end sub
 
de vorige vraag is niet meer van toepassing, ik heb een omweg weggewerkt waardoor dit probleem verholpen is.

maar weet u toevallig een oplossing voor de foutmelding" end if zonder if blok" voor de rood gekleurde regel?
Code:
[COLOR="red"]Private Sub Worksheet_Change(ByVal Target As Range)[/COLOR]

If Target.Column = 6 And Target.Offset(0, -5) <> "" Then
    Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\centraal systeem\fiches materieel\" & Range("A" & Target.Row).Value
    With Workbooks(Workbooks.Count)
        .Worksheets(1).Range("A15").Value = Target
        .Close Savechanges:=True
    End With

ElseIf Target.Column = 7 And Len(Target) = 1 And Target.Value < 5 And Target.Value >= 1 Then
    Target.Value = Year(Now()) & "-" & Target

ElseIf Target.Column = 7 And Range("A" & Target.Row).Value <> "" Then
        Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\centraal systeem\database materieel\nieuwe codes materieell.xls"
        With Workbooks(Workbooks.Count)
             .Sheets("Blad1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 23).Value = Target.Value
            .Close Savechanges:=True


  End If

End Sub
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 6 And Target.Offset(0, -5) <> "" Then
    Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\centraal systeem\fiches materieel\" _
                            & Range("A" & Target.Row).Value[COLOR="red"] & ".xls"[/COLOR]   
    With Workbooks(Workbooks.Count)
        .Worksheets(1).Range("A15").Value = Target
        .Close Savechanges:=True
    End With

ElseIf Target.Column = 7 And Len(Target) = 1 And Target.Value < 5 And Target.Value >= 1 Then
    Target.Value = Year(Now()) & "-" & Target

ElseIf Target.Column = 7 And Range("A" & Target.Row).Value <> "" Then
        Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\centraal systeem\database materieel\nieuwe codes materieell.xls"
        With Workbooks(Workbooks.Count)
             .Sheets("Blad1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 23).Value = Target.Value
            .Close Savechanges:=True
       [COLOR="red"] End With[/COLOR]
End If
End Sub
 
hahaha, ik had het net ook gezien , en daar verspil ik uw tijd aan... ik schaam me dood!!:d
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan