vbamania.pl
login:
hasło:
 
  *Rejestracja *Zapomniane hasło
 Dziś jest niedziela, 28 kwietnia 2024 roku.
Ustaw jako stronę startową Ulubione Napisz
PowrótPowrót do serwisu  RegulaminRegulamin rssRSS

  tytuł wątku:
Wątki dyskusji

Prośba o poprawkę kodu wybierającego obszar druku


otwartyotwarty rozpoczął: jamanow postów: 5



napisał: jamanow
postów: 69


umieszczony:
9 maja 2013
16:32

edytowany:
9 maja 2013
16:35

  
Dokładnie o to mi chodziło. W moim przypadku potrzebna byla niewielka, kosmetyczna zmiana
Last(ActiveSheet.Columns("C:C"))



Jestem pełen podziwu dla twoich z pozoru prostych rozwiązań.
Wielkie dzięki Trebor.
napisał: Trebor
postów: 1209


umieszczony:
9 maja 2013
15:36

  
Powinna wystarczyć niewielka korekta kodu:
ActiveSheet.PageSetup.PrintArea = "$B$2:I" & Last(ActiveSheet.Columns("B:B"))

napisał: jamanow
postów: 69


umieszczony:
9 maja 2013
10:24

edytowany:
9 maja 2013
10:30

  
Mała korekcja, wygląda na to ze zakręciłem w wyjaśnieniu problemu.
Życzeniem moim jest by Printarea uwzględniała zawsze kolumnę 9 "I:I", bez względu na to czy cela w kolumnie 9 zawiera jakąś wartość czy nie.
Czyli w momencie kiedy ostatnia wartość w kolumnie "B:B" jest w np. celi "B112", cod ma zaznaczyć prinarea "B2:I112"

Lecz w dalszym ciągu nie ma dokonywać selekcji jakiekolwiek celi. Tak jak zaproponowany przez ciebie kod

Wynikiem ma być taki sam rezultat jak rezultat mojego pierwotnego kodu, ale bez selekcji jakiekolwiek celi.
napisał: Trebor
postów: 1209


umieszczony:
9 maja 2013
06:03

  
Wystarczy tak:
Sub MPIndex_PrintArea()
     ActiveSheet.PageSetup.PrintArea = "$B$2:C" & Last(ActiveSheet.Columns("C:C"))
End Sub

Jednak nastąpi błąd, gdy kolumna C będzie "pusta"
napisał: jamanow
postów: 69


umieszczony:
8 maja 2013
22:04

edytowany:
8 maja 2013
22:06

  
Witam.
Czy jest możliwe przerobienie kodu tak ażeby nie wybierał (select) ostatniej celi?
Cells(LastNummer, 9).Select
    Set LastCel = Selection



Sub MPIndex_PrintArea()
Application.ScreenUpdating = False
Dim LastNummer As Integer
Dim LastCel As Range
    LastNummer = Last(ActiveSheet.Columns("C:C"))
    Cells(LastNummer, 9).Select
    Application.ScreenUpdating = False
    Set LastCel = Selection
    ActiveSheet.PageSetup.PrintArea = "$B$2:" & LastCel.Address
End Sub




funkcja last:
Function Last(rng As Excel.Range) As Long

    On Error Resume Next
    Last = rng.Find(What:="*", _
                    After:=rng.Cells(1), _
                    Lookat:=xlPart, _
                    LookIn:=xlFormulas, _
                    SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious, _
                    MatchCase:=False).Row
    On Error GoTo 0
End Function



<-wstecz  1  dalej->
wszystkich stron: 1


Sortuj posty: z