Avatar billede zips Juniormester
01. maj 2017 - 19:10 Der er 13 kommentarer og
1 løsning

Userform med valg af tekst, men indsætte en anden tekst/tal

Hej alle

Jeg er ved at lave en lønseddel, hvor bruger skal indsætte lønart, men for at gøre det nemt for bruger, vil jeg gerne have en userform som kommer frem når man dobbelt klikker på nogle bestemte celler.

I userform skal lønart nr. stå sammen med med tekst som beskriver hvad dette nr. er, når man vælger den linje man ønsker løn for og klikker på ok, skal den indsætte et tal eller kort tekst o det felt man har dobbelt klikket på.

Jeg har forsøgt og klippet og klisteret lidt kode ind i dette ark jeg har fundet på nettet, den gør næsten det jeg ønsker, dog indsætter den teksten som stå i userform og her ville jeg gerne have en anden tekst indsat.
http://prebendahl.dk/tmp/lonseddel_test.xlsm

Håber der er en som kan hjælpe :)
Avatar billede jakobdo Ekspert
01. maj 2017 - 21:36 #1
Hvor skal den "anden" tekst komme fra ?
Hvis den er et sted i dit ark, er det så og lave et opslag mod det ark, finde række som matcher valget brugeren laver i userform og så smide denne "anden" tekst retur ?
Avatar billede zips Juniormester
01. maj 2017 - 21:43 #2
Ja hvis det kan komme fra et andet ark som indeholder begge mine lønarter, altså en med tekst og den anden med den korte tekst/tal som jeg ønsker, så er det også nemmer at vedligeholde, men ikke et must, det kan også være i VB koden.
Avatar billede jakobdo Ekspert
02. maj 2017 - 07:26 #3
Jeg er ikke VB mand, så jeg "gætter" bare, men vil dog mene det kan laves både som et opslag i et ark eller direkte i din vb kode.
Ulempen ved at smide det i din vb kode, er at når noget skal rettes, så skal du ind i koden.
Der er det nemmere at gå i krig med et ark og tilføje, rette eller slette rækker.
Men VB mand er jeg ikke, så kan ikke give dig noget brugbart kode.
Avatar billede zips Juniormester
02. maj 2017 - 07:36 #4
Helt iorden jakobdo :) måske en anden nu nemmer kan gennemskue mit ønske og komme med et forslag.

På denne side http://www.contextures.com/excel-data-validation-listbox.html hentes data fra et andet ark og bruges i deres form, men her er det også den samme tekst som indsættes og det er ikke det jeg ønsker.
Avatar billede jakobdo Ekspert
02. maj 2017 - 08:34 #5
Igen uden at være den store vb mand, så er mit gæt du skal tage deres kode og gøre følgende:

Hvis du kan "vælge" noget fra en liste, så må den have en reference til arket og dermed bør du "nemt" kunne tage kolonnen eller rækken under eller over, og sende data fra et andet felt retur.

Hvor meget vb og excel kan du selv ?
Avatar billede zips Juniormester
02. maj 2017 - 09:02 #6
I vba kan jeg ikke så meget, ikke nok til at lave den kode, men kan godt rette og tilføje ting.

Kan godt få min tekst liste ind i userform som i deres eksempel, men kan ikke ændre output så det bliver en anden tekst/tal som skal indsættes i de celler jeg ønsker.
Avatar billede jakobdo Ekspert
02. maj 2017 - 09:35 #7
Prøv at vis din vba kode, måske jeg kan "gætte" mig til en løsning ?
Avatar billede zips Juniormester
02. maj 2017 - 10:02 #8
Da jeg har sat min tekst ind i dette ark http://www.contextures.com/datavalidationsamples/datavallistboxsingle.zip kan jeg få det til at virke, men kan ikke selv helt gennemskue koden, da jeg ikke kan se det hele, derfor her jeg ikke lige en kode jeg kan lægge til dig.

I det ark har de navn givet celler, men kan ikke se hvordan de gør det, sikkert fordi det skal betales, men da det ikke gør det som jeg ønsker, er der ikke nogen grund til at købe det.

Har forsøgt med lopslag til at ændre mit output, men ved ikke hvordan det skal lægges i vba koden.
Avatar billede jakobdo Ekspert
02. maj 2017 - 12:38 #9
Nu fandt jeg en excel og fik leget lidt.

Det er sikkert ikke perfekt.

Men jeg har 2 ark.

Sheet1 og Data
Sheet1, har jeg tilføjet en knap, som åbner min userform1
Data indeholder Navn1 => Navn5 i A1 => A5 og Noget1 => Noget5 i B1 => B5

Og så har jeg denne kode:

Private Sub CommandButton1_Click()
    Dim currentItem As Long
    Dim selectedText As String
    currentItem = ListBox1.ListIndex + 1
    Sheets("Data").Activate
    selectedText = ActiveSheet.Cells(currentItem, 2).Value
    Sheets("Sheet1").Activate
    ActiveSheet.Cells(1, 1).Value = selectedText
End Sub


Private Sub UserForm_Initialize()
    ListBox1.Clear
    ListBox1.RowSource = "Data!A1:A5"
End Sub

Håber det måske kan hjælpe dig lidt på vej. :)
Avatar billede zips Juniormester
02. maj 2017 - 21:23 #10
jakobdo tak for forsøget, men jeg kan ikke lige få det til at køre, får en fejl, sikkert fordi jeg ikke har lavet det som du har beskrevet :)

Har du mulighed for at åbne dette ark http://prebendahl.dk/tmp/Mappe1.xlsm og se hvad jeg har lavet forkert med din kode.
Avatar billede zips Juniormester
03. maj 2017 - 11:05 #11
jacobdo nu fik jeg læst ordentligt på det du skrev og nu køre virker det, så lnagt så godt, jeg prøver at arbejde videre med det :)
Avatar billede jakobdo Ekspert
03. maj 2017 - 11:19 #12
Skide godt. Ville have kigget på dit eksempel i dag, men fedt du er kommet videre.
Skriv hvis det driller.
Avatar billede zips Juniormester
04. maj 2017 - 16:37 #13
jacobdo mange tak for din hjælp :)

Det lykkes og ark virker nu på denne måde.
På fane med lønseddel har jeg nogle bestemte celler som jeg kan dobbelt klikke i og min userform kommer frem med løn art fra fanen Data, her vælger jeg, den løn art jeg ønsker indsat og klikker ok, herefter indsætter den løn art's koden til højre for min løn art fra fanen Data og form lukker.
Avatar billede jakobdo Ekspert
04. maj 2017 - 17:04 #14
Skide godt Zips. :)
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