Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Dela upp kod

Postades av 2006-01-26 22:06:23 - Göte Grandin, i forum microsoft office, Tråden har 6 Kommentarer och lästs av 982 personer

Är en nybörjare med att använda Excel/VB och att använda detta forum.

Jag har skrivit ett program i som är för stort så jag behöver dela upp det på olika knappar.

Kod som jag lägger i Private Sub CommandButton1_Click() går att exekvera.

Men hur gör jag för att fortsätta på kod i nästa knapp, Private Sub CommandButton2_Click() .

Ställer jag markören på Private Sub CommandButton2_Click() så körs den koden också.

Hur gör jag för att automatiskt gå mellan knapparna?

(hoppas att jag ställer denna fråga i rätt forum)


Svara

Sv: Dela upp kod

Postades av 2006-01-27 13:30:09 - Emma Magnusson

Hmm... ska se om jag förstått din fråga rätt:

Du har ett program du vill genomföra.
Du vill starta allting med ett knapptryck och få allt att exekveras i rätt sekvens, men tycker att din kod
blir för stor/lång för att ligga i en subrutin.

Stämmer det?

I så fall:
Du behöver inte lägga koden under flera olika knappar (om du inte har olika funktioner, och du vill utföra dem var för sig, oberoende av sekvens vid knapptryck). Gör istället så att fundera igenom vad det är du vill göra med den funktion du har. Försök bryta ner den i mindre block (du satt säkert och tänkte igenom vad du ville göra - tex, kopiera mina fält, därefter klistra in dem där etc.)

Försök få till så fristående block som möjligt, sedan kan du lägga dem som egna procedurer/funktioner och anropa dem från din första metod.

Hoppas det hjälper! =)

/Emma


Svara

Sv:Dela upp kod

Postades av 2006-01-27 22:59:20 - Göte Grandin

Hej, tack för svaret.

Det är så här, jag hörde på Go´kväll att den som konstruerade den första Sudokun tog sex år på sig.

Därför tänkte jag att det skulle vara kul att se hur lång tid det skulle ta´att skriva ett program som löste en Sudukun, så jag skrev ett program i VB, men tyvärr fick jag reda på att programmet blev för stort.

Därför delade jag upp koden på nio knappar. ( Som du vet består en Sudoku av nio "boxar" som ska innehålla talen ett till nio.)

Men då fick jag beskedet att stacken blev full, vid den nionde "boxen".

Jag har en dator med 1,5 GB.

Samma program skrev jag i Excel/VB och gick på samma problem som i VB, programmet blev för stort.

Därför försökte jag att dela upp programet i Excel/VB på samma vis. Alltså på flera knappar.

Och då fick problemet att jag måste kunna "backa" till baka till tidigare kod som jag skrivit i förut definierade "boxar" (knappar).

Alltså om alla talen ett till nio står korrekt i den första "boxen" (knappen) så är det ibland inte möjligt att placera in talen ett till nio i den andra eller följande åtta. Så därför måste andra tal i den föregående "boxen" slumpas fram.

Så mitt problem är: hur "backar" jag tillbaka till tidigare knappar?

Men du kanske har ett helt annan lösning på problemet?

Hälsningar
Göte



Svara

Sv: Dela upp kod

Postades av 2006-01-28 20:30:41 - Andreas Hillqvist

Hur ser din kod ut?


Svara

Sv:Dela upp kod

Postades av 2006-01-29 12:56:50 - Göte Grandin

Hej.

Koden är ju väldigt lång, jag tror inte att det är lämplig att skicka hela. Här kommer små bitar.

dim heltal As Integer, aktb As Integer
Dim akta1 As Integer, z As Integer
Randomize
gote1:
If Range("a1") >= 0 Then
Range("a1") = 0
Else
GoTo b1
End If
b1:
If Range("b1") >= 0 Then
Range("b1") = 0
Else
GoTo c1
End If
c1:

Och så vidare för att nollställa alla rutor som det inte är tal i. Redan ifyllda tal har jag satt negativa.


Resten av denna kod kollar om värdet i A1 är negativt om inte slumpas ett tal fram.
' allt är nu nollställt

heltal = Int(9 * Rnd) + 1
If Range("a1") >= 0 Then
Range("a1") = heltal
Else
GoTo neg1
End If
If Abs(Range("b1")) = heltal Then
GoTo gote1
End If
If Abs(Range("c1")) = heltal Then
GoTo gote1
End If
If Abs(Range("d1")) = heltal Then
GoTo gote1
End If
If Abs(Range("e1")) = heltal Then
GoTo gote1
End If
If Abs(Range("f1")) = heltal Then
GoTo gote1
End If
If Abs(Range("g1")) = heltal Then
GoTo gote1
End If
If Abs(Range("h1")) = heltal Then
GoTo gote1
End If
If Abs(Range("i1")) = heltal Then
GoTo gote1
End If
'Nu är a1 kollad mot b1:i1
If Abs(Range("a2")) = heltal Then
GoTo gote1
End If
If Abs(Range("a3")) = heltal Then
GoTo gote1
End If
If Abs(Range("a4")) = heltal Then
GoTo gote1
End If
If Abs(Range("a5")) = heltal Then
GoTo gote1
End If
If Abs(Range("a6")) = heltal Then
GoTo gote1
End If
If Abs(Range("a7")) = heltal Then
GoTo gote1
End If
If Abs(Range("a8")) = heltal Then
GoTo gote1
End If
If Abs(Range("a9")) = heltal Then
GoTo gote1
End If

'Nu är cell a1 kollad mot a2:a9
If Abs(Range("b2")) = heltal Then
GoTo gote1
End If
If Abs(Range("c2")) = heltal Then
GoTo gote1
End If
If Abs(Range("b3")) = heltal Then
GoTo gote1
End If
If Abs(Range("c3")) = heltal Then
GoTo gote1
End If
' b2,c2,b3,c3 kollade
GoTo vid1
'Nu kollar när a1 är negativ

neg1:
GoTo vid1 (går till nästa cell, B1)

Och koden fortsätter så för alla celler. Men redan vid den 3:"boxen" är stackern fylld.
I VB kom jag till början av den 9:e "boxen" när jag delade upp koden på nio knappar.

Hälsningar
Göte


Svara

Sv: Dela upp kod

Postades av 2006-01-29 19:33:32 - Andreas Hillqvist

Ett tips är att använda for loop istället.

Om du bara slumpar ett värde i första rutan så kan ju det spärra att hitta en lösning. Om din kod gör ett rekursivt anrop. Skulle detta förklara ditt Out of stack space problem.

Vill du göra din egen suduko lösare?


Svara

Sv:Dela upp kod

Postades av 2006-01-29 21:32:02 - Göte Grandin

Nja, jag hörde på Go´kväll att det tog sex år för den som skrev det första programmet. Där för tyckte jag det skulle vara kul att se hur lång tid det tog för mig att skriva ett program..


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
5 527
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies