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

  tytuł wątku:
Wątki dyskusji

zakładki na userformie


otwartyotwarty rozpoczął: alicelee postów: 36



napisał: alicelee
postów: 57


umieszczony:
5 lutego 2007
11:49

  
Kurcze z tego co napisales to juz w ogole nic nie rozumiem :/

To może spróbuję jeszcze inaczej...
W excelu w arkuszu 2.2.1. mam juz wpisane dane. Znajduja sie w komorkach D4:D9 i E4:E9. Chcialabym zeby na podstawie tych danych na userformie "frm_221" w zakladce (ostaniej bo jest ich 4) "wykres" narysowal sie wykres na podstawie tych danych. Pomozcie... :|
napisał: jalamas
postów: 316


umieszczony:
5 lutego 2007
03:26

edytowany:
5 lutego 2007
03:32

  
Ponieważ z tego co napisałaś nie mogę wszystkiego wywnioskować.
Nie wiem czy chcesz dodać wykres do kontrolki , czy tylko zmienić dane...
Załóżmy wobec tego tak:
- na UserForm jest kontrolka SpreedSheet1 (ma 2 arkusze)
- na UserForm kontrolka ChartSpace1
Trochę tego dużo i można uprościć, zwłaszcza, jeżeli chodzi Ci tylko o zmianę danych...
Lecz jak słowo nie wiem do końca co ma być.
A można wiedzieć dlaczego to nie może być normalny ludzki wykres na arkuszu tylko taka kombinajcja "alpejska" ?

Sub ZmienZrodlo(RngZrodlo As Range, _
                Optional bDodaj As Boolean = False, _
                Optional lAkuszKontrolki As Long = 1)
' zalozmy ze na kontrolce bedzie ten sam adres bezwzgl. dla X i Y co na zrodle czyli arkuszu

Dim strAdres As String
Dim strAddressX As String
Dim strAddressY As String
    strAdres = RngZrodlo.Address
    With RngZrodlo
        strAddressX = .Columns(1).Address
        strAddressY = .Columns(2).Address
    End With

    With Me
        With .Spreadsheet1.Sheets(lAkuszKontrolki)
            .Activate
            .Range(strAdres) = RngZrodlo.Value
        End With
        With .ChartSpace1
            Set .DataSource = Me.Spreadsheet1
            If (.Charts.Count > 0 And bDodaj = False) Then
                With .Charts(0)
                    .Type = chChartTypeLineMarkers
                    .SetData chDimCategories, 0, strAddressX
                    If .SeriesCollection.Count = 0 Then
                        .SeriesCollection.Add
                    End If
                    .SeriesCollection(1).SetData chDimValues, 0, strAddressY
                    .HasLegend = True
                    .HasTitle = True
                    .Title.Caption = "jakis"
                End With
            Else
                ' bo tak naprawde nie wiem czy chcialas dodac czy zmienic
                With .Charts.Add
                    .Type = chChartTypeLineMarkers
                    .SetData chDimCategories, 0, strAddressX
                    If .SeriesCollection.Count = 0 Then
                        .SeriesCollection.Add
                    End If
                    .SeriesCollection(0).SetData chDimValues, 0, strAddressY
                    .HasLegend = True
                    .HasTitle = True
                    .Title.Caption = "jakis"
                End With
            End If
            ' .Spreadsheet1.Visible = False ' kontrolke mozna ukryc
            .Height = 380
        End With
    End With
End Sub


Nie dodam wykresu tylko zmienie dane na dane z arkusza "2.2.1." skoroszytu
Przechowam je w akuszu 1 kontrolki SpreedSheet
Call ZmienZrodlo(ThisWorkbook.Worksheets("2.2.1.").Range("A1:B10"))


Dodam wykres skorzystam dane z arkusza "2.2.2." skoroszytu
Przechowam je w akuszu 2 kontrolki SpreedSheet
Call ZmienZrodlo(ThisWorkbook.Worksheets("2.2.2.").Range("A1:B10"), True, 2)

napisał: alicelee
postów: 57


umieszczony:
5 lutego 2007
01:00

  
Na userformie o nazwie frm_221 mam utworzone multipage i na ostatniej mam ChartSpace1 w ktorym chcialabym zeby pojawic wykres.
napisał: jalamas
postów: 316


umieszczony:
5 lutego 2007
00:45

  
To może zacznij od poczatku.
Gdzie ma być ten wykres ?
napisał: alicelee
postów: 57


umieszczony:
5 lutego 2007
00:24

  
Hmmm nie ma...
myslalam, ze to co jest wpisane po Range to wpisuje od razu dane z tych komórek.
napisał: jalamas
postów: 316


umieszczony:
5 lutego 2007
00:18

  
No dobrze, a gdzie jest dalszy kod, który te dane do wykresu przypisuje ?
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
23:51

  
Zmieniłam tak jak mowisz i dalej jak uruchomie to nie ma wykresu. Aha a o to ci chodzilo zeby tak pisac ze to widac ze VBa?

Private Sub ChartSpace1_DataSetChange()
Dim wykres As Chart
Dim zakres_x As Range
Dim zakres_y As Range

With Worksheets("2.2.1.")
     Set wykres = .Charts.Add
     Set zakres_x = .Range("E4:E9")
     Set zakres_y = .Range("D4:D9")
End With
End Sub

napisał: jalamas
postów: 316


umieszczony:
4 lutego 2007
23:41

edytowany:
4 lutego 2007
23:48

  
to :
Set zakres_x = Range("E4:E9") odnosi się tak jak jest napisane do aktywnego arkusza.....

jeśli nie poprzedzisz
With Worksheets("2.2.1.")
    Set wykres = .Charts.Add
    Set zakres_x = .Range("E4:E9")
    Set zakres_y = .Range("D4:D9")
End With


jeżeli te Range,że tak powiem na nim mają ( "2.2.1." ) być... ?

trudno pisać jeśli się nie widzi postów przy edycji...
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
23:19

  
Ok zapomnialam... dopiero sie ucze tego... :|
a poza tym, raz sie wpisuje te Worksheets a raz nie jak tak widze na rpzykladach roznych makr i dlatego sie gubie bo nie wiem kiedy to pisac...
Poprawilam:

Private Sub ChartSpace1_DataSetChange()
Dim wykres As Chart
Dim zakres_x As Range
Dim zakres_y As Range

Set wykres = Worksheets("2.2.1.").Charts.Add
Set zakres_x = Range("E4:E9")
Set zakres_y = Range("D4:D9")
End Sub

i nie wykresla histogramu, mimo ze w arkuszu sa dane w tych komorkach. moze to trzeba w jakis inny sposb napisac? Co mam zrobić żeby wyrysowały sie slupki z czestotliwoscia?
napisał: jalamas
postów: 316


umieszczony:
4 lutego 2007
23:09

edytowany:
4 lutego 2007
23:12

  
Przecież Ci Artik pokazał jak się odnieść do arkusza
Cytat:
Worksheets("2.2.1.")
i jeżeli niżej wymienione
przez Ciebie zakresy dotyczą tego arkusza użyj
With Statement
analogicznie jak On.
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
22:55

  
Hmmm a teraz tak:
z utworzonych danych chcialabym utworzyc wykres. W excelu wylicza mi sie częstość i przedzialy do histogramu.
Wstawilam wiec wykres i wpisalam:

Private Sub ChartSpace1_DataSetChange()
Dim wykres As Chart
Dim zakres_x As Range
Dim zakres_y As Range

Set wykres = ("2.2.1.").Charts.Add
Set zakres_x = Range("D4:D8")
Set zakres_y = Range("E4:E8")
End Sub


Arkusz z ktorego pobieram dane nazywa sie 2.2.1. ale tam gdzie wpisuje nazwe to zaznacza mi na czerwono i nie dziala :/
prosze o pomoc...:|
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
22:06

  
Działaaaaaa!!!!!!! :D:D:D YEAH! :D
DZIĘKUJĘ PIĘKNIE!:D

Ale coś czuję, że zaraz posypią się następne pytanka :D więc bądź w pogotowiu heheh jeśli możesz :D
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
13:16

  
OK ;) to jak juz bedziesz wiedzial jak mam to napisac zeby dzialalo poprawnie to daj znac ;)
napisał: admin
postów: 613


umieszczony:
4 lutego 2007
08:58

  
umieszczony: 04.02.2007 04:59:59

Nie macie spania? Bo zamknę forum na godziny nocne;)
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
04:59

  
Wpisałam jak mowiles i nei dzialalo dalej :/ a teraz wpisalam tak i dopiero teraz dziala:

Private Sub CommandButton1_Click()
Dim i As Integer

With Worksheets("2.2.1.")
i = .Range("B104").End(xlUp).Row + 1
.Cells(i, "B").Value = TextBox1.Value
End With

'jeśli po wpisaniu do arkusza chcesz wyczyścić TextBox
TextBox1.Value = ""
End Sub

ale tez w sumie nie dziala bo jak wpisze juz te wszystkie 100 wartosci to znowu zaczyna mi wpisywac u gory do B3 a tam ma byc jednostka wiec nie moze nic byc! Dobra dziekuje za pomoc :) jeszcze pomysle nad tym pozniej. a teraz w koncu spac :)
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
04:36

  
Napisałam przed chwilą że w B104 jest funkcja wstawiona. To ma być do B103.
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
04:14

  
Juz mowie jak to jest.
pierwszy wiersz scalone komorki.potem tak:
B2 - wpis
B3 - wpis
B4:B103 - puste
B104 - wpisana funkcja

W sumie dane maja byc do 103 a nie 104. ale w tym twoim kodzie i tak tego nigdzie nie widze:/
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
04:03

  
Facecie :D z twoją "dziwną liczbą" to już w ogole nie dziala i wpisuje mi do B106!!! a ja chce od B4 do B104. ;)
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
03:35

  
Hmmm dziala... ale wpisuje mi tylk odo jednej komorki, a potem juz nie :/
aha i wpisalam zamiast tej dziwnej liczby B4 choc nie wiem czy to dobrze ale tam jest Range wiec chyba dobrze ;) Bo musi odB4 wpisywac. Hmmm a nie wiesz jak zrobic zeby wpisywalo do konca do B104?

Private Sub CommandButton1_Click()
Dim i As Integer

With Worksheets("Arkusz1")
i = .Range("B4").End(xlUp).Row + 1
.Cells(i, "B").Value = TextBox1.Value
End With

'jeśli po wpisaniu do arkusza chcesz wyczyścić TextBox
TextBox1.Value = ""
End Sub
napisał: alicelee
postów: 57


umieszczony:
4 lutego 2007
02:59

  
Ok super to juz wyswietla dwie :):):)
tylko jak teraz tu wpisywac do drugiej kolumny? Zeby trafialo do B?


<-wstecz  1 2  dalej->
wszystkich stron: 2


Sortuj posty: z