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

kopieren naar een variabele regel in een ander bestand

Status
Niet open voor verdere reacties.

elodie

Gebruiker
Lid geworden
18 mei 2010
Berichten
48
ik ben op zoek naar een code in deze stijl.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target.Offset(0, -1) <> "" Then Worksheets(Target.Offset(0, -1).Value).Range("A1").Value = Target
End Sub

wanneer ik Dieter ingeef in bestand "c:\school\gedrag.xls" tabblad "3de leerjaar" in kolom "A"
zou ik hetgeen in ik kolom B typ automatisch ook willen hebben in
bestand "c:\school\rapport.xls" tabblad "3de leerjaar" achter Dierter (in dit bestand staan de namen ook in kolom "A" )

is dit mogelijk?
 
Beste elodie ;)

Waarom met een code ?

Als beide bestandjes open staan, dan type je achter Dieter het volgende:
Vb; Dieter staat in A1
Tekst staat in B1.

='[gedrag.xls]3de leerjaar'!B1

Groetjes Danny. :thumb:
 
Beste elodie ;)

Waarom met een code ?

Als beide bestandjes open staan, dan type je achter Dieter het volgende:
Vb; Dieter staat in A1
Tekst staat in B1.

='[gedrag.xls]3de leerjaar'!B1

Groetjes Danny. :thumb:

Ik denk dat Elodie een macro wilt gebruiken die de ingevoerde naam in een ander bestand zoekt.

@Elodie.
Dat kan inderdaad.
Het is wel makkelijker als beide bestanden geopend zijn maar met VBA kan gecontroleerd worden of het andere bestand geopend is en indien nodig automatisch worden geopend.

Met vriendelijke groet,


Roncancio
 
Laatst bewerkt:
dit dacht ik eerst ook te doen , maar aangezien de plaatsen waar de namen van de kinderen komen in het eerste bestand niet altijd gelijk is ( eenvoudiger in te vullen ) heb ik een 2de bestand aangemaakt waar ik een meer gestructureerd overzicht wou krijgen.

en hiervoor heb ik dan weer wel een code nodig.

Ik heb reeds geëxperimenteerd met de bovenstaande code, maar ik kwam niet tot een werkend iets.

toch bedankt

groetjes...x
 
Elodie, in de veronderstelling dat beide bestanden geopend zijn zou onderstaande moeten voldoen aan jouw vraag.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Target.Offset(, -1) <> "" Then Workbooks("rapport.xls").Sheets("3de leerjaar"). _
        Columns(1).Find(Target.Offset(, -1).Value, , xlValues, xlWhole).Offset(, 1).Value = Target.Value
End Sub
 
Laatst bewerkt:
Deze code werkt inderdaar als de bastanden al geopend zijn, maar het is de bedoeling dat ik slechts 1 bestand open. en het 2de niet.

Nu heb ik nog een extra vraag, als er nu 2 keer dieter staat in deze kolom, en ik wil diegene die het laatste is ingegeven gebruiken. hoe los ik dit op?

bedankt voor de hulp
 
Laatst bewerkt:
Elodie, het 2de bestand MOET sowieso geopend worden wil je er iets in wegschrijven. Het lijkt mij dus niet erg handig dat je voor elke regel die je gaat schrijven het 2de bestand gaat openen, je waarde wegschrijven en het bestand terug sluiten. Wil je het echter zo, dan zal ik of iemand anders met alle plezier de code voor je aanpassen natuurlijk.
 
ik heb ergens een code gevonden waarmee het bastand niet hoeft geopend te worden.
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\werf\fiches materieel\" & Range("A" & Target.Row).Value
    With Workbooks(Workbooks.Count)
        .Worksheets(1).Range("A15").Value = Target
        .Close Savechanges:=True
    End With
End If

deze heb ik dan even proberen aan te passen samen met de code die jij me had gegeven tot:

