/ 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 - makro - print næste linje
Fra : Leo.pedersen
Vist : 1432 gange
100 point
Dato : 30-10-10 11:29

Hej

Jeg har nogle store regneark - med skiftende antal linjer.

Jeg skal printe de enkelte linjer som underbilag til fakturering til vores kunder.

Der er altid kun en linje.

Jeg gør så det, at jeg først markere linjen (med shitf + mellemrum) derefter "ctrl + p" og "alt + m" for kun at printe linjen (overskriften er sat til at komme korrekt med hver gang).

Jeg har forsøgt at indspille det som en makro - som ser således ud:

Sub PrintKombi()
'
' PrintKombi Makro
' Makro indspillet 30-10-2010 af Leo Lund
'
' Genvejstast:Ctrl+q
'
Selection.PrintOut Copies:=1, Collate:=True
Rows("11:11").Select
End Sub

Dvs. jeg bruger "båndoptageren" - men så vælger den hver gang linje 11 og den ignorere at jeg undervejs i indspilningen går en linje ned.

Kan jeg bruge båndoptageren til at få det gjort korrekt?

Hvis ikke - så kan jeg godt finde ud af at gå ind og rette manuelt i makroen, men hvad skal jeg så skrive istedet for "rows("11:11") og hvordan får jeg indbygget linjeskiftet?

Der er også noget med at jeg kan få den til at "gå i lup" dvs. fortsætte med at tage alle linjer, indtil der er en blank linje - hvis jeg kan få det med, så er det helt perfekt - men da der "kun" er cirka 50 linjer, så kan jeg godt leve uden den ekstra funktion.

Hilsen

Leo Lund

 
 
Kommentar
Fra : Eyvind


Dato : 30-10-10 14:52

Jeg har lige indspillet en makro med "båndoptageren" hvor jeg gjorde følgende:
start
vælge Ctrl + z
markere række 1
marker skift og række 30
filer > print
vælge det markerede
ok
afslut.


Sub printmakro()
'
' printmakro Makro
' Makro indspillet 30-10-2010 af Eyvind
'
' Genvejstast:Ctrl+z
'
Rows("1:30").Select
Selection.PrintOut Copies:=1, Collate:=True
End Sub

Men det er nok ikke bare det du vil.

Kommentar
Fra : Peder99


Dato : 30-10-10 22:08

Hej

Prøv manuelt at erstatte Rows("11:11").Select
med
ActiveSheet.Rows(Selection.Row).Select.

Dette skulle markere hele den linie du har markeret en celle i og derefter printer du den som du plejer!

mvh
Peder



Kommentar
Fra : CiviC


Dato : 30-10-10 23:36

Hvad med denne:

Private Sub CommandButton1_Click()
Range("A500").Select
Selection.End(xlUp).Select
Slut = ActiveCell.Row
If Slut <> "" Then
For Tæl = 11 To Slut
Rows(Tæl).Select
Selection.PrintOut Copies:=1, Collate:=True
Next
Else
MsgBox ("Der er intet at printe")
End If
Range("A1").Select
End Sub

Denne vil udskrive hver linie for sig til og med sidste linie hvor der står noget i kollonne A

Mvh
CiViC

Kommentar
Fra : CiviC


Dato : 30-10-10 23:38

Ville bare lige se om det så bedre ud når man indsætter en kode sektion

Kode
Private Sub CommandButton1_Click()
Range("A500").Select
Selection.End(xlUp).Select
Slut = ActiveCell.Row
If Slut <> "" Then
For Tæl = 11 To Slut
Rows(Tæl).Select
Selection.PrintOut Copies:=1, Collate:=True
Next
Else
MsgBox ("Der er intet at printe")
End If
Range("A1").Select
End Sub


Kommentar
Fra : Leo.pedersen


Dato : 01-11-10 08:34

Hej CiviC

Jeg har forsøgt at indsætte din kodning - men der køre noget, men der kommer ikke noget print.
Kodningen er indsat midt i en makro, så den ser således ud:

Sub linjeskift()
'
' linjeskift Makro
' Private Sub CommandButton1_Click()
' Range("A500").Select
' Selection.End(xlUp).Select
' Slut = ActiveCell.Row
' If Slut <> "" Then
' For Tæl = 11 To Slut
' Rows(Tæl).Select
' Selection.PrintOut Copies:=1, Collate:=True
' Next
' Else
' MsgBox ("Der er intet at printe")
' End If
' Range("A1").Select
' End Sub
'
' Makro indspillet 01-11-2010 af Leo Lund
'
' Genvejstast:Ctrl+q
'
Range("A13").Select
End Sub

Jeg kan ikke lige gennemskue hele makroen.

Hej Peder99

Din linje løser det med at tage aktuel linje - men hvordan "koder" jeg at makroen skal gå en linje ned?

Hilsen

Leo

Accepteret svar
Fra : Peder99

Modtaget 100 point
Dato : 01-11-10 12:29

Hej Leo.

Når du siger gå en linie ned, skal den så bare placere markeringen der eller skal den også udskrive den næste linie?

Hvis den bare skal stille sig der og være klare til næste gang du trykker ctr + q, så skal du bare indsætte følgende:

ActiveSheet.Rows(Selection.Row).Select.
ActiveSheet.Cells(Selection.Row + 1, "A").select


Har ikke afprøvet det, men det burde virke!

mvh Peder

Kommentar
Fra : Peder99


Dato : 01-11-10 12:33

Hej igen.

Jeg kan ikke helt finde ud af hvad din makro skal!

Skal den printe linie 1 (overskrift) sammen med linie 2, 3, 4 osv.?

Peder

Kommentar
Fra : CiviC


Dato : 01-11-10 13:47

Hej igen

Nu virkede det lige derhjemme.
Problemet ser ud til at være, at når hele rækker bliver markeret, brokker den sig over de sider der ikke indeholder noget.

Jeg har ændret lidt på den.
Du skal bare ændre "H", til den sidste kollonne du har, i linien med Range("A" & Tæl, "H" & Tæl).Select

Kode
Sub Makro1()
'
' Makro1 Makro
'

Range("A500").Select
Selection.End(xlUp).Select
Slut = ActiveCell.Row
If Slut <> "" Then
For Tæl = 11 To Slut
Range("A" & Tæl, "H" & Tæl).Select
Selection.PrintOut Copies:=1, Collate:=True
Next
Else
MsgBox ("Der er intet at printe")
End If
Range("A1").Select
End Sub


Mvh
CiViC

Godkendelse af svar
Fra : Leo.pedersen


Dato : 01-11-10 13:54

Tak for svaret Peder99.

Den skal også printe overskriften - men det er klaret i indstilling af udskriften - og dertil en linje.

Det drejer sig om en specifikation fra en leverandør, hvor vores kunder indgår med en linje hver i en arkfane, og derfor skal der kun printes det som vedrører den enkelte kunde.

Din nye kodning virker perfect (når jeg fjernede punktummet til sidste i første linje)

Min makro ser nu således ud:

Sub Printlinje()
'
' Printlinje Makro
' Makro indspillet 01-11-2010 af Leo Lund
'
' Genvejstast:Ctrl+q
'
ActiveSheet.Rows(Selection.Row).Select
Selection.PrintOut Copies:=1
ActiveSheet.Cells(Selection.Row + 1, "A").Select
End Sub

Venlig hilsen

Leo Lund
www.leolund.dk

Kommentar
Fra : CiviC


Dato : 01-11-10 13:59

Her er lidt hvad der sker:

Range("A500").Select '------ > Går til cellen A500
Selection.End(xlUp).Select '------ Går op til næste celle der ikke er tom
Slut = ActiveCell.Row '------ Slut er = aktiv række
If Slut <> "" Then '------ "" Skal ændres til det sidste du har stående i A1 til A10, med anførslestegn
For Tæl = 11 To Slut
Range("A" & Tæl, "H" & Tæl).Select '------ Vælg cellerne A og Værdien "Tæl" til H og værdien "Tæl"
Selection.PrintOut Copies:=1, Collate:=True '------ Udskriv Markeringen
Next '------ Tæl = Tæl + 1
Else
MsgBox ("Der er intet at printe")
End If
Range("A1").Select

Kommentar
Fra : Leo.pedersen


Dato : 01-11-10 14:10

Hej CiviC

tak for hjælpen - har stadig ikke helt forstået det, men det jeg har forstået, så ser det ud til at være lidt mere kompliceret end jeg har brug for.

Venlig hilsen

Leo Lund

Kommentar
Fra : Peder99


Dato : 01-11-10 15:41

Hej igen.

Godt det var det du ville have!

Jeg tror måske Civic løsning forvirrer lidt pga. der skal være indsat en knap (command_button1), som du skal klikke på for at dette sker!

mvh
Peder

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 : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste