Avatar billede jakor Nybegynder
30. marts 2004 - 12:21 Der er 16 kommentarer og
1 løsning

Opg. i VBA_2

Jeg sidder helt fast i opg 2. Jeg tror det er noget med nogle løkker men jeg kan simpelthen ikke få det til at virke.
hyperlinket til opgaven:
http://www.sam.sdu.dk/undervis/85435.F04/obli1_2004/obli_2004.html
Jeg håber at der er nogle der kan hjælpe mig, jeg har siddet med opgaven i 4 timer nu og er stadigvæk ikke kommet videre.
Mvh. Jakor
Avatar billede jakor Nybegynder
30. marts 2004 - 12:37 #1
Vi sidder 20 studerende, og kan ikke komme videre.
Avatar billede martin_moth Mester
30. marts 2004 - 13:09 #2
Stakkels jer 20!

Har I ikke en lære der kan hjælpe?

Nå - vis den kode I er nået frem til, og konkretiser hvad det er I ikke kan finde ud af. Der er jo mange emner i spørgsmålet, hvad er det lige præcis der volder problemerne?
Avatar billede martin_moth Mester
30. marts 2004 - 13:13 #3
Nå - nu forstår jeg - det er jo det SAMFUNDSVIDENSKABELIGE fakultet som I alle 20 hører under - det forklarer at I allesammen sidder fuldstændigt fast..

(he he - sorry, kunne ikke lade være - jeg selv kommer naturligvis fra den naturvidenskabelige retning ;o)

Spøg til side - opgaven er ret præcist formuleret, så det skulle da være til at gå til. Men som sagt, fortæl præcis hvad der volder problemerne, og hvad problemerne er...
Avatar billede jakor Nybegynder
30. marts 2004 - 13:22 #4
Hej Martin

Det der volder problemer er:

at få hver effekt omskrevet til infomationerne således at de kun optager en linie. Ellers giv dit bud på starten af opgave 2 og ...3
Vi ved vi skal anvende dobbelt løkker mm. men ikke i hele programmeringen.

***har ikke nogen lærer der kan hjælpe og vores instruktor er håbløs!

Mvh. Jakor
Avatar billede martin_moth Mester
30. marts 2004 - 13:37 #5
Et eksempel:

I celle A1 står der "hej"
I celle A2 står der "med"
I celle A3 står der "dig"

Det skal læses ind i en variabel (EEN linie) med navn strEnLinie

Det gøres således:

    Dim i As Long
    Dim strEnLinie As String
    For i = 1 To 3
      strEnLinie = strEnLinie & ActiveSheet.Cells(i, 1).Value
    Next i
    MsgBox "strEnLinie indeholder nu : " & strEnLinie

Nu står der "vidergående edb", så I har vel kendskab til VBA og løkker og variabler osv. på forhånd?
Avatar billede martin_moth Mester
30. marts 2004 - 13:46 #6
Skal I have mere hjælp - eller har I et bud på hvordan det skal løses nu?

Det er noget med at tjekke på regnr, og så længe det er uændret, så læser I data ind på samme linie. Når regnr ændres, starter I forfra - dermed to løkker...
Avatar billede jakor Nybegynder
30. marts 2004 - 14:00 #7
Jo det med de to løkker havde jeg fundet ud af, det er mere hvordan man laver dem så det virker. Jeg vil prøve ad, men hvis du gider så må du gerne komme med en mere uddybende kode.


Mvh. jakor
Avatar billede martin_moth Mester
30. marts 2004 - 14:27 #8
Det er altså helt logisk - gå 2 m tilbage og se på det igen. Så vil du kunne se, at følgende kan være en fornuftig løsning - og her bruger jeg faktisk kun EEN løkke. Men du kan sagtens lave en løsning med to løkker:

1. Start med øverste linie.
2. Læs regnr.
3. Sæt de følgende linier sammen til een linie, indtil der kommer en nyt regnr.
4. Fortsæt med dette til der ikke er flere rækker...

i pseudokode:

Do while i <= antalRækker
  læs regnr for række i
  læs regnr for række i + 1
  if regnr for række i = regnr for række i + 1
    strEnLinie = strEnLinie + øvrige data
  else
    strEnLinie = strEnLinie + øvrige data
    gem strEnLinie hvor den nu skal gemmes
    strEnLinie = ""
  end if
  i = i + 1
next i

Det er bare EN måde - find selv på en anden, hvis du ikke kan lide denne...
Avatar billede martin_moth Mester
30. marts 2004 - 14:28 #9
Sidder du fast, så vis din kode
Avatar billede jakor Nybegynder
30. marts 2004 - 14:34 #10
Tak for det, men vi har fundet ud af det nu. Det er pænt af dig at du gider at bruge tid på os.
Mvh. jakor
Avatar billede martin_moth Mester
30. marts 2004 - 14:36 #11
svar
Avatar billede martin_moth Mester
30. marts 2004 - 14:36 #12
Husk at lukke
Avatar billede jakor Nybegynder
30. marts 2004 - 14:40 #13
Hvad mener du med at husk at lukke? eller svar?
Avatar billede martin_moth Mester
30. marts 2004 - 14:41 #14
Du havde vel en ide med at uddele points?

Accepter, og tildel de antal points du mener jeg skal have, if any...
Avatar billede jakor Nybegynder
30. marts 2004 - 14:46 #15
Så skulle det vis være på plads. Skriv hvis du ikke fik pointene.
Avatar billede majj Nybegynder
30. marts 2004 - 16:39 #16
En af de andre 20 har lavet denne stump kode, men sidder nu fast. Er du sød at hjælpe mhv "range(???)", og men at få det til at stå umiddelbart efter hinanden i arket Database? Hvis denne kodestump er helt håbløs, kunne du så måske vise mig en anden metode?
  Sub Clean_Database()

ActiveWorkbook.Worksheets.Add
ActiveSheet.Name = "Database"

    Nrækker = Worksheets("old_database").UsedRange.Rows.Count

    For i = 1 To Nrækker
        nummer = Worksheets("old_database").Range("B5").Offset(i, 0)
        Fnummer = Worksheets("old_database").Range("B5").Offset(i - 1, 0)
            If nummer <> Fnummer Then
            Worksheets("Database").Range("A2").Offset(i, 0) = nummer
        underkategori = Worksheets("old_database").Range("C5").Offset(i, 0)
            Worksheets("Database").Range("B2").Offset(i, 0) = underkategori
        placering = Worksheets("old_database").Range("D5").Offset(i, 0)
            Worksheets("Database").Range("C2").Offset(i, 0) = placering
        sprog = Worksheets("old_database").Range("E5").Offset(i, 0)
            Worksheets("Database").Range("D2").Offset(i, 0) = sprog
        ejer = Worksheets("old_database").Range("F5").Offset(i, 0)
            Worksheets("Database").Range("E2").Offset(i, 0) = ejer
        overskrift = Worksheets("old_database").Range("G5").Offset(i + 1, 0)
            Worksheets("Database").Range("F2").Offset(i, 0) = overskrift
           
            Else
        beskrivelse = Worksheets("old_database").Range(????? ).Offset(i, 0)
            Worksheets("Database").Range("G2").Offset(i, 0) = beskrivelse
           
            End If
    Next




End Sub
Avatar billede martin_moth Mester
30. marts 2004 - 18:05 #17
Er du sød at hjælpe mhv "range(???)"

Du må da bedst selv vide hvilken range du skal have fat i - det er trods alt dig der sidder med regnearket
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
Kurser inden for grundlæggende programmering

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