Code:
If Target.Column = 7 And Target.Offset(0, -6) <> "" Then
[I][U]Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\werf\VCA database\" & Workbooks("VCA.xls").Worksheets("1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value[/U][/I]
    With Workbooks(Workbooks.Count)
        .Worksheets("1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
        .Close Savechanges:=True
    End With

op de schuin gedrukte regel krijg in een "subscript valt buiten bereik" error

kan je van deze code iets bruikbaars maken A.U.B.

dank bij voorbaat
 
ik heb ergens een code gevonden waarmee het bastand niet hoeft geopend te worden.
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\werf\fiches materieel\" & Range("A" & Target.Row).Value
    With Workbooks(Workbooks.Count)
        .Worksheets(1).Range("A15").Value = Target
        .Close Savechanges:=True
    End With
End If

deze heb ik dan even proberen aan te passen samen met de code die jij me had gegeven tot:

Code:
If Target.Column = 7 And Target.Offset(0, -6) <> "" Then
[I][U]Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\werf\VCA database\" & Workbooks("VCA.xls").Worksheets("1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value [COLOR="red"]= Target.Value[/COLOR][/U][/I]
    With Workbooks(Workbooks.Count)
        .Worksheets("1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
        .Close Savechanges:=True
    End With

op de schuin gedrukte regel krijg in een "subscript valt buiten bereik" error

kan je van deze code iets bruikbaars maken A.U.B.

dank bij voorbaat

Het rode gedeelte moet er zeker uit.
Klopt het dat er een werkblad is genaamd 1?

Met vriendelijke groet,


Roncancio
 
het is genaamd "Blad 1"

"=Target.value" is verwijderd, en het werkblad noemt nu terug overal " Blad1" ipv "1"

maar nog steeds krijg ik dezelfde regel in het geel met dezelfde foutmelding.

weet iemand hier toevallig een oplossing voor?
 
Laatst bewerkt:
het is genaamd "Blad 1"

"=Target.value" is verwijderd, en het werkblad noemt nu terug overal " Blad1" ipv "1"

maar nog steeds krijg ik dezelfde regel in het geel met dezelfde foutmelding.

weet iemand hier toevallig een oplossing voor?

Ik heb de code aangepast en dit werkt goed.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 And Target.Offset(0, -6) <> "" Then
    Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\werf\VCA database\" & Workbooks("VCA.xls").Worksheets("1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
    With Workbooks(Workbooks.Count)
        .Worksheets("1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
        .Close Savechanges:=True
    End With
End If
End Sub

Mocht je nog de foutmelding krijgen dan moet je vooral kijken of de namen van de werkbladen wel kloppen.

Met vriendelijke groet,


Roncancio
 
Deze code staat er.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 And Target.Offset(0, -6) <> "" Then
    Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\werf\VCA database\" & Workbooks("VCA.xls").Worksheets("Blad1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
    With Workbooks(Workbooks.Count)
        .Worksheets("Blad1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
        .Close Savechanges:=True
    End With
End If

End Sub

van bastand:
C:\Documents and Settings\evanaken\Desktop\systeem\werf\database werfinspectiefiches\lege inspectiefiche\inspectierapport klein matterieel.xls op tabblab "Blad1"
ter verglijking is kolom A en in te vullen informatie in kolom G
naar bestand:
C:\Documents and Settings\evanaken\Desktop\systeem\werf\VCA database\VCA.xls op tabblab "Blad1"
vergelijken met kolom A en invullen(overschrijven) in kolom D

en ik krijg het meer niet aan de praat...
 
Ik had de verkeerde code gestuurde.:o
Dit is de juiste.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 And Target.Offset(0, -6) <> "" Then
    Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\werf\VCA database\" & Worksheets(1).Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value
    With Workbooks(Workbooks.Count)
        .Worksheets(1).Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
        .Close Savechanges:=True
    End With
End If
End Sub

Met vriendelijke groet,


Roncancio
 
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
On Error Resume Next
If Target.Column = 7 And Target.Offset(0, -6) <> "" Then
    Workbooks.Open "C:\Documents and Settings\evanaken\Desktop\systeem\werf\VCA database\VCA.xls"
    With ActiveWorkbook
        .Sheets("Blad1").Columns(1).Find(Target.Offset(0, -6).Value, , xlValues, xlWhole).Offset(0, 4).Value = Target.Value
        .Close True
    End With
End If
Application.ScreenUpdating = True
End Sub
 
Laatst bewerkt:
badankt mannen, ik heb voor het eerste gekozen omdat ik hier het systeem van begrijp.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan