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

[VBA Excel] Jak wybrać zakres danych do makra?

konradw1987 10 Sie 2010 13:45 7935 12
  • #1 10 Sie 2010 13:45
    konradw1987
    Poziom 8  

    Jak wybrać zakres danych do makra?Mam konkretne makro któremu muszę za każdym razem podawać zakres a chciałbym podać jeden zakres danych żeby stamtąd pobierało. Może ktoś wie jak to zrobić?

    Poprawiłem tytuł. - arnoldziq

    0 12
  • #2 10 Sie 2010 13:58
    marcinj12
    Poziom 40  

    Zakres to dosyć szerokie słowo... Może to być zmienna ilość wierszy, kolumn, jednego i drugiego, początkowego wiersza, początkowej kolumny bądź kombinacja powyższych.
    Przypuszczam że chodzi Ci o najprostszą formę ze zmienną ilością wierszy, wtedy możesz użyć coś takiego do ustalenia ostatniego wiersza, np. w kolumnie A:

    Code:
    ost_wiersz = Worksheets("Arkusz1").Range("A65536").End(xlUp).Row
    

    Set zakres = Worksheets("Arkusz1").Range("A1:A" & ost_wiersz)

    0
  • #3 10 Sie 2010 21:16
    konradw1987
    Poziom 8  

    Chodzi mi o wybranie jednej kolumny, z której dane są pobierane. W sumie to napisałem ale nie chce dalej przekazywać do podpisów punktów (etykiety punktów) nie mają to być wartości liczbowe tylko tekst. Mam gotowe makro i jak ustawie zakres to nie chce mi dawać podpisów przy punktach, a jeśli sam zaznaczam kolumnę to wszystko działa, a chciałbym żeby działo sie to automatycznie, bo chodzi tylko o tę jedną kolumnę.

    0
  • #4 10 Sie 2010 22:26
    marcinj12
    Poziom 40  

    Do jakich podpisów/etykiet punktów?? Wrzuć ten kod co masz i napisz co CI w nim nie działa.

    0
  • #5 11 Sie 2010 18:38
    konradw1987
    Poziom 8  

    To jest to makro:

    Code:
    Sub DataLabelsFromRange()
    
        Dim DLRange As Range
        Dim Cht As Chart
        Dim i As Integer, Pts As Integer
       
    '   Określenie wykres
        Set Cht = ActiveSheet.ChartObjects(1).Chart
       
    ' *********** Wyświetlenie pytania o zakres
        On Error Resume Next
        Set DLRange = Application.InputBox _
          (prompt:="Zakres zawierający etykiety danych?", Type:=8)
        If DLRange Is Nothing Then Exit Sub
        On Error GoTo 0
    ' ***********

         
    '   Dodanie etykiet danych
        Cht.SeriesCollection(1).ApplyDataLabels _
          Type:=xlDataLabelsShowValue, _
          AutoText:=True, _
          LegendKey:=False
         
    '   Przetwarzanie w pętli kolekcji Points i ustawianie etykiet danych
        Pts = Cht.SeriesCollection(1).Points.Count
        For i = 1 To Pts
            Cht.SeriesCollection(1). _
              Points(i).DataLabel.Text = DLRange(i)
        Next i
    End Sub


    Jak tam wpisałem zakres to nie chce go dalej czytać i wstawiać na wykres etykiet do punktów przy których mają one być. Jak jest tak jak teraz to wszystko działa a jak chciałem od razu zakres wpisać w makrze to jakoś nie chce wstawiać tych etykiet.

    Proszę pamiętać o używaniu znaczników code. - arnoldziq

    0
  • #6 11 Sie 2010 19:42
    marcinj12
    Poziom 40  

    konradw1987 napisał:
    ...jak chciałem od razu zakres wpisać w makrze to jakoś nie chce wstawiać tych etykiet.

    Dalej nie wiem czy dobrze rozumiem, ale z tego co piszesz chcesz tam wstawić zakres "na sztywno". Jeśli zrobisz to tak (zmieniłem jedynie pytanie o zakres):
    Code:

    Private Sub CommandButton1_Click()
    Dim DLRange As Range
    Dim Cht As Chart
    Dim i As Integer, Pts As Integer

    ' Określenie wykres
    Set Cht = ActiveSheet.ChartObjects(1).Chart

    Set DLRange = Range("C1:C10")

    ' Dodanie etykiet danych
    Cht.SeriesCollection(1).ApplyDataLabels _
    Type:=xlDataLabelsShowValue, _
    AutoText:=True, _
    LegendKey:=False

    ' Przetwarzanie w pętli kolekcji Points i ustawianie etykiet danych
    Pts = Cht.SeriesCollection(1).Points.Count
    For i = 1 To Pts
    Cht.SeriesCollection(1). _
    Points(i).DataLabel.Text = DLRange(i)
    Next i
    End Sub


    To uzyskasz coś takiego:
    [VBA Excel] Jak wybrać zakres danych do makra?
    Jak widzisz pobrało etykiety do punktów z kolumny C.

    0
  • #7 12 Sie 2010 08:30
    walek33
    Poziom 28  

    Ja bym jeszcze na końcu onej procedury dodał zwolnienie zmiennych obiektowych w stylu:

    Code:

    Set "NazwaZmiennej" = Nothing

    I nie piszę tego tylko po to żeby się czepiać. Ostatnio miałem problem z bardzo rozbudowanym skoroszytem, gdzie autor zapomniał o tym drobnym szczególe. :D VBA raczej samo ich nie zwolni.[/code]

    0
  • #8 12 Sie 2010 09:52
    konradw1987
    Poziom 8  

    Nie widzę obrazka ale u mnie nie działa bo wykres ma być w nowym arkuszu. Chodzi właśnie o zakres na sztywno. Jak wstawiłem do makra to co tam wpisałeś to makro przestaje działać.

    0
  • #9 12 Sie 2010 10:48
    marcinj12
    Poziom 40  

    Chyba najlepiej będzie jak wstawisz plik z tym co masz, bo np. odwołujesz się do aktywnego arkusza (ActiveSheet), a piszesz że wykres ma być w nowym arkuszu, co z Twojego kodu w ogóle nie wynika...

    0
  • #10 07 Wrz 2010 10:30
    konradw1987
    Poziom 8  

    Byłem bardzo zajety i musialem sobie to na jakis czas odpuscic. Jak można zalaczyc plik excela? To zalaczylbym ten plik z ktorym mam problem.

    0
  • #11 08 Wrz 2010 11:59
    walek33
    Poziom 28  

    Jak będziesz pisał następny post przewiń się na dół strony i skorzystaj z "Dodaj załącznik". Wciśnij "Przeglądaj" i wybierz swój plik. Nie zapomnij o zaznaczeniu tego małego pola obok przycisku :D.

    0
  • #13 09 Wrz 2010 08:56
    walek33
    Poziom 28  

    To teraz jeszcze dopisz co w owym pliku nie działa. U mnie makro wykonuje się bez problemów.

    0