Få in värden på korrekt rad

JenniferN

New Member
Joined
Dec 19, 2007
Messages
44
Hej,

Så skönt att få kunna skriva på svenska. Jag är visserligen hygglig på engelska men ändå. Dessutom är min excel version på svenska vilket gjort att man hela tiden måste översätta en del där också.

Jag har beskrivit mitt problem i följande tråd, men inte lyckats få nåt svar som jag lyckats få till
http://www.mrexcel.com/forum/showthread.php?t=296576

Kanske bra att nämna att jag är rookie på VBA och excel så jag tar hellre en utförlig förklaring än en kort. :-)

Kan ju ändå beskriva problemet här också på svenska lite snabbt... Har en arbetsbok som innehåller två knappar, en Lägg till och en Hitta. När jag väljer Lägg till öppnas ett formulär där jag lägger in information i olika textboxar och listboxar. Infon läggs in i en annan arbetsbok när jag klickar på en OK-knapp i formuläret. Dessutom ges ett unikt ID som visas upp i ett meddelande och hamnar i kolumn A. Det är min Hitta funktion jag har problem med. När jag klickar på Hitta-knappen öppnas ett formulär med en listbox med flera kolumner. Ställer mig på raden jag vill ha och klickar på OK-knapp. Får du upp all tidigare inlagd information i mitt första formulär. Jag vill nu kunna ändra informationen och sen ska det sparas på rätt radnr igen. Jag har försökt att gå via ID nr (antar i joförsig att själva excels radnummer skulle gå minst lika bra eller kanske t o m bättre), men lyckas inte få det att funka. Problemet är säkerligen i CurrentRow-delen. Någon som vet hur man får den att funka för en sån här sak är väl inte en omöjlighet eller?

Code:
Private Sub OKButton_Click()
    Dim NewRow As String
    Dim NewNumber As String
    Dim CurrentRow As String
        '---------------------------------------------------
    Application.Workbooks.Open ("C:\Documents and Settings\nyberbea\Skrivbord\Defektdata1.xls")
    Sheets("Systemtest").Activate
    With Worksheets("Systemtest")
       If IDBox = "" Then
        '-----------------------------------------------
        '- next row
        NewRow = .Range("A65536").End(xlUp).Row + 1
        '-----------------------------------------------
        '- add 1 to previous count
        NewNumber = .Cells(NewRow - 1, 1).Value + 1
        '-----------------------------------------------
        '- put values to worksheet
        .Cells(NewRow, 1).Value = NewNumber
        .Cells(NewRow, 2).Value = DateBox
        .Cells(NewRow, 3).Value = StatusBox
        .Cells(NewRow, 4).Value = ClosingBox
        .Cells(NewRow, 5).Value = HeadingBox
        .Cells(NewRow, 6).Value = SummaryBox
        .Cells(NewRow, 7).Value = CommentsBox
        .Cells(NewRow, 8).Value = TestspecBox
        .Cells(NewRow, 9).Value = SeverityBox
        .Cells(NewRow, 10).Value = EnvBox
        .Cells(NewRow, 11).Value = VersionBox
        .Cells(NewRow, 12).Value = SubsysBox
        .Cells(NewRow, 13).Value = FormBox
        .Cells(NewRow, 14).Value = TesterBox
        .Cells(NewRow, 15).Value = ResponsibleBox
        .Cells(NewRow, 16).Value = FixedVerBox
        '-----------------------------------------------
    
    MsgBox "Unique id: " & NewNumber
    
    Else
    CurrentRow = IDBox
     '-----------------------------------------------
        '- current row
        'CurrentRow = .Range("A65536").Value("IDBox")
        '-----------------------------------------------

        
    '- update values to worksheet
        
        .Cells(CurrentRow, 2).Value = DateBox
        .Cells(CurrentRow, 3).Value = StatusBox
        .Cells(CurrentRow, 4).Value = ClosingBox
        .Cells(CurrentRow, 5).Value = HeadingBox
        .Cells(CurrentRow, 6).Value = SummaryBox
        .Cells(CurrentRow, 7).Value = CommentsBox
        .Cells(CurrentRow, 8).Value = TestspecBox
        .Cells(CurrentRow, 9).Value = SeverityBox
        .Cells(CurrentRow, 10).Value = EnvBox
        .Cells(CurrentRow, 11).Value = VersionBox
        .Cells(CurrentRow, 12).Value = SubsysBox
        .Cells(CurrentRow, 13).Value = FormBox
        .Cells(CurrentRow, 14).Value = TesterBox
        .Cells(CurrentRow, 15).Value = ResponsibleBox
        .Cells(CurrentRow, 16).Value = FixedVerBox
        
       
        MsgBox "The following Id has been updated: " & CurrentRow
        
        End If
        ActiveWorkbook.Save
        ActiveWorkbook.Close

    'Clear the controls for the next entry
    IDBox.Text = ""
    DateBox.Text = ""
    StatusBox.Text = ""
    HeadingBox.Text = ""
    SummaryBox.Text = ""
    CommentsBox.Text = ""
    SeverityBox.Text = ""
    EnvBox.Text = ""
    VersionBox.Text = ""
    SubsysBox.Text = ""
    FormBox.Text = ""
    TestspecBox.Text = ""
    TesterBox.Text = ""
    ResponsibleBox.Text = ""
    FixedVerBox.Text = ""
    ClosingBox.Text = ""
        
    OptionUnknown = True
    StatusBox.SetFocus

End With
End Sub
 

Excel Facts

Workdays for a market open Mon, Wed, Friday?
Yes! Use "0101011" for the weekend argument in NETWORKDAYS.INTL or WORKDAY.INTL. The 7 digits start on Monday. 1 means it is a weekend.
Hej,

Tyvärr kan jag inte hjälpa dig men jag följer med spänningen utveklingen av tråden eftersom jag troligen kommer stå inför samma problem snart med ett litet projekt som jag arbetar på.
Min erfarenhet från den här forumdelen är att "Fairwinds" snart kommer och löser ditt problem ;)
 
Upvote 0
Njae...;)

Det är lite för komplex för mig att sätta mig in i detta. Koden är ganska omfattande och jag kan ju inte prova med dina sökvägar eller se dina formulär.

Jag har bett Brian att ta en ytterligare titt på din fråga så får vi se om han har tid och möjlighet.
 
Upvote 0
Ärligt talat, så tror jag inte det är så komplicerat, men eftersom jag är total novis på det här så försvårar det en hel del. :laugh: Dom exempel jag sett som gör i princip samma sak som jag vill har en egen knapp när saker ska uppdateras medan min lösning har en knapp för både helt ny data samt uppdatering av tidigare insatt data. BrianB's exempel är bra, men jag lyckas ändå inte få det att funka. Dessutom har han en del i initialize event som jag inte har och med min lösning (ickefungerande än så länge, men ändå...) vet jag inte om det behövs heller.
 
Upvote 0
Hm, vill bara delge vad jag kommit fram till ang. min applikation. Eftersom jag ha sisådär 10-15 användare hoppades jag kunna använda en delad arbetsbok i excel för att lösa uppgiften och låta många användare vara aktiva samtidigt. Detta har inte alls fungerat bra och jag har nu tvingats ta bort delningen vilket innebär att användarna snällt måste vänta på varandra för att använda arbetsboken. Ska nu göra ett försök med Access (som jag aldrig någonsin använt) och se vad jag kan åstadkomma där. Min fråga som denna tråd gällde kanske därmed inte är aktuell för mig längre och kräver ingen mer ansträngning. Vet idag inte hur Access funkar, men uppstår samma fråga igen får jag återkomma.

Tack ändå

/J
 
Upvote 0
Jag tror du är på rätt väg. Med många användare är en Access databas en mycket stabilare lösning.

Om du behöver hjälp så finns dett ju ett Access forum här också med flera mycket duktiga personer.

Lycka till!
 
Upvote 0

Forum statistics

Threads
1,223,277
Messages
6,171,149
Members
452,382
Latest member
RonChand

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top