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

veranderen van adressen via reproductiecellen

Status
Niet open voor verdere reacties.

tvkijker

Gebruiker
Lid geworden
3 mrt 2006
Berichten
125
Beste lezer,
Ik heb het volgende vraagstuk:
- ik voer adressen in via een rij cellen en die worden geexporteerd naar een werkblad "namen " - loopt goed geen probleem

- als de klant komt zoek ik zijn naam en die krijg ik te zien via de formule:=VERT.ZOEKEN(klantnummer;klantbestandres;3) Het klantnummer wordt in de rij opgezocht van de matrix klantadres en cijfer 3 is de kolom waar hij de gegevens vandaan haalt. Dit gaat door tot 14 en laat ik reproduceren in een rij cellen (d3:d14) in het zoekblad.

- ik zie dus alle gegevens van de klant en vraag hem of het nog klopt. Als hij nu zegt ik ben verhuis of heb een ander telefoonnummer wil ik niet naar de matrix - klantbestandadres maar het rechtstreeks doen in de zoekresultaat reproductiecellen d3:d14.

Wat ik dus invul in d3:d14 moet in de matrix - klantbestandadres naar de rij van de klant (=klantnummer) en naar de betreffende kolom.

Hoe doe ik dat ? Welke formule moet ik in VBA neerzetten ?

Groeten,
Dirk

-
 
Hoi Dirk,

Je moet 2 dingen doen. Je wilt namelijk in een cel waar een formule staat een wijziging plaatsen, dan is je formule weg. Dat wil je natuurlijk niet. En als de wijziging is ingevuld dan wil je de wijziging wegschrijven.

Met vba moet je de formule wegschrijven naar een cel die je niet gebruikt. Ik de onderstaande code zijn de Beschermde cellen D4:F4 en de 'nutteloze' cel K4
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("D4:F4")) Is Nothing Then Range("K4") = Target.Formula
End Sub

Nu moet je ervoor zorgen dat bij een wijziging in de beschermde cellen de nieuwe waarde wordt weggeschreven en de formule weer wordt teruggezet. Daarvoor kun je de volgende code gebruiken.
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D4:F4")) Is Nothing And Target.Formula <> Range("K4").Formula Then Worksheets(2).Cells(4, Target.Column) = Target: Target.Formula = Range("K4")
End Sub

Ik hoop dat je hier verder mee kunt.

Jeroen
 
Dag Jeroen,

Nu je het zegt :-) ; ik moet eerlijk bekennen dat ik dit probleem nog niet ingezien had. Je hebt gelijk ik verander ook mijn basisformules. Dus heel erg bedankt.
Wat was mijn probleem dan ? Ik weet niet hoe ik de kolom gegevens die na de zoekaktie uit de adressheet kwamen, weer naar de juiste regel krijg. Mijn invoer gebeurde door hem naar de onderste regel te laten zoeken en hem daar gewoon de plaatsen. Maar nu moeten de gegevens (verbeterd) terug naar de regel in de andere sheet waar ze vandaan kwamen. In die regel stonden dus de oude NAW gegevens.

Ik hoop dat je mij kunt helpen. Je antwoord hierboven geeft mij in elk geval vertrouwen.

Groeten,
Dirk
 
Hoi Dirk,

Kun je een voorbeeld bestandje posten?
Het vrij lastig om te antwoorden zonder dat ik weet waar iets ingevuld moet worden en waar iets naar toe moet.

Groet,
Jeroen
 
Dag Jeroen,
Bedankt voor je antwoord. Het bestand is op de zaak, dus dat wordt dit weekend OK ?
 
Hoi Dirk,

Dit weekend wordt lastig, mijn zoontje is jarig geweest en geeft zijn vriendenfeestje, heeft echt meer prioriteit.

Jeroen
 
Dag Jeroen,


Ik hoop dat je hierdoor een indruk krijgt en een ingeving. Bij d7:d22 worden de gegevens ingevuld, die via een macro naar het tabblad start gaan.De macro's heb ik er niet bij in deze sheet, dus deze zal ik hier even copiëren:
Private Sub Buttonmaaknieuweklant()

'De gegevens worden gekopiërd van de "start" naar "klant"

Application.ScreenUpdating = False
With Sheets("klant").Cells(Rows.Count, 1).End(xlUp)

.Offset(1, 0).Value = Sheets("start").[d6].Value 'klantnr
.Offset(1, 1).Value = Sheets("start").[d7].Value 'debnr
.Offset(1, 2).Value = Sheets("start").[d8].Value 'voornaam
.Offset(1, 3).Value = Sheets("start").[d9].Value 'ini
.Offset(1, 4).Value = Sheets("start").[d10].Value 'naam
.Offset(1, 5).Value = Sheets("start").[d11].Value 'straatnaam
.Offset(1, 6).Value = Sheets("start").[d12].Value 'nr.
.Offset(1, 7).Value = Sheets("start").[d13].Value 'postcode
.Offset(1, 8).Value = Sheets("start").[d14].Value 'woonplaats
.Offset(1, 9).Value = Sheets("start").[d15].Value 'land
.Offset(1, 10).Value = Sheets("start").[d16].Value 'mobitel
.Offset(1, 11).Value = Sheets("start").[d17].Value 'telvast
.Offset(1, 12).Value = Sheets("start").[d18].Value 'email
.Offset(1, 13).Value = Sheets("start").[d19].Value '(ken)merk
.Offset(1, 14).Value = Sheets("start").[d20].Value 'type
.Offset(1, 15).Value = Sheets("start").[d21].Value 'kmstand
.Offset(1, 16).Value = Sheets("start").[d22].Value 'nnb

End With

Range("d8").Select

End Sub



Daarna kan ik met invullen F4 (hier "st") alle namen vinden waar "st"in voorkomt. Vanwege privacy heb ik in sheet "klant" verder alles weggehaald, maar je ziet dat er 4 een naam hebben met "st". Daarvan heb CNC freestechniek genomen omdat het een bedrijf is en minder privacygevoelig. Stel nu dat ik het mobi en tel nummer alsnog wil toevoegen in F15 en F16, hoe krijg ik die dan naar sheet "klant" rij 32 waar klant 31 staat ?
 

Bijlagen

Hoi Dirk,

Moet zeggen ziet er goed uit!:thumb:

Ik zie dat je met verschillende PC's werkt. Moeten de data regelmatig gesynchroniseerd worden?
Je kunt met Excel namelijk ook een apart databestand maken dat binnen het netwerk door iedereen geraadpleegd en gemuteerd kan worden.
Heeft iedereen altijd hetzelfde bestand.

Groet,
Jeroen
 
Dag Jeroen,
Wil je er nog mee verder gaan ? Ik ben er nog steeds niet uit.
Groeten,
Dirk
 
Hoi Dirk,

Even wat tegenslag, (hopelijk de voeding van) mijn harde schijf op mijn laptop is kapot. Ik heb op dit moment even geen computer ter beschikking.

Jeroen
 
Hoi Jeroen,

Een reddingslijn laat je niet gauw los.

Heb je enig idee van de tijd ?

Groeten Dirk
 
Ben bezig met nieuwe laptop of all in one. Ben er nog niet uit.
 
Dan wacht ik rustig even af. Jammer van het geld ,maar toch wel weer leuk om iets nieuws te kopen,

Groeten,
Dirk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan