Avatar billede TheresaD Juniormester
19. januar 2018 - 12:06 Der er 7 kommentarer og
1 løsning

Makro til Lopslag

Hej jeg har lavet en UserForm, hvor man taster data i 4 felter. Den laver så disse 4 felter om til en String.

Private Sub CommandButton1_Click()
    Dim Lejerstreng As String
    Lejerstreng = TextBox1 + "-" + TextBox2 + "-" + TextBox3 + "-" + TextBox4
    Me.TextBox6 = Lejerstreng
End Sub

Jeg vil gerne bruge Lejerstreng til at lave et lopslag ned i databasen ca. 100 rækker.

Kolonne A = lejerstreng
Kolonne B = Dato

Den skal så finde den række i Kolonne A som passer med Lejerstreng. Derefter vise værdien i Kolonne B ud for samme række i TextBox7

håber der er nogen som kan hjælpe mig :)
Avatar billede Dan Elgaard Ekspert
19. januar 2018 - 13:41 #1
Dim Række As Long
Række = Application.Match(LejerString, Range("A:A"), 0)
TextBox7.Value = Range("B" & Række).Value
Avatar billede Dan Elgaard Ekspert
19. januar 2018 - 13:43 #2
Ups - jeg har skrevet 'LejerString' i stedet for 'LejerStreng'...
...men, mon ikke du selv havde luret det :-)

Forøvrigt, hvis det ikke virker med 'Application.Match' (burde det gøre), så prøv med 'WorksheetFunction.Match().
Avatar billede TheresaD Juniormester
19. januar 2018 - 14:53 #3
Har prøvet dem begge to og kan desværre ikke få det til at virke.

Private Sub CommandButton1_Click()
    Dim Lejerstreng As String
    Lejerstreng = TextBox1 + "-" + TextBox2 + "-" + TextBox3 + "-" + TextBox4
    Me.TextBox6 = Lejerstreng
Dim Række As Long
Række = WorksheetFunction.Match(Lejerstreng, Range("A:A"), 0)
TextBox7.Value = Range("B" & Række).Value
End Sub

Er det fordi jeg måske mangler at skrive hvilken fane den skal hente dataen i? I dette tilfælde fanen "Rykker"
Avatar billede Dan Elgaard Ekspert
19. januar 2018 - 18:14 #4
Jo, det kan godt være - min makro antager det antive ark...

Prøv med:

Række = WorksheetFunction.Match(Lejerstreng, Sheets("Rykker").Range("A:A"), 0)
TextBox7.Value = Sheets("Rykker").Range("B" & Række).Value
Avatar billede TheresaD Juniormester
20. januar 2018 - 20:02 #5
Nu har jeg næsten fået den til at virke :)
Den kan finde værdien i kolonne A nu og vise værdien i kolonne B. Men hvis værdien ikke findes i Kolonne A, så dør makroen og vil debuges :(

Kan man lave en funktion, hvor den siger værdi ikke fundet?
Avatar billede Dan Elgaard Ekspert
21. januar 2018 - 09:04 #6
Ja, du ligger blot denne kode linje ind, som din allerførste linje i din kode:

On Error Resume Next

Og, så ændre du din sidste kode linje til:

If Række > 0 Then TextBox7.Value = Sheets("Rykker").Range("B" & Række).Value
Avatar billede TheresaD Juniormester
21. januar 2018 - 15:32 #7
Tak nu virker det :)
Avatar billede Dan Elgaard Ekspert
21. januar 2018 - 15:38 #8
Velbekomme :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester