Avatar billede krohn Praktikant
15. oktober 2006 - 00:01 Der er 20 kommentarer og
1 løsning

hjælp til opslag

Jeg har en form:
Private Sub CommandButton1_Click()
ActiveWorkbook.Sheets("Samle").Activate
Cells(7, 8) = Val(Me.TextBox1)
UserForm1!TextBox1.Value = "" ' sletter værdierne i tekstboksene
End Sub

Den sætter jo en værdi ind i H7 på arket ”samle”
Jeg vil gerne at den kan slå op på arket ”1” kolone E celle 6 til 2000 med dags dato som refrence og så sætte H7 værdien ind i ark ”1” kolone F celle 6 til 2000.
Den værdi der sættes ind skal ”gemmes” så når man dagen efter sætter en ny værdi i H7 via userform /Commandbutton1 så kommer den ind udfor den nye dato.
F.eks 13-10-06 i kolone E og 10 i kolone F.... 14-10-06 i kolone E og 11 i kolone F
Avatar billede kabbak Professor
15. oktober 2006 - 00:39 #1
Private Sub CommandButton1_Click()
    Dim Dato As Variant, I As Long
    Dato = Sheets(1).Range("E6:E2000")
    ActiveWorkbook.Sheets("Samle").Cells(7, 8) = Val(Me.TextBox1)
    UserForm1!TextBox1.Value = ""    ' sletter værdierne i tekstboksene
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
          Sheets(1).Cells(I + 5, "F") = Sheets("Samle").Cells(7, 8)
            Exit Sub
        End If
    Next
End Sub
Avatar billede krohn Praktikant
15. oktober 2006 - 01:02 #2
Super, hvad hvis jeg vil have den til at gøre det på flere ark (2) og (3)
Hvis jeg Sætter denne ind
ActiveWorkbook.Sheets("Samle").Cells(8, 8) = Val(Me.TextBox2)
ActiveWorkbook.Sheets("Samle").Cells(9, 8) = Val(Me.TextBox3)
og denne
Sheets(2).Cells(I + 5, "F") = Sheets("Samle").Cells(8, 8)
Sheets(3).Cells(I + 5, "F") = Sheets("Samle").Cells(9, 8)
Så virker det ikke, har det noget med denne at gøre
Dato = Sheets(1).Range("E6:E2000")
Alle 3 ark er ens
Avatar billede krohn Praktikant
15. oktober 2006 - 04:29 #3
Jeg har lige en til J
I kolonerene M og N  bliver værdierne lagt sammen nedover M6+M7, M7+M8
Det er ikke hver dag man skal  sætte nye værdier ind, og så skal sammenlægningen fortsætte, men jeg har prøvet med denne form.
Private Sub CommandButton4_Click()
Dim Dato As Variant, I As Long
    Dato = Sheets(1).Range("d6:d2000")
    ActiveWorkbook.Sheets("Samle").Cells(24, 1) = Val(Me.TextBox7)
    ActiveWorkbook.Sheets("Samle").Cells(24, 2) = Val(Me.TextBox8)
    UserForm1!TextBox7.Value = ""    ' sletter værdierne i tekstboksene
    UserForm1!TextBox8.Value = ""    ' sletter værdierne i tekstboksene
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
          Sheets(1).Cells(I + 5, "M") = Sheets("Samle").Cells(24, 1)
          Sheets(1).Cells(I + 5, "N") = Sheets("Samle").Cells(24, 2)
            Exit Sub
        End If
    Next
End Sub
Den sætter ok det jeg ønsker ind, men hvad sker der når jeg kun har f.eks værdien 4 i (24,1) og ikke noget i (24,2), vil den så nulstille cellen i kolone N? Det er meningen at hvis f.eks textbox8 er tom skal der ikke overføres noget til kolone N. Men hvis værdien i textbox8 er 0 eller mere så skal den værdi over.
Det samme gælder også for textbox7
Kan man det eller skal jeg have gang i nogle checkboxe?
Avatar billede kabbak Professor
15. oktober 2006 - 13:34 #4
Private Sub CommandButton4_Click()
Dim Dato As Variant, I As Long
    Dato = Sheets(1).Range("d6:d2000")
    ActiveWorkbook.Sheets("Samle").Cells(24, 1) = Val(Me.TextBox7)
    ActiveWorkbook.Sheets("Samle").Cells(24, 2) = Val(Me.TextBox8)
    UserForm1!TextBox7.Value = ""    ' sletter værdierne i tekstboksene
    UserForm1!TextBox8.Value = ""    ' sletter værdierne i tekstboksene
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
          if Sheets("Samle").Cells(24, 1)> 0 then Sheets(1).Cells(I + 5, "M") = Sheets("Samle").Cells(24, 1)
        if  Sheets("Samle").Cells(24, 2)> 0 then  Sheets(1).Cells(I + 5, "N") = Sheets("Samle").Cells(24, 2)
            Exit Sub
        End If
    Next
End Sub
Avatar billede krohn Praktikant
15. oktober 2006 - 17:26 #5
Ok men hvad med >0 jeg skal kunne nulstille til værdien 0 men kun når jeg vil. Kand det være noget med at den ikke gør det hvis værdien i textbox er blank.
Det er til at bogføre repration og udskiftnong ad dele på en pumpe, så jeg kan se hvormange timer pumpen har kørt, og når det sættes en ny del i skal jeg kunne nulstille den, det kan i nogle tilfælde være at den del der kommer i har gået x antal timer.
Avatar billede kabbak Professor
15. oktober 2006 - 23:24 #6
Private Sub CommandButton4_Click()
Dim Dato As Variant, I As Long
    Dato = Sheets(1).Range("d6:d2000")
    ActiveWorkbook.Sheets("Samle").Cells(24, 1) = Val(Me.TextBox7)
    ActiveWorkbook.Sheets("Samle").Cells(24, 2) = Val(Me.TextBox8)
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
          If UserForm1!TextBox7.Value <> "" Then Sheets(1).Cells(I + 5, "M") = Sheets("Samle").Cells(24, 1)
        If UserForm1!TextBox8.Value <> "" Then Sheets(1).Cells(I + 5, "N") = Sheets("Samle").Cells(24, 2)
            Exit Sub
        End If
    Next
    UserForm1!TextBox7.Value = ""    ' sletter værdierne i tekstboksene
    UserForm1!TextBox8.Value = ""    ' sletter værdierne i tekstboksene

End Sub
Avatar billede krohn Praktikant
15. oktober 2006 - 23:59 #7
Ok prøver det.
Har jo nok igen kastet mig selv ud på lidt dybt vand..
Har købe programering med vba i excel, og den hjælper noget, men jeg kan jo godt se jeg har langt igen.
Avatar billede krohn Praktikant
16. oktober 2006 - 08:55 #8
Jeg har nu skrevet den så den passer med alle de textboxe jeg har, og har får skrevet til andre ark. Den skriver ok til ark ("rep") men der sker ikke noget på (1)?
Det er sikkert mig der har fucket noget op, men hvad?
Her er subben
Private Sub CommandButton4_Click()
Dim Dato As Variant, I As Long
    Dato = Sheets(1).Range("d6:d2000")

    ActiveWorkbook.Sheets("rep").Cells(3, 2) = Val(Me.TextBox7)
    ActiveWorkbook.Sheets("rep").Cells(3, 3) = Val(Me.TextBox8)
    ActiveWorkbook.Sheets("rep").Cells(3, 4) = Val(Me.TextBox9)
    ActiveWorkbook.Sheets("rep").Cells(3, 5) = Val(Me.TextBox10)
    ActiveWorkbook.Sheets("rep").Cells(3, 6) = Val(Me.TextBox11)
    ActiveWorkbook.Sheets("rep").Cells(3, 7) = Val(Me.TextBox12)
    ActiveWorkbook.Sheets("rep").Cells(3, 8) = Val(Me.TextBox13)
    ActiveWorkbook.Sheets("rep").Cells(3, 9) = Val(Me.TextBox14)
    ActiveWorkbook.Sheets("rep").Cells(3, 10) = Val(Me.TextBox15)
    ActiveWorkbook.Sheets("rep").Cells(3, 11) = Val(Me.TextBox16)
    ActiveWorkbook.Sheets("rep").Cells(3, 32) = Val(Me.TextBox17)

    ActiveWorkbook.Sheets("rep").Cells(3, 12) = Val(Me.TextBox18)
    ActiveWorkbook.Sheets("rep").Cells(3, 13) = Val(Me.TextBox19)
    ActiveWorkbook.Sheets("rep").Cells(3, 14) = Val(Me.TextBox20)
    ActiveWorkbook.Sheets("rep").Cells(3, 15) = Val(Me.TextBox21)
    ActiveWorkbook.Sheets("rep").Cells(3, 16) = Val(Me.TextBox22)
    ActiveWorkbook.Sheets("rep").Cells(3, 17) = Val(Me.TextBox23)
    ActiveWorkbook.Sheets("rep").Cells(3, 18) = Val(Me.TextBox24)
    ActiveWorkbook.Sheets("rep").Cells(3, 19) = Val(Me.TextBox25)
    ActiveWorkbook.Sheets("rep").Cells(3, 20) = Val(Me.TextBox26)
    ActiveWorkbook.Sheets("rep").Cells(3, 21) = Val(Me.TextBox27)
 
    ActiveWorkbook.Sheets("rep").Cells(3, 22) = Val(Me.TextBox28)
    ActiveWorkbook.Sheets("rep").Cells(3, 23) = Val(Me.TextBox29)
    ActiveWorkbook.Sheets("rep").Cells(3, 24) = Val(Me.TextBox30)
    ActiveWorkbook.Sheets("rep").Cells(3, 25) = Val(Me.TextBox31)
    ActiveWorkbook.Sheets("rep").Cells(3, 26) = Val(Me.TextBox32)
    ActiveWorkbook.Sheets("rep").Cells(3, 27) = Val(Me.TextBox33)
    ActiveWorkbook.Sheets("rep").Cells(3, 28) = Val(Me.TextBox34)
    ActiveWorkbook.Sheets("rep").Cells(3, 29) = Val(Me.TextBox35)
    ActiveWorkbook.Sheets("rep").Cells(3, 30) = Val(Me.TextBox36)
    ActiveWorkbook.Sheets("rep").Cells(3, 31) = Val(Me.TextBox37)
   
   
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
          If UserForm2!TextBox7.Value <> "" Then Sheets(1).Cells(I + 5, "H") = Sheets("rep").Cells(3, 2)
          If UserForm2!TextBox8.Value <> "" Then Sheets(1).Cells(I + 5, "I") = Sheets("rep").Cells(3, 3)
          If UserForm2!TextBox9.Value <> "" Then Sheets(1).Cells(I + 5, "J") = Sheets("rep").Cells(3, 4)
          If UserForm2!TextBox10.Value <> "" Then Sheets(1).Cells(I + 5, "K") = Sheets("rep").Cells(3, 5)
          If UserForm2!TextBox11.Value <> "" Then Sheets(1).Cells(I + 5, "L") = Sheets("rep").Cells(3, 6)
          If UserForm2!TextBox12.Value <> "" Then Sheets(1).Cells(I + 5, "M") = Sheets("rep").Cells(3, 7)
          If UserForm2!TextBox13.Value <> "" Then Sheets(1).Cells(I + 5, "N") = Sheets("rep").Cells(3, 8)
          If UserForm2!TextBox14.Value <> "" Then Sheets(1).Cells(I + 5, "O") = Sheets("rep").Cells(3, 9)
          If UserForm2!TextBox15.Value <> "" Then Sheets(1).Cells(I + 5, "P") = Sheets("rep").Cells(3, 10)
          If UserForm2!TextBox16.Value <> "" Then Sheets(1).Cells(I + 5, "Q") = Sheets("rep").Cells(3, 11)
          If UserForm2!TextBox17.Value <> "" Then Sheets(1).Cells(I + 5, "AL") = Sheets("rep").Cells(3, 32)
         

          If UserForm2!TextBox18.Value <> "" Then Sheets(1).Cells(I + 5, "R") = Sheets("rep").Cells(3, 12)
          If UserForm2!TextBox19.Value <> "" Then Sheets(1).Cells(I + 5, "S") = Sheets("rep").Cells(3, 13)
          If UserForm2!TextBox20.Value <> "" Then Sheets(1).Cells(I + 5, "T") = Sheets("rep").Cells(3, 14)
          If UserForm2!TextBox21.Value <> "" Then Sheets(1).Cells(I + 5, "U") = Sheets("rep").Cells(3, 15)
          If UserForm2!TextBox22.Value <> "" Then Sheets(1).Cells(I + 5, "V") = Sheets("rep").Cells(3, 16)
          If UserForm2!TextBox23.Value <> "" Then Sheets(1).Cells(I + 5, "X") = Sheets("rep").Cells(3, 17)
          If UserForm2!TextBox24.Value <> "" Then Sheets(1).Cells(I + 5, "Y") = Sheets("rep").Cells(3, 18)
          If UserForm2!TextBox25.Value <> "" Then Sheets(1).Cells(I + 5, "Z") = Sheets("rep").Cells(3, 19)
          If UserForm2!TextBox26.Value <> "" Then Sheets(1).Cells(I + 5, "AA") = Sheets("rep").Cells(3, 20)
          If UserForm2!TextBox27.Value <> "" Then Sheets(1).Cells(I + 5, "AB") = Sheets("rep").Cells(3, 21)

          If UserForm2!TextBox28.Value <> "" Then Sheets(1).Cells(I + 5, "AC") = Sheets("rep").Cells(3, 22)
          If UserForm2!TextBox29.Value <> "" Then Sheets(1).Cells(I + 5, "AD") = Sheets("rep").Cells(3, 23)
          If UserForm2!TextBox30.Value <> "" Then Sheets(1).Cells(I + 5, "AE") = Sheets("rep").Cells(3, 24)
          If UserForm2!TextBox31.Value <> "" Then Sheets(1).Cells(I + 5, "AF") = Sheets("rep").Cells(3, 25)
          If UserForm2!TextBox32.Value <> "" Then Sheets(1).Cells(I + 5, "AG") = Sheets("rep").Cells(3, 26)
          If UserForm2!TextBox33.Value <> "" Then Sheets(1).Cells(I + 5, "AH") = Sheets("rep").Cells(3, 27)
          If UserForm2!TextBox34.Value <> "" Then Sheets(1).Cells(I + 5, "AI") = Sheets("rep").Cells(3, 28)
          If UserForm2!TextBox35.Value <> "" Then Sheets(1).Cells(I + 5, "AJ") = Sheets("rep").Cells(3, 29)
          If UserForm2!TextBox36.Value <> "" Then Sheets(1).Cells(I + 5, "AK") = Sheets("rep").Cells(3, 30)
          If UserForm2!TextBox37.Value <> "" Then Sheets(1).Cells(I + 5, "AL") = Sheets("rep").Cells(3, 31)
            Exit Sub
        End If
    Next

End Sub
Avatar billede kabbak Professor
16. oktober 2006 - 20:08 #9
Her er din kode lidt forkortet


ret 37 i
For C = 7 To 37

til det sidste nummer du har i tekstboks

Private Sub CommandButton4_Click()
    Dim Dato As Variant, I As Long, C As Long, Temp As String, Tb As Object

    For C = 7 To 37
        Sheets("rep").Cells(3, C - 5) = Val(Me.Controls("TextBox" & C).Text)
    Next
   
    Dato = Sheets(1).Range("d6:d2000")
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
            For C = 7 To 37
                If Me.Controls("TextBox" & C).Text <> "" Then Sheets(1).Cells(I + 5, C) = Sheets("rep").Cells(3, C - 5)
            Next
            Exit Sub
        End If
    Next

End Sub
Avatar billede krohn Praktikant
16. oktober 2006 - 20:54 #10
Den sætter ok ind i ("rep") men der kommer ikke noget i (1)
I ("rep") skal den i kolonne B til AF row 3
I (1) er det kolone H til AL
Avatar billede kabbak Professor
16. oktober 2006 - 21:13 #11
Virker fint her, det er ikke sådan at du tømmer tekstboksene inden koden er færdig ??
Avatar billede krohn Praktikant
16. oktober 2006 - 22:52 #12
Nej jeg brugte kun den kode du har sat her til mig, og prøvede at sætte værdien 33 i textbox 7 og 8.
Den førte 33 til ("rep") cells(3,2) og Cells(3,3) men ikke noget til (1) kolone H og I
Den indeholder textboxe 7 til 37
Avatar billede kabbak Professor
16. oktober 2006 - 22:58 #13
Har du husket at have datoer skrevet I ark1 fra D6 til D2000
Avatar billede krohn Praktikant
16. oktober 2006 - 23:07 #14
Ja der er datoer i D7 til D372 fra 1/1-YY og 1 år frem.
Har prøvet at ændre det til D7 til D372, men stadig det samme.
Jeg kan godt sende det til dig hvis det er.
Avatar billede kabbak Professor
16. oktober 2006 - 23:08 #15
ok
kabbak snabela tiscali dot dk
Avatar billede krohn Praktikant
16. oktober 2006 - 23:31 #16
Sendt
Avatar billede kabbak Professor
16. oktober 2006 - 23:44 #17
prøv denne, der er forskel på sheet(1) og sheet("1")

Private Sub CommandButton4_Click()


    Dim Dato As Variant, I As Long, C As Long, Temp As String, Tb As Object

    For C = 7 To 37
        Sheets("rep").Cells(3, C - 5) = Val(Me.Controls("TextBox" & C).Text)
    Next
   
    Dato = Sheets("1").Range("d7:d372")
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
            For C = 7 To 37
                If Me.Controls("TextBox" & C).Text <> "" Then Sheets("1").Cells(I + 5, C) = Sheets("rep").Cells(3, C - 5)
            Next
            Exit Sub
        End If
    Next


End Sub
Avatar billede kabbak Professor
16. oktober 2006 - 23:46 #18
Du kan bruge den samme kode for de andte ark,når du har rettet
  For C = 7 To 37
men husk også at rette

C - 5
Avatar billede kabbak Professor
17. oktober 2006 - 00:17 #19
Her er de 3 koder og nu er de testet ;-))


Private Sub CommandButton4_Click()

    Dim Dato As Variant, I As Long, C As Long, Temp As String, Tb As Object

    For C = 7 To 37
        Sheets("rep").Cells(3, C - 5) = Val(Me.Controls("TextBox" & C).Text)
    Next

    Dato = Sheets("1").Range("d7:d372")
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
            For C = 7 To 37
                If Me.Controls("TextBox" & C).Text <> "" Then Sheets("1").Cells(I + 5, C + 1) = Sheets("rep").Cells(3, C - 5)
            Next
            Exit Sub
        End If
    Next


End Sub

Private Sub CommandButton5_Click()
    Dim Dato As Variant, I As Long, C As Long, Temp As String, Tb As Object

    For C = 38 To 68
        Sheets("rep").Cells(4, C - 36) = Val(Me.Controls("TextBox" & C).Text)
    Next

    Dato = Sheets("2").Range("d7:d372")
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
            For C = 38 To 68
                If Me.Controls("TextBox" & C).Text <> "" Then Sheets("2").Cells(I + 5, C - 30) = Sheets("rep").Cells(4, C - 36)
            Next
            Exit Sub
        End If
    Next
End Sub

Private Sub CommandButton6_Click()
    Dim Dato As Variant, I As Long, C As Long, Temp As String, Tb As Object

    For C = 69 To 99
        Sheets("rep").Cells(5, C - 67) = Val(Me.Controls("TextBox" & C).Text)
    Next

    Dato = Sheets("3").Range("d7:d372")
    For I = 1 To UBound(Dato)
        If Dato(I, 1) = Date Then
            For C = 69 To 99
                If Me.Controls("TextBox" & C).Text <> "" Then Sheets("3").Cells(I + 5, C - 61) = Sheets("rep").Cells(5, C - 67)
            Next
            Exit Sub
        End If
    Next


End Sub
Avatar billede krohn Praktikant
17. oktober 2006 - 01:09 #20
Super. lægger du et svar
Avatar billede kabbak Professor
17. oktober 2006 - 08:02 #21
et svar ;-))
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