/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Excel - Tællefunktion
Fra : CLAN
Vist : 1751 gange
360 point
Dato : 23-10-06 21:31

Hejsa
Er der nogen, som kan oplyse mig om, hvordan man får Excel til at tælle op med 1 i en given celle ved opstart?

Eksempel:
I celle G1 står tallet 2600. Ved næste åbning/opstart af filen, tælles op til 2601.
Dette skal gentage sig, ved hver åbning af filen... altså skal der ved næste åbning stå 2602, ved næste igen 2603 osv.

Håber nogen kan hjælpe
Søren

 
 
Kommentar
Fra : fame


Dato : 23-10-06 21:40

jeg er lige med på en lytter

Kommentar
Fra : sion


Dato : 23-10-06 21:50

Det kan gøres ved at lægge følgende kode i VBA:
Kode
Private Sub Workbook_Open()

Range("A1") = Range("A1") + 1

End Sub

Herved lægges 1 til tallet i A1 hver gang regnearket åbnes. Husk at gemme hver gang ved afslutning.

Simon

Kommentar
Fra : CLAN


Dato : 23-10-06 21:56

sion
Den skal jeg vist ha' step by step (How to do) - aner faktisk ikke så meget om VBA i Excel

Kommentar
Fra : CLAN


Dato : 23-10-06 22:08

Hmmm! so far no luck... den tæller ikke op (har fundet ud af at lave VBA'en)

Kommentar
Fra : sion


Dato : 23-10-06 22:08

Du kan åbne Visual Basic editor (for Applications) (VBA) i menuen Funktioner -> Makro.

Her skulle der gerne være et "træ" til venstre ligesom i stifinder. Her er der under VBAProject -> Microsof Excel Objects et objekt, der hedder ThisWorkbook. Åbn denne.

Her indsætter du den kode, jeg skrev tidligere. Du kan også selv en kode - vælg da først "Workbook" i den første DropDownBox (hvor der står (General)) - herefter er der en masse muligheder i den anden DropDownBox.

Når al kode er indtastet, lukkes VBA. Koderne gemmes, når du gemmer regnearket.

Hvis det ikke er nok forklaring, kan jeg lægge et regneark ud på nettet.

Simon

Kommentar
Fra : zakia1964


Dato : 24-10-06 08:21

Husk at gemme dit regneark når koden er lavet. I koden du fik af Sion skal du istedet for A1 skrive G1 som jo er den celle hvor du har tallet der skal tælle op.
Når regnearket er gemt skal du åbne det igen og svare at du vil åbne regnearket Med makroer. Det virker hos mig!

Kommentar
Fra : sion


Dato : 24-10-06 10:54

Ja det er naturligvis Range("G1") i stedet for Range("A1"). Og som zakia også siger, skal du have aktiveret makroer.

Jeg har lagt regnearket her: http://www.plan.aau.dk/~06vt0804/kandu.xls

Bemærk at det også indeholder svar på andre spørgsmål. Af samme årsag har jeg brugt G31 i stedet for G1, men det fremgår også tydeligt i regnearket.

Simon


Kommentar
Fra : CLAN


Dato : 24-10-06 16:08

Hej Simon
Ja du står nok til at få points, pyt med celler A,B,C 1,2,3 osv. det kan jeg jo altid ændre
Lige et lille tillægsspørgsmål... for det er faktisk det, jeg skal bruge i den aktuelle situation.
Din VBA tæller fint op, når man gemmer regnearket (hvis man har lavet ændringer osv.), men jeg er ude efter, at det tæller op selv om der ikke gemmes ændringer.
Forstået på denne måde:
- Jeg har lavet et ordresedel lay-out med et nummer i øverste højre hjørne.
- Når man åbner denne "formular" tæller nummeret (Ordre Nummer) op med 1.
- Man indtaster sin tekst, udskriver, og lukker ned uden at gemme.
- Næste gang der åbnes, skal der så tælles op igen, og man kan lave ny tekst.
Håber du er med på hvad jeg er ved at "strikke" sammen
Mvh
Søren

Kommentar
Fra : CLAN


Dato : 24-10-06 16:11

NB: Således ordre numre påføres i numerisk stigende rækkefølge (uden at gemme tekst).

Kommentar
Fra : sion


Dato : 24-10-06 16:14

Jeg forstår... men umiddelbart tror jeg ikke, det kan fungere.

Jeg kigger på det senere i aften.

Simon

Kommentar
Fra : CLAN


Dato : 24-10-06 17:22

Simon... det ved jeg det kan, men den formel jeg har, i det eksisterende kommer op med run time error og en masse andet skrammel, som jeg ikke forstår en dyt af
Kode
Sub Auto_Open()
'
' Makro til håndtering af serienumre.
' Den er semistabil, men kan let omgåes
'
'
'Det her filnavn skal laves om.
FilePath = "C:\ordreseddel"
FileNameStationary = "ordreseddel.xls"
If ActiveWorkbook.Name = FileNameStationary Then
Sheets("Til Chauffør").Select
Range("G1").Select
TempSerialNumber = ActiveCell.FormulaR1C1
TempSerialNumber = TempSerialNumber + 1
ActiveCell.FormulaR1C1 = TempSerialNumber
'Og det skal det her da også
FileNameActual = FilePath + ActiveCell.FormulaR1C1 + ".xls"
ActiveWorkbook.Save
ActiveWorkbook.SaveAs FileName:= _
FileNameActual, FileFormat:= _
xlWorkbookNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
End If
End Sub


Måske du kan hitte rundt i det?

Hygge...
Søren

NB: Kaster lidt flere points i puljen senere

Kommentar
Fra : CLAN


Dato : 24-10-06 17:25

NB. Det har fungeret... indtil vi fik ny server

Kommentar
Fra : e.c


Dato : 24-10-06 20:41

Idé:
Autorun open med focus på tallet > focus væk = optælling
Så skal der bare sørges for at der ikke kommer focus før næste start
Det var lige en ugennemtænkt idé

Accepteret svar
Fra : sion

Modtaget 360 point
Dato : 24-10-06 21:23

Tilføj denne kode, som aktiveres, når regnearket lukkes:
Kode
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Range("G33").ClearContents

ActiveWorkbook.Save

End Sub

Koden sletter G33 og gemmer regnearket.
G33 er et eksempel på den tekst, som skrives på ordresedlen, og som slettes efter udskrift (ved lukning).
Du kan selv eksperimentere med Private Sub Workbook_BeforePrint(Cancel As Boolean) - måske er det bedre at have noget kode i sammenhæng med udskriften.

Den gamle kode skal blive stående:
Kode
Private Sub Workbook_Open()

Range("G31") = Range("G31") + 1

End Sub

Jeg har opdateret filen på http://www.plan.aau.dk/~06vt0804/kandu.xls

Simon

Kommentar
Fra : sion


Dato : 24-10-06 21:27

Håber du kan bruge den seneste idé... jeg fik den, mens jeg var til fodboldtræning. Derfor har jeg ikke lige sat mig ind i den kode, du skrev kl. 17:22.

Simon

Godkendelse af svar
Fra : CLAN


Dato : 25-10-06 19:41

Tak for svaret Simon
Idéen med at slette er skam fin nok, men jeg skal lige "lege" lidt først, da der er en del formler som skal bevares.
Takker for dit input og hjælp i det hersens VBA
Hygge... og fortsat god dag
Søren


Kommentar
Fra : sion


Dato : 25-10-06 20:14

Du kan så eventuelt lave et "Ark 2", som indeholder den tomme ordreseddel. I VBA-koden skal du så bare kopiere indholdet af Ark 2 til Ark 1 - blot skal ordrenummeret i Ark 1 selvfølgelig ikke ændres.

God fornøjelse

Simon

Kommentar
Fra : sion


Dato : 16-11-06 11:12

Jeg har flyttet Excel-filen til http://www.plan.aau.dk/~06vt0902/kandu.xls

Venlig hilsen
Simon

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste