/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Simpelt VBA script HJÆLP
Fra : Brian


Dato : 30-01-04 15:15

Hej

1 Jeg har desværre nada kenskab til Vissual basic eller bat programmering
men har brug for kvikt hjælp

Evt. hvis du kender tutorial til vba el bat programmering ville jeg være
taknemmelig. (eller bare et sted hvor man kan se et eksempel og syntaxerne)

Høvl mig nu ikke ned over dette simple spørgsmål men er nybagt far og har
max tid ved pc'eren i 30 min. /dag så klarer den nok ikke selv uden hjælp.

Det tager jer garanteret kun 2 sek at sætte sammen.
Jeg skal bruge 3 koloner af tal (tælletræ) sådan at jeg i excel (97 version)
kan kombinere.
Dette er simpelt med et par forskellige men med 60 enheder der skal
kombineres 3 gange er det sq lidt omfattende at skrive manuelt.

Så hvis der er en der kan vil ville jeg være glad for script der kan lave

1.0 1.0 1.0
1.0 1.0 1.1
1.0 1.0 1.2
1.0 ... ...
...
1.1 1.0 1.0
1.1 1.0 1.1

1.5
2.0

2.5
.... ... ....
10.4
10.5 10.5 10.5


Fra Pascal tid må det være noget med

var:=a
var:=b
var:=c

funktion 1
for a=10 to 16 step 1 do
next
funktion 2
for b=10 to 16 step 1 do
next
funktion 3
for a=10 to 16 step 1 do
next

end
end
print a "," b "," c to excel regneark i tre rækker ellet txt fil
end

om resultatet ender i bogstaver tal eller tegn er irrelevant blot de for
hver funktion er ens.


Men desværre kan jeg ikke selv og har ikke lærebøger til rådighed.

Hvis der er en venlig sjæl der gidder er jeg taknæmmelig.

Mange tak
Brian




 
 
Brian (30-01-2004)
Kommentar
Fra : Brian


Dato : 30-01-04 16:02

Hej

Jeg sover lige vidre og forsøger ikke at gøre en ukompliceret ting
kompliceret.

> 1 Jeg har desværre nada kenskab til Vissual basic eller bat programmering

> Evt. hvis du kender tutorial til vba el bat programmering ville jeg være
> taknemmelig. (eller bare et sted hvor man kan se et eksempel og
syntaxerne)

Links imødeses dog stadig med kyshånd.

Brian



Kenneth (30-01-2004)
Kommentar
Fra : Kenneth


Dato : 30-01-04 19:04

> Fra Pascal tid må det være noget med
>

Umiddelbart vil jeg oversætte din kode til noget lignende:

Dim a,b,c

Public Sub DoSomething()
For a=10 to 16 step 1
Call Function1
for b=10 to 16 step 1
Call Function2
for a2 =10 t o16 step 1
Call Function3
Next a2
Next b
Next a
End function

Jeg er ikke sikker på at jeg forstår hvad du mener med:

> print a "," b "," c to excel regneark i tre rækker ellet txt fil
> end



Mvh. Kenneth



Tomas Christiansen (30-01-2004)
Kommentar
Fra : Tomas Christiansen


Dato : 30-01-04 23:08

Brian skrev:
> Jeg skal bruge 3 koloner af tal (tælletræ) sådan at jeg i excel (97
version)
> kan kombinere.
> Dette er simpelt med et par forskellige men med 60 enheder der skal
> kombineres 3 gange er det sq lidt omfattende at skrive manuelt.

Allerede her har du tabt mig. Hvor kommer de "60 enheder" fra?
Det stemmer ikke overens med det eksempel, som du kommer med, hvor du tæller
med spring på 0.1 fra 1.0 til 10.5 (hvilket giver 96 muligheder).

> 1.0 1.0 1.0
....
> 10.5 10.5 10.5

> Fra Pascal tid må det være noget med

Hmmm. Dine Pascal-evner må da vist være rustet lidt

> om resultatet ender i bogstaver tal eller tegn er irrelevant blot de for
> hver funktion er ens.

Jeg er ikke sikker på hvad du mener med "for hver funktion".
Er formålet ikke at lave den liste, som du viser i eksemplet?

Nedenstående kode kan bruges du vil have genereret en liste, som ser således
ud:

1.0;1.0;1.0
1.0;1.0;1.1
1.0;1.0;1.2
....
10.5;10.5;10.5

Private Sub Form_Load()
Tæl
End Sub

Sub Tæl()
Dim k1 As Long
Dim k2 As Long
Dim k3 As Long
Dim fh As Long
fh = FreeFile
Open "Rækker.txt" For Output As fh
For k1 = 10 To 105
For k2 = 10 To 105
For k3 = 10 To 105
Print #fh, PT(k1); ";"; PT(k2); ";"; PT(k3)
Next
Next
Next
Close fh
End Sub

Function PT(ByVal Tal As Single) As String
PT = Replace(Format(Tal / 10, "0.0"), ",", ".")
End Function

Men da 96 * 96 * 96 jo er 884736, så bliver filen ca. på 11,3 Mbyte.

-------
Tomas


Brian (31-01-2004)
Kommentar
Fra : Brian


Dato : 31-01-04 23:25

Hej Tomas

Springer lige med en lidt bedre forklaring

Der skal produceres en vare ved at blande 3 råvarer ud af 3-20 mulige
hver råvarer kan optræde 0 gang, 1 gang, 2 gange .... 5 gange. (hvis nul
gange så er det blot de to andre råvarer der giver produktet)

Altså opstår tal rækken 1,3 4,5 19,4
omskrevet i tekst råvarer 1 3 gange + råvarer 4 5 gange + råvarer 19
4 gange.

At jeg arbejder efter formatet 1,3 er at de er meget nemme at skilde ad ved
import til regneark.
(er gået væk fra den måde at skrive det se script i bund af denne mail)

Så du havde faktisk 100 % ram på den selv om du følte dig sat af.
Så har du sikkert allerede regnet ud at blandinger 1,0 1,0 2,0 er irrelevant
men den vil i senere beregning forsvinde ud af de range større end og mindre
end som jeg senere bruger. (er også programeret væk)

lige ledes er 1,1 2,3 3,4 og
2,3 3,4 2,2
jo ens men det er sikkert nemmere blot at medtage dem end at sortere dem
væk. Jeg kan ikke lige finde ud af at slippe af med dubletterne, den må jeg
tænke lidt mere på.

problemet er lige præcist resultat næmt bliver 884736 linier er for meget
til Excel (kan håndtere 68000
ca) men faktisk er selv 800.000 linier fornuftige for mig jeg kan bare
ikke håndtere dem bagefter i excel da jeg ønsker at have et sæt koloner



> Hmmm. Dine Pascal-evner må da vist være rustet lidt
Hmmm skyldes meget lidt programerings evne samt at min programering stammer
fra 80'erne. De gode gamle ABC 80 tider. (ABC 80 var en computer) dette var
før man havde et edb lokale på en skole.

Jeg mangler klart bøger om VBA og for den sags skyld virker min hjælpe fil
ikke.

Jeg har ændret koden til understående da jeg ikke kunne få din ellers fikse
måde at sætte koma på til at virke. Fejl melding replace ikke defineret

Private Sub Form_Load()
Tæl
End Sub

Sub Tæl()
Dim rv1 As Long
Dim b1 As Long
Dim rv2 As Long
Dim b2 As Long
Dim rv3 As Long
Dim b3 As Long
Dim fh As Long
fh = FreeFile

Open "Raekker.txt" For Output As fh
mrk1:
For rv1 = 1 To 11
For b1 = 0 To 3

For rv2 = 1 To 11
For b2 = 0 To 3


For rv3 = 1 To 11
For b3 = 0 To 3


If rv1 <> rv2 And rv2 <> rv3 And rv1 <> rv3 Then Print #fh, (rv1); ";";
(b1); ";"; (rv2); ";"; (b2); ";"; (rv3); ";"; (b3)

Next
Next

Next
Next

Next
Next

Close fh

End Sub

Men mange tak for at du satte mig igang nu er jeg næsten ved målet. Havde
nok snart været næmmere at skrive det manuelt og sætte = og copy i excel.
Men dette er helt klart sjovere og så lære man lidt.



med venlig hilsen

brian



Brian (31-01-2004)
Kommentar
Fra : Brian


Dato : 31-01-04 23:42

hejsa igen

så er den løst
> lige ledes er 1,1 2,3 3,4 og
> 2,3 3,4 2,2

> If rv1 <> rv2 And rv2 <> rv3 And rv1 <> rv3 Then Print #fh, (rv1); ";";
< (b1); ";"; (rv2); ";"; (b2); ";"; (rv3); ";"; (b3)

nok ikke et køn "programlinje" men den virker

If rv1 <> rv2 And rv2 <> rv3 And rv1 <> rv3 And rv1 < rv2 And rv2 < rv3 Then
Print #fh, (rv1); ";"; (b1); ";"; (rv2); ";"; (b2); ";"; (rv3); ";"; (b3)




Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408876
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste