/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Lopslag i userform macro
Fra : CiviC
Vist : 3034 gange
200 point
Dato : 20-11-07 23:36

Hjæælp.

I en "userform" skal der i textbox3 indtastes et postnr. Herefter skal der i textbox4 automatisk komme bynavnet for indtastet postnr.
Jeg har i kolonne A5000 til A6166 alle postnumre og i kolonne B5000 til B6166 bynavnene.
i macroen har jeg prøvet at skrive nedenstående 2 formler, men der kommer fejl i begge. Hvad skal jeg skrive?

Formel 1:
Private Sub TextBox3_Change()
Dim PostBy As Range
Set PostBy = Range("A5000:B6166")
X = TextBox3.Value
Y = WorksheetFunction.VLookup(X, PostBy, 2)
TextBox4 = Y
End Sub

Fejlmeddelelse:
runtime error '1004:

Kan ikke angive egenskaben VLookup for klassen WorksheetFunction

_____________________________________________________________________________
Formel 2:
Private Sub TextBox3_Change()
Dim PostBy As Range
Set PostBy = Range("A5000:B6166")
X = TextBox3.Value
Y = VLookup(X, PostBy, 2)
TextBox4 = Y
End Sub

Fejlmeddelelse:
Compile error:
Sub or Function not defined

Jeg kan taste følgende ind i en celle, og så virker det fint
postnr indtastet i F7
=LOPSLAG(F7; A5000:B6166;2)


På forhånd tak

CiViC

 
 
Kommentar
Fra : sion


Dato : 20-11-07 23:45

Det er nok næppe det, der er problemet, men der skal vel stå "TextBox4.Value = Y" i stedet for "TextBox4 = Y".

Jeg har desværre ikke noget bud på, hvad der ellers kan være galt...

Simon

Kommentar
Fra : CiviC


Dato : 20-11-07 23:47

Desværre. Har prøvet både med og uden value.

P.S. Jeg køre Excel 2002, hvis det har noget at sige?

Mvh
CiViC

Accepteret svar
Fra : sion

Modtaget 200 point
Dato : 21-11-07 10:28

Den her virker:

Kode
Private Sub TextBox3_Change()

Range("C1") = TextBox3.Value

On Error GoTo SLUT

If TextBox3.Value > 999 Then
Range("D1") = WorksheetFunction.VLookup(Range("C1"), Range("A5000:B6166"), 2, False)
Else
Range("D1") = ""
End If

TextBox4.Value = Range("D1")

SLUT:

End Sub


Jeg overfører oplysningerne i de to tekstbokse til to celler (C1 og D1), og så virker VLookup pludselig.

Jeg har desuden indsat et False-argument i VLookup, så der kun returneres en værdi ved fuldstændig match (ellers tager den bare det nærmeste postnummer og returnerer byen derfra).

Jeg har lavet det i Excel 2007, men det gør vist ikke nogen forskel i VBA.

Simon

Godkendelse af svar
Fra : CiviC


Dato : 21-11-07 19:54

U bastard

Synes jeg ellers, jeg havde prøvet, men uden held.
Havde overvejet det med FALSE, men først skulle jeg lige ha' lortet til at virke

Det virker perfekt. Tak for hjælpen

Mvh
CiViC

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177417
Tips : 31962
Nyheder : 719565
Indlæg : 6407867
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste