PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerVBAVBAApplication.Match - flera värdenApplication.Match - flera värden
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2019-06-20 06:21
 

Hej!

Ganska ny på makron och skulle behöva ha lite hjälp med en sak.

I kolumn A har jag tusentals IDn och i kolumn B dess pris

Jag har ett formulär där användaren matar in ett ID i textbox1 och så letar den upp priset och lägger det i textbox2

All kod har jag i Textbox_change

 

     Dim Res As Variant

     Res = Application.Match(TextBox1.Value, Worksheets("Blad2").Range("A1:A100"), 0)

     If Not IsError(Res) Then

        TextBox2.Value = Worksheets("Blad2").Range("B" & Res).Value

     Else

        TextBox2.Value = "Analys eller pris saknas"

    End If

 

Det jag vill få till är att i textbox1 ska man kunna ange flera värden, med en separator - och så ska den addera de priserna i textbox2.

Res = Application.Match(TextBox1.Value, Worksheets("Blad2").Range("A1:A100"), 0)

Är det möjligt att få in den funktionaliteten ovan?

 

Tack på förhand

 

/Henrik 

Nytt inlägg
 2019-06-20 08:11
 
Hej hej

Textbox kan bara innehålla en ända lång textsträng, detta innebär att användaren inte kan göra något med priserna om du väler denna typ av formulärkontroll. Vidare så triggas textbox_change varje gång som användaren trycker på en tangent, det finns inget sätt att veta när användaren knappat klart om du inte istället triggar makrot från en knapp "visa priser". Det finns en formulärkontroll som heter lisbox, denna är smidigare att jobba med och låter dig koda för om användaren valt priser. Dernna bygger på datatypen collections.

Nedan kod bör fungera för din textbox:

Dim str as string: str = textbox1.value

'Splittar dina IDN från textbox på ";"
Dim vnt as variant: vnt = split(str, ";")

Dim Res As Variant
Dim fullText as string

'Loopa igenom dina splittade Idn
For i = 0 to ubound(vnt)

Res = Application.Match(vnt(i), Worksheets("Blad2").Range("A1:A100"), 0)

If Not IsError(Res) Then

If i = 0 then
Fulltext = Worksheets("Blad2").Range("B" & Res).Value
TextBox2.Value = Fulltext
Else
TextBox2.Value = Fulltext & vbcr & Worksheets("Blad2").Range("B" & Res).Value
End if


Else

TextBox2.Value = "Analys eller pris saknas"

End If

Obs, som du ser har jag återanvänd din kod och gjort modifieringar i den. Jag har inte testat koden, så kan finnas syntaxfel m.m.

Mvh
Christian




Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerVBAVBAApplication.Match - flera värdenApplication.Match - flera värden

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter