Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

EXCEL MAKRO problem z makrem do przycisku drukującego arkusz

16 Jan 2011 21:25 4055 16
  • Level 10  
    Witam mam taki problem: w Arkuszu1 umieszczam sobie 2 pola wyboru i 1 przycisk i sprawa polega na tym że jak zaznaczę sobie np. pierwsze pole wyboru i kliknę przycisk to ma mi wydrukować Arkusz2
    a jak wybiorę pierwsze pole wyboru i drugie pole wyboru i kliknę przycisk to ma mi wydrukować Arkusz2 i Arkusz3
    jak sobie tworzę makro dla przycisku z odpowiednimi komendami to przycisk i tak mi nie działa tzn nie drukuje mi arkuszy

    może ktoś mi pomóc? i jeszcze jedno czy muszę utworzyć jeszcze makra dla każdego pola wyboru?

    poniżej zamieszczam mój kod makra przycisku:

    Quote:

    Sub PrzyciskDrukuj()

    Application.ScreenUpdating = False
    If Polewyboru1.Value = True Then
    Sheets("Arkusz2").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    End If

    Application.ScreenUpdating = False
    If Polewyboru2.Value = True Then
    Sheets("Arkusz3").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    End If

    End Sub
  • Helpful post
    Moderator of Programming
    Sądząc po nazwie ("Polewyboru") to nie ActiveX tylko formularzowe. Wykorzystaj wartość komórki wpisanej jako "łącze komórki"...

    P.S. Na końcu procedury włącz odświeżanie ekranu.
  • Level 10  
    Quote:
    Wykorzystaj wartość komórki wpisanej jako "łącze komórki"...

    nie rozumiem możesz wskazać jak mam zmodyfikować ten kod
  • Helpful post
    Moderator of Programming
    Zacznij od:

    EXCEL MAKRO problem z makrem do przycisku drukującego arkusz

    Wpisz adres dowolnej komórki. Np A1
    W makro
    Code:
    If Range("A1")=True Then
  • Level 10  
    no ale łącze nie powinno odnosić się do arkusza którego pole wyboru dotyczy?
  • Helpful post
    Moderator of Programming
    Wsio ryba. Jeśli

    EXCEL MAKRO problem z makrem do przycisku drukującego arkusz

    to
    Code:
    If Sheets("Arkusz3").Range("A1")=True Then
  • Level 10  
    ok i ten kod mam dodac do mojego kodu makra przycisku? rozumiem ze moj kod jest w takim badź razie dobrze napisany?
  • Helpful post
    Moderator of Programming
    Tak prawie
    Code:
    Sub PrzyciskDrukuj()
    
    Application.ScreenUpdating = False

    If Sheets("Arkusz3").Range("A1").Value = True Then
      Sheets("Arkusz2").Select
      ActiveWindow.SelectedSheets.PrintOut Copies:=1
    ElseIf Sheets("Arkusz3").Range("A2").Value = True Then
      Sheets("Arkusz3").Select
      ActiveWindow.SelectedSheets.PrintOut Copies:=1
    End If

    Application.ScreenUpdating = True 'tu poprawka 22-01-2011, sorry :)
    End Sub
    W przypadku gdy łącze drugiego pola to A2

    Przydałby się jeszcze przełącznik. Np wklej do modułu standardowego
    Code:
    Sub Zmiana1()
    
    With Sheets("Arkusz3")
      If .Range("A1") = True Then .Range("A2") = False
    End With
    End Sub
    Sub Zmiana2()
    With Sheets("Arkusz3")
      If .Range("A2") = True Then .Range("A1") = True
    End With
    End Sub
    I przypisz makra polom wyboru.
  • Level 10  
    dzięki bardzo działa elegancko ;)

    a teraz mam kolejny problem;/
    utworzyłam sobie UserForm który działa poprawnie oprócz listy rozwijanej
    tzn. mój kod do ComboBox'a :

    Quote:

    Private Sub ComboBox1_Change()
    ComboBox1.AddItem "DANE1"
    ComboBox1.AddItem "DANE2"
    End Sub


    a jak uruchomię UserForm to na liście nic się nie pojawia ;/
  • Moderator of Programming
    elektro1122 wrote:
    a jak uruchomię UserForm to na liście nic się nie pojawia ;/
    Zmień zdarzenie
    Code:
    Private Sub UserForm_Initialize()
  • Level 10  
    czy ma to być osobne polecenie czy umieszczone w ComboBox'ie ?
    bo gdy umieszczam jako oddzielne zdarzenie to nadal nic mi się nie pojawia ;/
  • Moderator of Programming
    To usuń
    Code:
    Private Sub ComboBox1_Change()
    
    ComboBox1.AddItem "DANE1"
    ComboBox1.AddItem "DANE2"
    End Sub
    A to
    Code:
    Private Sub UserForm_Initialize()
    
       ComboBox1.AddItem "DANE1"
       ComboBox1.AddItem "DANE2"
    End Sub
    wklej. Ewentualnie podmień tylko pierwszą linię...
  • Level 10  
    tak zrobiłam a na liście dalej nic nie ma ;/
  • Moderator of Programming
    Zapewne masz już bałagan z nazwami...
    Sprawdź (Name) we właściwościach ComboBox.
  • Level 10  
    nazwa jest taka sama

    a może to wynikać z tego że na moim UserForm jest więcej elementów niż tylko sam ComboBox ??
  • Level 10  
    dzięki za pomoc
    znalazłam błąd
    zamiast UserForm_Initialize()
    miałam UserForm1_Initialize()