Avatar billede onetouch Nybegynder
07. juni 2004 - 21:35 Der er 10 kommentarer og
1 løsning

Streng af variabler

Hej Eksperter.

Jeg sidder og roder med noget VBA til Excel2000.

Mit problem er at jeg gerne vil erklære nogle variabler som sammensat skal overføres til en celle i regnearket. (Behøver jeg at sige at jeg ikke er nogen haj til VBA ?)

-Nå, men for at give et eksempel så skal jeg ud fra valgene i nogle kombibokse sammensætte en unik beskrivelse af hvad der valgt.

eks.

Kombiboks1    'abc';'def';'hij'

kombiboks2    '123';'456';'789'

Kombiboks3     '1a';'2b';'3c'


Hvis der i kombiboks1 vælges 'def' skal den første del af den sammensatte streng være "D"

Hvis der i kombiboks2 vælges '123' så skal anden del af strengen være "123"

Hvis der i kombiboks3 vælges '2b' så skal jeg bruge en tekst svarende til "- 2b"

Resultatet af ovenstående skulle gerne give mig følgende "D 123 -2b" som skal indsættes i ark2 celle H45

Er der nogle der vil hjælpe vil jeg være meget taknemlig.
Avatar billede kabbak Professor
07. juni 2004 - 21:56 #1
Er det altid første bogstav i kombiboks 1, så

Kombiboks1 = "def"
kombiboks2 = "123"
Kombiboks3 = "2b"


A = UCase(Left(Kombiboks1, 1)) & " " & kombiboks2 & " -" & Kombiboks3
Worksheets("Ark2").Range("H45") = A
Avatar billede onetouch Nybegynder
07. juni 2004 - 22:34 #2
Der vil være et par tilfælde hvor det er de første 2 karaktere der er skal bruges fra Kombiboks1. Endvidere kommer jeg også nok at skulle navngive outputtet fra kombiboks3 med noget helt tredie f.eks "2x".  - Så jeg tror ikke helt at jeg kan undgå at bruge nogle 'If..'-sætninger til at bestemme resultatet.
Avatar billede onetouch Nybegynder
07. juni 2004 - 22:36 #3
Kan jeg bare indsætte det i koden til min userform, eller er der andre steder det ville være smart at smide det ?
Avatar billede kabbak Professor
07. juni 2004 - 22:53 #4
lav en sub i din userform som kaldes hver gang en af kombiboksene skifter værdier

Private Sub ComboBox1_Change()
Call Opdater
End Sub
Private Sub ComboBox2_Change()
Call Opdater
End Sub

Private Sub ComboBox3_Change()
Call Opdater
End Sub

Public Sub Opdater()
Dim A As String, B As String, C As String
If ComboBox1 = "abc" Then
A = "A"
ElseIf ComboBox1 = "def" Then
A = "D"
Else

End If

' If ComboBox2 ... osv



Worksheets("Ark2").Range("H45") = A & " " & B & " -" & C

End Sub

noget lignende denne opbygning
Avatar billede onetouch Nybegynder
07. juni 2004 - 22:54 #5
Lidt mere forklaring...

Kombiboks1 skal returnere "HI" ved 'hij' -og så er der lige den krølle at både 'abc' og 'def' skal returnere "D"

Kombiboks3 skal kunne oversætte
'1a' til "1y"
'2b' til "2x"
'3c' til "et eller andet"
Avatar billede kabbak Professor
07. juni 2004 - 23:01 #6
If ComboBox1 = "abc" or ComboBox1 = "def" Then
A = "D"
ElseIf ComboBox1 = "hij" Then
A = "HI"
end if



er der kun 3 muligheder i hver kombo
og er der noget system i kombo 3
Avatar billede onetouch Nybegynder
07. juni 2004 - 23:16 #7
Der er kun 3 muligheder i kombiboks3. Der er ikke umidelbart nogen logik i navngivningen. Det man vælger er nogle forkortelser som i regnearket skal gengives mere specifikt.

- Ellers ser det rigtigt lovende ud. Brikkerne er ved at falde på plads :o)
Avatar billede kabbak Professor
07. juni 2004 - 23:21 #8
If ComboBox3 = "1a"  Then
C = "1y"
ElseIf ComboBox3 = "2b" Then
C = "2x"
else
C = " et eller andet"
end if
Avatar billede onetouch Nybegynder
07. juni 2004 - 23:35 #9
Ja. nu ser det ud som at det virker efter hensigten. Hvis du smider et svar skal jeg efter bedste evne forsøge at give dig dine velfortjente point.
Avatar billede kabbak Professor
07. juni 2004 - 23:36 #10
et svar ;-))
Avatar billede kabbak Professor
07. juni 2004 - 23:51 #11
tak for point ;-))
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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