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

Excel cellen omgekeerd automatisch vullen

Status
Niet open voor verdere reacties.

theet

Gebruiker
Lid geworden
30 aug 2007
Berichten
144
Stel ik heb een tabel A1 t/m C4 met waarden: A1 "naam" B1 "adres" C1 woonplaats

Als ik Cel A2 invul worden B2 en C2 automatisch gevuld.
Nu wil ik ook graag als ik alleen de woonplaats weet dat omgekeerd A2 en B2 gevuld worden. Hoe kan ik dit maken?

In de situatie dat ik van A2 gegevens invul heb ik een keuzeform gemaakt die vervolgens de cellen B2 en C2 vult met een ALS formule:
=VERT.ZOEKEN(B6;$G$5:$I$10;2;ONWAAR) (in cel G5 t/m I10 staan de gegevens van waaruit gezocht wordt). Met deze oplossing
kan ik volgens mij niet omgekeerd zoeken....

Wie kan mij helpen?
 
En hoe zou Excel moeten weten welke naam en adres bij de opgegeven woonplaats horen?
Plaats anders een voorbeeld document.
 
@edmoor,

(in cel G5 t/m I10 staan de gegevens van waaruit gezocht wordt). Met deze oplossing
kan ik volgens mij niet omgekeerd zoeken....
 
In de A cellen staat A,B,C,D,C,F als vaste waarden, daar selecteer je dus niks.
 
Ik bedoel dat volgens mij je uitleg niet helemaal correct is.
 
Wat jij wil kan alleen met VBA omdat een cel geen formule en een waarde kan bevatten. Waarom gebruik je comboboxen ipv een gewone validatielijst?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("B6:D11")) Is Nothing Or Target.Count <> 1 Then Exit Sub
  ar = ActiveSheet.ListObjects(1).DataBodyRange
  Application.EnableEvents = False
  For j = 1 To UBound(ar)
    If ar(j, Target.Column - 1) = Target.Value Then
      Cells(Target.Row, 2).Resize(, 3) = Application.Index(ar, j)
      Exit For
    End If
  Next j
  Application.EnableEvents = True
End Sub
 

Bijlagen

Wat jij wil kan alleen met VBA omdat een cel geen formule en een waarde kan bevatten. Waarom gebruik je comboboxen ipv een gewone validatielijst?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("B6:D11")) Is Nothing Or Target.Count <> 1 Then Exit Sub
  ar = ActiveSheet.ListObjects(1).DataBodyRange
  Application.EnableEvents = False
  For j = 1 To UBound(ar)
    If ar(j, Target.Column - 1) = Target.Value Then
      Cells(Target.Row, 2).Resize(, 3) = Application.Index(ar, j)
      Exit For
    End If
  Next j
  Application.EnableEvents = True
End Sub

Fantastisch, dit is wat ik zocht! Super bedankt! Ik heb met de code en het document gespeeld en veel is mij duidelijk geworden,
ik heb echter nog een paar vragen.

Ik heb hetzelfde proberen toe te passen in onderstaand document maar dan krijg ik een foutmelding:
Bekijk bijlage Regio.xlsm

Wat gaat hier fout?

Wat betekend:
j = 1
j, Target.Column - 1)
(Target.Row, 2)
Resize(, 3)
= Application.Index(ar, j)

Als je me dit toe zou willen lichten dan kan ik hier veel van leren!
 
Laatst bewerkt:
Deze niet gelezen? https://www.helpmij.nl/forum/announcement.php?f=5

Excel heeft een ingebouwde helpfunctie die je kan aanroepen met <F1>

j is een teller
target is de cel die je gewijzigd hebt
resize = vergroten/verkleinen
application.index kan je vergelijken met de werkbladfunctie INDEX()
 
Laatst bewerkt:
Deze niet gelezen? https://www.helpmij.nl/forum/announcement.php?f=5

Excel heeft een ingebouwde helpfunctie die je kan aanroepen met <F1>

j is een teller
target is de cel die je gewijzigd hebt
resize = vergroten/verkleinen
application.index kan je vergelijken met de werkbladfunctie INDEX()

Dank voor je reactie al begrijp ik niet helemaal waar je op doelt t.a.v. forum regels... die heb ik gelezen, maar wat doe ik fout?
Misschien de code vergeten op te nemen in mijn vraag?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("C2:F2")) Is Nothing Or Target.Count <> 1 Then Exit Sub
  ar = Sheets("Blad2").ListObjects("Regio1").DataBodyRange
  Application.EnableEvents = False
  For j = 1 To UBound(ar)
    If ar(j, Target.Column - 1) = Target.Value Then
      Cells(Target.Row, 2).Resize(, 3) = Application.Index(ar, j)
      Exit For
    End If
  Next j
  Application.EnableEvents = True
End Sub

Ik weet dat Excel de F1 help functie heeft, maar ik vind het heel lastig om de functie die je toelicht en werkt zelf kloppend te krijgen.
Ik heb ook op google gezocht naar de functie en geprobeerd er achter te komen hoe ik deze functie om kan bouwen in mijn voorbeeldbestand Regio.xlsm,
maar helaas.

Als je me nog één keer op weg zou kunnen helpen om deze VBA te begrijpen dan vind ik dat heel fijn.
 
Laatst bewerkt:
Staat er toch duidelijk: 'Vermijd de knop 'quote', omdat dan steeds weer hele teksten onnodig gekopieerd worden.'

Om de code aan te passen is het een kwestie van tellen en kijken op welke regel het fout gaat.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("C2:F2")) Is Nothing Or Target.Count <> 1 Then Exit Sub
  ar = [COLOR="#FF0000"]Blad2[/COLOR].ListObjects(1).DataBodyRange
  Application.EnableEvents = False
  For j = 1 To UBound(ar)
    If ar(j, Target.Column -[COLOR="#FF0000"] 2[/COLOR]) = Target.Value Then
      Cells(Target.Row, [COLOR="#FF0000"]3[/COLOR]).Resize(, 3) = Application.Index(ar, j)
      Exit For
    End If
  Next j
  Application.EnableEvents = True
End Sub
 
@ VenA: Lezen is ook een vak! Maar bedankt voor de uitleg, het is eigenlijk simpeler dan ik dacht en wat ik van de uitleg op excel forums begreep....
Volgens mij kan ik dit topic niet zelf afsluiten, is het niet?
 
theet,

je wordt wel geacht zelf je topic te sluiten.
Je doet dat in de openingspost, daar waar je de vraag gesteld hebt dus...
 
Het subcript valt buiten het bereik Fout 9

Ik heb wederom wat gespeeld met het document en krijg steeds de fout

"Het subscript valt buiten het bereik Fout 9" Ik snap niet wat hier fout gaat, ik verwijs toch echt naar object dat bestaat, toch?

Bekijk bijlage Map1.xlsm


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1:C1")) Is Nothing Or Target.Count <> 1 Then Exit Sub
  ar = Blad2.ListObjects(1).DataBodyRange
  Application.EnableEvents = False
  For j = 1 To UBound(ar)
    If ar(j, Target.Column, 1) = Target.Value Then
      Cells(Target.Row, 2).Resize(, 2) = Application.Index(ar, j)
      Exit For
    End If
  Next j
  Application.EnableEvents = True
End Sub
 
Gebruik de F8 knop in de VBEditor.
 
F8 gebruik ik maar ik kan de vinger niet op de zere plek leggen wat er fout gaat...
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan