09. oktober 2002 - 14:43
Der er
19 kommentarer og 1 løsning
Userform, markro, osv.
Hej Jeg er igang med at lave min første userform ! Nu skal jeg have de data der er indtastet i formen ind i et ark, men hvordan gør jeg det ?? A4 = init. B4 = Dato C4 = 09-11 E4 = 11-13 F4 = 13-16 G4 = Minutter H4 = Opkald via I4 = Afsendte Tilbud J4 = Beholde nu. ord. K4 = Tænker over det Afkrysningsfelterne skal give værdien 1 (C4, E4, F4, J4 og K4) Det skal være sådan at første indtastning stå i række 4, næste i række 5, osv. Jeg oploader lige et billede (øjeblik) ............. Chewie
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
09. oktober 2002 - 14:43
#1
09. oktober 2002 - 14:47
#2
Sig til hvis det er total sort snak ..... det er lidt svært at forklare når jeg ikke har prøvet at arbejde med userform før !!
Slettet bruger
09. oktober 2002 - 15:13
#3
Dette er ikke testet... Men det burde give dig en ide om hvordan det skal foregå.. -------- Private Sub CommandButton1_Click() ActiveSheet.Range("A4") = UserForm1.TextBox1.Value ActiveSheet.Range("B4") = UserForm1.TextBox2.Value If UserForm1.CheckBox1.Value = True Then ActiveSheet.Range("C4") = 1 End If If UserForm1.CheckBox2.Value = True Then ActiveSheet.Range("E4") = 1 End If If UserForm1.CheckBox3.Value = True Then ActiveSheet.Range("F4") = 1 End If ActiveSheet.Range("G4") = UserForm1.TextBox3.Value ActiveSheet.Range("H4") = UserForm1.TextBox4.Value ActiveSheet.Range("I4") = UserForm1.TextBox5.Value If UserForm1.CheckBox4.Value = True Then ActiveSheet.Range("F4") = 1 End If If UserForm1.CheckBox5.Value = True Then ActiveSheet.Range("F4") = 1 End If UserForm1.Hide End Sub ----------------
Slettet bruger
09. oktober 2002 - 15:15
#4
Nogle af cellereferencerne skal vist lige rettes til... :-)
09. oktober 2002 - 15:19
#5
Det havde jeg set :o) Så vidt jeg kan se (ikke vildt haj) vil den næste der bliver indtastet over skrive den forige (række 4)..... der skulle den jo helst ikke, den skulle gerne fortsætte i række 5 osv.
Slettet bruger
09. oktober 2002 - 15:29
#6
Ok, jeg havde lige overset den del... :-) Du skal så lige tilføje dette ---------- Dim nextRow As Integer nextRow = ActiveSheet.UsedRange.Rows.Count + 1 ---------- Og erstatte ActiveSheet.Range("A4") = ... med ActiveSheet.Range(Cells(nextRow, 1), Cells(nextRow, 1) = ... osv....
09. oktober 2002 - 15:33
#7
blackadder >> det ser jo fint ud ..... men i mit forsøg på at prøve makroen løber jeg ud i et andet problem ! Hvordan får jeg startet formen når jeg står i mit ark ??? (jeg har indsat en knap, men hvad er markroen til at starte den)
Slettet bruger
09. oktober 2002 - 15:33
#8
Den forudsætter at der ikke er tekst, tal eller formattering i rækkerne under, da 'UsedRange' er baseret på det brugte område af arket.
09. oktober 2002 - 15:36
#9
Det er OK for der vil aldrig være noget under det område hvor den indsætter
Slettet bruger
09. oktober 2002 - 15:37
#10
Jeg plejer at lave en seperat sub der loader formen. Noget i retningen af dette: ------------- Public Sub LoadForm() Load UserForm1 UserForm1.Show End Sub -------------
09. oktober 2002 - 15:51
#11
Hvis du har lidt mere tid hæver jeg lige pointsne !!!! Formen loader fint frem nu :o) jeg kan indtaste i felterne :o) men der sker intet nå jeg klikker OK (heller ikke når jeg klikker Annuller) Nogle ideer ??
Slettet bruger
09. oktober 2002 - 16:04
#12
Du skal lige kontrollere navnet på den funktion der er tilknyttet din 'OK' knap. Jeg har brugt... Private Sub CommandButton1_Click() Jeg ved ikke om din 'OK' knap hedder det samme... Mht. 'Annuller' knappen skal du indsætte følgende kode --------- UserForm1.Hide Unload UserForm1 ---------
09. oktober 2002 - 16:10
#13
-------------------- Private Sub CommandButton1_Click() Dim nextRow As Integer nextRow = ActiveSheet.UsedRange.Rows.Count + 1 ActiveSheet.Range("A4") = UserForm1.TextBox1.Value ActiveSheet.Range("B4") = UserForm1.TextBox2.Value If UserForm1.CheckBox1.Value = True Then ActiveSheet.Range("C4") = 1 End If If UserForm1.CheckBox2.Value = True Then ActiveSheet.Range("E4") = 1 End If If UserForm1.CheckBox3.Value = True Then ActiveSheet.Range("F4") = 1 End If ActiveSheet.Range("G4") = UserForm1.TextBox3.Value ActiveSheet.Range("H4") = UserForm1.TextBox4.Value ActiveSheet.Range("I4") = UserForm1.TextBox5.Value If UserForm1.CheckBox4.Value = True Then ActiveSheet.Range("J4") = 1 End If If UserForm1.CheckBox5.Value = True Then ActiveSheet.Range("K4") = 1 End If UserForm1.Hide End Sub ----------------- Denne marcro ligger under Ark1 (hedder statistik) -- Min OK knap heddder CommandButton1 under (Name) det er vil nok ik´
09. oktober 2002 - 16:18
#14
blackadder >> det er fyraften for mig håber du er frisk på at fortsætte imorgen :o)
Slettet bruger
09. oktober 2002 - 16:29
#15
Prøv med: ----------- Private Sub CommandButton1_Click() ' OK knap Dim nextRow As Integer nextRow = ActiveSheet.UsedRange.Rows.Count + 2 ' Kolonne A ActiveSheet.Range(Cells(nextRow, 1), Cells(nextRow, 1)) = UserForm1.TextBox1.Value ' Kolonne B ActiveSheet.Range(Cells(nextRow, 2), Cells(nextRow, 2)) = UserForm1.TextBox2.Value ' Kolonne C If UserForm1.CheckBox1.Value = True Then ActiveSheet.Range(Cells(nextRow, 3), Cells(nextRow, 3)) = 1 End If ' Kolonne E If UserForm1.CheckBox2.Value = True Then ActiveSheet.Range(Cells(nextRow, 5), Cells(nextRow, 5)) = 1 End If ' Kolonne F If UserForm1.CheckBox3.Value = True Then ActiveSheet.Range(Cells(nextRow, 6), Cells(nextRow, 6)) = 1 End If ' Kolonne G ActiveSheet.Range(Cells(nextRow, 7), Cells(nextRow, 7)) = UserForm1.TextBox3.Value ' Kolonne H ActiveSheet.Range(Cells(nextRow, 8), Cells(nextRow, 8)) = UserForm1.TextBox4.Value ' Kolonne I ActiveSheet.Range(Cells(nextRow, 9), Cells(nextRow, 9)) = UserForm1.TextBox5.Value ' Kolonne J If UserForm1.CheckBox4.Value = True Then ActiveSheet.Range(Cells(nextRow, 10), Cells(nextRow, 10)) = 1 End If ' Kolonne K If UserForm1.CheckBox5.Value = True Then ActiveSheet.Range(Cells(nextRow, 11), Cells(nextRow, 11)) = 1 End If UserForm1.Hide End Sub --------------
Slettet bruger
09. oktober 2002 - 16:41
#16
Hvis du gerne vil have den nyeste række øverst, kan du bruge denne version istedet for. --------- Rows("4:4").Insert Shift:=xlDown ActiveSheet.Range("A4") = UserForm1.TextBox1.Value ActiveSheet.Range("B4") = UserForm1.TextBox2.Value If UserForm1.CheckBox1.Value = True Then ActiveSheet.Range("C4") = 1 End If If UserForm1.CheckBox2.Value = True Then ActiveSheet.Range("E4") = 1 End If If UserForm1.CheckBox3.Value = True Then ActiveSheet.Range("F4") = 1 End If ActiveSheet.Range("G4") = UserForm1.TextBox3.Value ActiveSheet.Range("H4") = UserForm1.TextBox4.Value ActiveSheet.Range("I4") = UserForm1.TextBox5.Value If UserForm1.CheckBox4.Value = True Then ActiveSheet.Range("J4") = 1 End If If UserForm1.CheckBox5.Value = True Then ActiveSheet.Range("K4") = 1 End If UserForm1.Hide -------------- Om ikke andet gør den koden en smule simplere...
09. oktober 2002 - 18:47
#17
Kunne ikke lige dy mig - her er en anden måde: (dog ikke testet) Const sR As String = "4" Dim lCount As Long Dim rChb As Range Dim rTxt As Range With ActiveSheet Set rChb = .Range("C" & sR, "E" & sR, "F" & sR, "J" & sR, "K" & sR) Set rTxt = .Range("A" & sR, "B" & sR, "G" & sR, "H" & sR, "I" & sR) .Rows(sR & ":" & sR).Insert Shift:=xlDown For lCount = 1 To 5 If Me.Controls("CheckBox" & CStr(lCount)).Value Then rChb.Areas(lCount).Value = 1 End If rTxt.Areas(lCount).Value = Me.Controls("TextBox" & CStr(lCount)).Value Next lCount Me.Hide End With
09. oktober 2002 - 18:48
#18
"Me.Hide" skal måske nok udenfor "End With"
10. oktober 2002 - 10:14
#20
Private Sub CommandButton1_Click() ' OK knap Rows("4:4").Insert Shift:=xlDown ActiveSheet.Range("A4") = UserForm1.TextBox10.Value ActiveSheet.Range("B4") = UserForm1.TextBox1.Value If UserForm1.CheckBox1.Value = True Then ActiveSheet.Range("C4") = 1 End If If UserForm1.CheckBox3.Value = True Then ActiveSheet.Range("E4") = 1 End If If UserForm1.CheckBox2.Value = True Then ActiveSheet.Range("F4") = 1 End If ActiveSheet.Range("G4") = UserForm1.TextBox9.Value ActiveSheet.Range("H4") = UserForm1.TextBox8.Value ActiveSheet.Range("I4") = UserForm1.TextBox7.Value If UserForm1.CheckBox4.Value = True Then ActiveSheet.Range("J4") = 1 End If If UserForm1.CheckBox7.Value = True Then ActiveSheet.Range("K4") = 1 End If UserForm1.Hide End Sub ------------------------ Private Sub CommandButton2_Click() UserForm1.Hide Unload UserForm1 End Sub --------------------------------------- Så lykkes det ..... som i nok kan se var det Klassisk begynder fejl (nummerne på checkbox og textbox) Mange tak for hjælpen meeeeen .... jeg er slet ikke færdig :o) opretter nyt spm :o)
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig