Avatar billede krohn Praktikant
10. september 2006 - 17:00 Der er 19 kommentarer og
1 løsning

Skriv/Læs til/fra Userform

Jeg har en userform
Jeg vil gerne kunne hente data fra en workbook med et sheet der hedder "Samle" fra cellen D2, jeg går ud fra det skal vises i en text box (det skal ikke ændres)
Jeg skal også kunne skrive forskellige celle værdier fra userform til  workbook "Samle" cell B4 (eksempel).

Kan man på userform have en text box der skriver text til et sheet, I først ledige linje, og labler en given celle med dato for hvornår det er skrevet, så man kan lave en knap der pirnter
de linjer ud der er skrevet.

Har kigget lidt på
TIL userform FRA regneark:
  text1.text = Worksheets("Ark1").Cells(2, 1)

FRA userform TIL regneark:
  Worksheets("Ark1").Cells(2, 1) = text1.text
Men kan ikke helt få det til at virke, trode lige jeg var ved at fatte det :P
Avatar billede supertekst Ekspert
10. september 2006 - 17:43 #1
Lidt hjælp på vejen (uddrag):

Private Sub UserForm_activate()                'Når Userformen aktiveres
    ActiveWorkbook.Sheets("Samle").Activate    'Aktivere samle-Arket
    Me.TextBox1 = Cells(2, 4)                  'hentes fra celle D2 - vises i TB1
   
End Sub
Private Sub Commandbutton1_click()              'Ved klik på knap i userform
    Cells(2, 2) = Me.TextBox2                  'Insæt værdien af TB2 i celle B2
End Sub
Avatar billede krohn Praktikant
10. september 2006 - 17:53 #2
Ok vil lege lidt med, Så er du klar til at hjælpe mig igen, jeg lære det vel en af dagene.
Er ved at se hvormange geniale ting man kan med dette, og prøver at gøre hverdagen nemmere, for os der bruger disse regneark
Avatar billede krohn Praktikant
10. september 2006 - 18:24 #3
Ok har fået hentet den dato der er i cell D2, kan den vises i andet format end MM/DD/ÅÅ ?
Når jeg skriver til cell B4 (din B2) så skriver den ok hvad den skal, men cellen der skrives til opfatter det ikke som en dato ligegyldigt hvilket dato seprator jeg bruger . -, eller / ?
Jeg ville gerne have hentet flere celler til text box 3, 4, 5 o.s.v. Jeg har sat denne ind:
Private Sub TextBox3_Change()
ActiveWorkbook.Sheets("Samle").Activate
    Me.TextBox3 = Cells(4, 5)
End Sub
Men den henter ikke noget, celle værdien er 36 men der står ingenting i textbox3 ??
Avatar billede svla Mester
10. september 2006 - 19:47 #4
Hej krohn.
Jeg har et forslag, prøv denne lærebog om VBA og Excel som du kan købe på linket her:

http://www.libris.dk/pcoginternet/oevrige_programmer/vis_produkt/shop/excel-2003-programmering-med-vba/?cHash=9c99a8228a
Avatar billede krohn Praktikant
10. september 2006 - 21:07 #5
Ok har hentet det eksempel "demo"  som jeg vil kigge på. Men det ser ud til at det er sådan en jeg skal have fat i. Tak for tippet
Avatar billede supertekst Ekspert
11. september 2006 - 10:12 #6
Lidt mere.....

Rem I ThisWorkBook: - men det har du måske allerede
Rem ===============
Rem Sub workbook_activate()
Rem    Load UserForm1
Rem    UserForm1.Show 0
Rem End Sub

Private Sub TextBox3_Enter()                    'Når der klikkes i TB3 - hentes indhold fra E4
    Me.TextBox3 = Cells(4, 5)
End Sub

Private Sub UserForm_activate()                'Når Userformen aktiveres
    ActiveWorkbook.Sheets("Samle").Activate    'Aktivere samle-Arket
    Me.TextBox1 = Format(Cells(2, 4), "dd-mm-yy") 'hentes fra celle D2 - vises i TB1 - dato formatteres
End Sub

Private Sub Commandbutton1_click()              'Ved klik på knap i userform
    Cells(2, 2) = Me.TextBox2                  'Insæt værdien af TB2 i celle B2
End Sub
Avatar billede krohn Praktikant
11. september 2006 - 10:59 #7
Den kommer med en fejl: Could not set the value property. Type mismatch
Og hvis jeg køre debug kommer den op og hiligther Me.TextBox3 = Cells(4, 5) fra Private Sub TextBox3_Enter()                    'Når der klikkes i TB3 - hentes indhold fra E4
    Me.TextBox3 = Cells(4, 5)
End Sub
Avatar billede supertekst Ekspert
11. september 2006 - 11:27 #8
OK - prøv enten at vis hele koden her - eller send din fil til: pb@supertekst-it.dk
Avatar billede krohn Praktikant
11. september 2006 - 12:03 #9
Rem I ThisWorkBook: - men det har du måske allerede
Rem ===============
Rem Sub workbook_activate()
Rem    Load UserForm1
Rem    UserForm1.Show 0
Rem End Sub

Private Sub Label1_Click()

End Sub

Private Sub Label2_Click()

End Sub

Private Sub TextBox1_Change()

End Sub

Private Sub TextBox3_Enter()                    'Når der klikkes i TB3 - hentes indhold fra E4
    Me.TextBox3 = Cells(4, 5)
End Sub

Private Sub TextBox2_Change()

End Sub

Private Sub UserForm_activate()                'Når Userformen aktiveres
    ActiveWorkbook.Sheets("Samle").Activate    'Aktivere samle-Arket
    Me.TextBox1 = Format(Cells(2, 4), "dd-mm-yyyy") 'hentes fra celle D2 - vises i TB1 - dato formatteres
End Sub

Private Sub Commandbutton1_click()              'Ved klik på knap i userform
    Cells(4, 2) = Me.TextBox2                  'Insæt værdien af TB2 i celle B4
End Sub
Avatar billede svla Mester
11. september 2006 - 20:53 #10
Håber du får glæde af bogen hvis du køber den  - jeg har lært meget af denne bogen.
Avatar billede krohn Praktikant
12. september 2006 - 09:06 #11
Den er bestilt.
Avatar billede krohn Praktikant
11. oktober 2006 - 03:00 #12
Kæmper stadig med det, men jeg vil gerne lukke her, kommer der nogle svar?
Avatar billede krohn Praktikant
11. oktober 2006 - 03:00 #13
Syntes det er lidt svært :)
Avatar billede krohn Praktikant
02. november 2006 - 21:12 #14
Kommer der nogle svar
Avatar billede svla Mester
02. november 2006 - 23:46 #15
Hej
Jeg går ud fra at du har oprettet en Workbook hvori du vil have oprettet din Userform og  VBA-kode,
-eller
Opret f.eks en ny standard Workbook med 3 ark.

På Ark2 i celle A2 indtastes f.eks teksten "Test"

Opret en komandoknap på Ark2.

Opret i VBA en ny Userform.
Indsæt en textboks på Userformen.
Indsæt en komandoknap (ok) på userformen

Indsæt følgende kode under Userformen:

Private Sub UserForm_Activate()

  With TextBox1
    .Value = Sheets("Ark2").Range("A2").Value
  End With
 
  TextBox1.SetFocus
End Sub

Private Sub CommandButton1_Click()

  Sheets("Ark1").Select
   
  Range("A1").Select
  Selection.EntireRow.Insert
   
  Range("A1").Activate
   
  With ActiveCell
  .Value = TextBox1.Value
  .Offset(0, 2).Value = Date
  End With
   
  Sheets("Ark2").Select
   
  Range("A1").Select
   
  End

End Sub

Indsæt følgende kode i VBA under Ark2:

Private Sub CommandButton1_Click()
  UserForm1.Show
End Sub

-Nu kan du teste din userform ved og trykke på knappen på Ark2.
Teksten i celle A2 på Ark2 kommer ind i textboksen når Userfomen startes.
Ved tryk på komandoknappen på formen indsættes teksten, eller den du skriver i textboxen i celle A1 på Ark1, og der indsættes dato i celle A3.
- Var det lidt i den retning du manglede ???
Avatar billede krohn Praktikant
25. november 2006 - 09:02 #16
Skal vi lukke her, kommer der nogle svar?
Avatar billede krohn Praktikant
14. december 2006 - 22:18 #17
??
Avatar billede svla Mester
15. december 2006 - 17:42 #18
Hej! Prøvede du aldrig mit forslag, eller var det ikke noget du kunne bruge ?????
Avatar billede krohn Praktikant
15. december 2006 - 20:00 #19
Jeg endte med en anden, men jeg vil gerne give point for brugt tid :)
Private Sub CommandButton2_Click()
Worksheets("3").Activate


c = 15
Do Until Worksheets("3").Cells(c, 1) = ""
  c = c + 1
  Loop
Cells(c, 1) = UserForm1!TextBox2.Value



UserForm1!TextBox2.Value = ""

End Sub
Avatar billede svla Mester
16. december 2006 - 17:06 #20
Håber du fik dit problem løst, hvordan det blev løst gør ikke så meget, bare du er tilfreds, og så er der jo mulighed for her på siden og få nogle nye indput, så man kan komme videre med andre ting.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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