Print side | Luk vindue

Automatisk oprettelse af et sagsnr i et regneark

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Makro og VBA
Forum beskrivelse: Hjælp til Makroer og VBA-programmering
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=64
Udskrevet den: 21.Nov.2024 kl. 18:44


Emne: Automatisk oprettelse af et sagsnr i et regneark
Besked fra: andreas
Emne: Automatisk oprettelse af et sagsnr i et regneark
Posteringsdato: 23.Aug.2010 kl. 17:13
Jeg prøver at få VB til at oprette et nyt sagsnr under det forige når jeg trykker på en knap i en Userform.
 
Fx.
Sags Nr.
1001
1002
1003
 
 
Jeg vil gerne have en kode der automatisk giver mig 1004 neden under når der trykkes på OK knappen i min Userform.
 
Private Sub CommandButton1_Click()
x = 1
 
 ActiveWorkbook.Sheets("ark1").Activate
Range("a1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Offset(0, 0) = ActiveCell.Offset(0, 1)
 
Range("a1").Select
   
End Sub
Jeg har forsøgt mig med denne kode men kan ikke rigtig komme vidre.
 
Håber i kan hjælpe !
 
 



Svar:
Besked fra: andreas
Posteringsdato: 23.Aug.2010 kl. 17:32
Jeg har fundet en løsning :)
 
Private Sub CommandButton1_Click()
x = 1
 
 ActiveWorkbook.Sheets("ark1").Activate
Range("a1").Select
Do
If IsEmpty(ActiveCell) = False Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until IsEmpty(ActiveCell) = True
ActiveCell.Offset(0, 0) = ActiveCell.Offset(-1, 0) + 1
 

Range("a1").Select
 
Men istedet for at bruge activeCell  kan man så ikke henlede til arket uden at aktiverer det?


Besked fra: Allan
Posteringsdato: 23.Aug.2010 kl. 21:15
Citat: andreas andreas skrev:

Jeg har fundet en løsning :)  
Men istedet for at bruge activeCell  kan man så ikke henlede til arket uden at aktiverer det?
 
Jo, det er langt hurtigere hvis man undgår at selecte eller aktivere celler i koden.
Din kodestump kan koges ned til:
 
Private Sub CommandButton1_Click()
Raekker = Ark1.Rows.Count
Ark1.Range("A" & Raekker).End(xlUp).Offset(1, 0).Value = Ark1.Range("A" & Raekker).End(xlUp).Value + 1
End Sub
 
Ved at kalde Ark1 direkte på denne måde, kan du omdøbe dit ark som du vil, det vil ikke have nogen betydning.
 
//Allan


Besked fra: andreas
Posteringsdato: 24.Aug.2010 kl. 10:13
Tak Det er jo meget bedre på den måde :)


Besked fra: Allan
Posteringsdato: 24.Aug.2010 kl. 10:56

Det er ihvertfald hurtigere :-)

Tak for din tilbagemelding Wink
 
//Allan


Besked fra: andreas
Posteringsdato: 24.Aug.2010 kl. 11:51
Det har fået mit program til at køre meget bedre.
 
Men jeg kan nu ikke finde ud af at printe uden at aktiver det aktuelle ark.
 
ActiveWorkbook.Sheets("ark3").Activate
 
 ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"

ActiveWorkbook.Sheets("ark1").Activate


Besked fra: andreas
Posteringsdato: 24.Aug.2010 kl. 12:04

How det var jo nemt nok :)

Ark3.PrintOut
 
Så længe der ikke skal ændres i printer setup'en går det fint
 
 


Besked fra: Allan
Posteringsdato: 24.Aug.2010 kl. 15:51
Præcis, det var lige i øjet.
 
Når man bruger arknavnene fra VBA-editoren, kan man tilgå ark uden at aktivere dem først
og som en ekstra bonus er man totalt ligeglad med navngivningen efterfølgende.
 
//Allan



Print side | Luk vindue