• 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 kopiëren naar een bijbehorende regel in een ander blad

Status
Niet open voor verdere reacties.

Lengerke

Gebruiker
Lid geworden
23 okt 2016
Berichten
41
Dag mensen,

Situatie:
Blad 2
Lijst met naw gegevens van personen. B1: Persoonscode B2: Naam B3: adres, B4: is leeg, daar moet de geboorteplaats komen te staan.

Blad 1
In dit blad typ ik een persoonscode in B1 en haal ik in B2 met verticaal zoeken de naam op. In B3 met verticaal zoeken het adres.
In B5 voeg ik met de hand de geboorteplaats toe.

Vraag:
Hoe kan ik er voor zorgen dat met een macro de ingetypte geboorteplaats uit Blad 1 terecht komt op de bijbehorende regel in de lijst op Blad 2? Wat moet er in die macro staan?

Het zou heel fijn zijn als jullie mij daar mee kunnen helpen!
 
Geen idee waarom je deze opzet gebruikt. Doe er even een voorbeeldbestandje bij.
 
Dag VenA,

De geschetste situatie is een vereenvoudiging van een heel ingewikkelde werkmap. Het gaat mij om de techniek om dit probleem aan te pakken.
 
Vandaar ook de vraag om een gelijkend voorbeeldbestand.

Zet zowel op blad 1 als blad2 gegevens van een aantal personen. Dan is het makkelijker om er een mogelijke oplossing voor te verzinnen. Een bestandje kan je bijvoegen door op Ga geavanceerd en vervolgens op de paperclip te klikken.

Hiervoor is echt niet het totale document nodig als we maar een idee hebben hoe het is en hoe het moet worden.;)
 
Dit is het principe.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$5" Then Sheets("Blad2").Columns(2).Find(Target.Offset(-4).Value).Offset(3) = Target.Value
End Sub
 
Laatst bewerkt:
In moduleblad 1.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
 If Target.Address = "$C$6" Then
  Set c = Sheets("Blad2").Columns(1).Find(Target.Offset(-4).Value)
  If Not c Is Nothing Then c.Offset(, 4) = Target.Value
   MsgBox "opnamedatum is " & IIf(c Is Nothing, "niet ", "") & "weggeschreven"
 End If
End Sub
 
Dag Harry,

Het werkt! Ik ben al heel blij.
Maar wanneer ik niet alleen Opnamedatum wil bijwerken op Blad2, maar ook b.v. Code en Telefoonnummer, wat dan? Ik heb geprobeerd om jouw stukje code er onder te plakken, zij het iets aangepast i.v.m. de andere kolommen, dan werkt het nog niet..
Ik doe het aangepaste voorbeeldbestandje er bij.

Alvast bedankt!
 

Bijlagen

Probeer het zo eens

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
 If Intersect(Target, Range("C5:C7")) Is Nothing Then Exit Sub
    Set c = Sheets("Blad2").Columns(1).Find(Target.Offset(2 - Target.Row).Value)
    If Not c Is Nothing Then c.Offset(, Target.Row - 2) = Target.Value
      MsgBox Target.Offset(, -1) & IIf(c Is Nothing, " niet ", "") & " weggeschreven"
End Sub
 
Ik dacht dat dit ook werkte met cellen waar in een getal wordt gegenereerd d.m.v. radiobuttons, maar dat doet hij helaas nog niet..
Is daar iets aan te doen??
Heb het aangepaste bestandje meegestuurd.
 

Bijlagen

Waarom zou je het willen? Een huisnummer invullen dmv een optionbutton?

Als het er maar drie zijn dan kan je er een macro aan koppelen maar erg dynamisch is dit niet.

Is een Userform niet een beter idee?
 

Bijlagen

Dag Harry,

Je bent geweldig! Het werkt en dit was precies wat ik bedoelde.
Ik kan wel macro's opnemen en aanpassen, maar dit is een heel ander nivo. Ik leer door vragen te stellen hier best wel veel.
Toch een vraag. Wat is je advies voor mij om op dit terrein meer te leren?
Bedankt zo ver.
 
Dag VenA,

Dank voor je reactie.
Ik wil in het echte sheet niet een huisnummer met radiobuttons ingeven, maar andere zaken. Ik heb een simpel voorbeeldje gemaakt, waar het principe voor jullie wel duidelijk wordt.

Ik ga naar het userform-idee kijken, ik denk dat ik daar uiteindelijk naar toe moet.
 
Dag Harry,
Toch een vraag. Wat is je advies voor mij om op dit terrein meer te leren?

Interesse voor Excel, en door hier een beetje te struinen en dingen testen/uitbreiden/testen/F1-knop in Vba gebruiken en nabootsen.
 
Laatst bewerkt:
Het blijkt dat mijn voorbeeld bestand toch te veel afweek van mijn echte situatie. Daarom heb ik het voorbeeldbestand aangepast en het hierbij gedaan. Ik durf het bijna niet te vragen, maar willen jullie er nog een keer naar kijken?? Zou heel fijn zijn!
 

Bijlagen

Code:
Sub hsv()
Dim c As Range
With Sheets("blad1")
  If .Range("c2") <> "" Then
   Set c = Sheets("Blad2").Columns(1).Find(.Range("c2").Value)
     If Not c Is Nothing Then c.Offset(, 7).Resize(, 23) = Application.Transpose(.Range("c9:c31").Value)
  End If
 End With
MsgBox "gegevens zijn" & IIf(c Is Nothing, " niet", "") & " weggeschreven"
End Sub
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan