Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

EXCEL MAKRO problem z makrem do przycisku drukującego arkusz

16 Sty 2011 21:25 3773 16
  • Poziom 9  
    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:

    Cytat:

    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
  • Pomocny post
    Moderator Programowanie
    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.
  • Poziom 9  
    Cytat:
    Wykorzystaj wartość komórki wpisanej jako "łącze komórki"...

    nie rozumiem możesz wskazać jak mam zmodyfikować ten kod
  • Pomocny post
    Moderator Programowanie
    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
  • Poziom 9  
    no ale łącze nie powinno odnosić się do arkusza którego pole wyboru dotyczy?
  • Pomocny post
    Moderator Programowanie
    Wsio ryba. Jeśli

    EXCEL MAKRO problem z makrem do przycisku drukującego arkusz

    to
    Code:
    If Sheets("Arkusz3").Range("A1")=True Then
  • Poziom 9  
    ok i ten kod mam dodac do mojego kodu makra przycisku? rozumiem ze moj kod jest w takim badź razie dobrze napisany?
  • Pomocny post
    Moderator Programowanie
    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.
  • Poziom 9  
    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 :

    Cytat:

    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 Programowanie
    elektro1122 napisał:
    a jak uruchomię UserForm to na liście nic się nie pojawia ;/
    Zmień zdarzenie
    Code:
    Private Sub UserForm_Initialize()
  • Poziom 9  
    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 Programowanie
    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ę...
  • Poziom 9  
    tak zrobiłam a na liście dalej nic nie ma ;/
  • Moderator Programowanie
    Zapewne masz już bałagan z nazwami...
    Sprawdź (Name) we właściwościach ComboBox.
  • Poziom 9  
    nazwa jest taka sama

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