logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[VBA Excel] Makro do dynamicznej zmiany wysokości komórek nagłówka w Arkuszu1

asdqwerty 15 Cze 2017 19:19 2322 11
REKLAMA
  • #1 16531867
    asdqwerty
    Poziom 21  
    Posty: 897
    Pomógł: 11
    Ocena: 67
    Proszę o pomoc w stworzeniu makra, które w czasie rzeczywistym (tj. przy zmianie pozycji z dostępnych na liście) zmieniałoby wysokość komórek nagłówka tabeli. Szerokość wszystkich kolumn ma być jednakowa, np. 15,00. Tekst ma być wyśrodkowany i wyrównany pionowo do środka. Nagłówki są w komórkach B1 do G1 w Arkuszu1. Jak miałoby to wyglądać przedstawiłem w Arkuszu2. Jak widać najdłuższa treść determinuje wysokość komórek.

    Pytanie dodatkowe: czy można poszerzyć listę rozwijaną? Po kliknięciu w "trójkącik" nie widać wszak całości opisu nagłówka.
    Załączniki:
    • Przykład1.xls (15.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • REKLAMA
  • Pomocny post
    #2 16531972
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Makro? Wystarczy w formacie komorek "Zawijanie wyrazów'.
    Załączniki:
    • Przy1.xls (20 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #3 16532026
    asdqwerty
    Poziom 21  
    Posty: 897
    Pomógł: 11
    Ocena: 67
    Zgadza się, można bez makra. Natomiast pozostaje kwestia szerokości listy po kliknięciu "trójkącika".

    Znalazłem podobny temat, ale zastosowanie podanego tam kodu nie daje pozytywnego skutku.

    https://www.computing.net/answers/office/how-...-width-of-a-dropdown-list-in-excel/20568.html
    Załączniki:
    • Przykład1.xls (26 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #4 16532058
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    A co to mialo by byc?
    A3.[1:1].Width - swoimy slowy?

    Myślę, że w artykule na temat elementu 'listy', Developer - Insert - Forms
    (nie poprawnosc danych)
  • REKLAMA
  • #5 16532070
    asdqwerty
    Poziom 21  
    Posty: 897
    Pomógł: 11
    Ocena: 67
    JRV napisał:
    A co to mialo by byc?
    A3.[1:1].Width - swoimy slowy?


    A3.[A1:D1].Width :?: U mnie pozycje do listy są w jednym wierszu, a nie w jednej kolumnie (jak w przykładzie na podanej stronie).
  • REKLAMA
  • Pomocny post
    #6 16532077
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    No dobrze, [a1] - to jasne
    co VBA ma rozumiec na A3?

    Dodano po 3 [minuty]:

    Zrob w 'Immediate'
    ?Activesheet.shapes(1).name

    Dodano po 47 [sekundy]:

    i naprosto
    myShp.Width = 200

    Dodano po 7 [minuty]:

    W Twojem Przyklad1.xls nie "Drop Down 1", tylko "Drop Down 5"

    Dodano po 56 [sekundy]:

    Latwiej naprosto Set myShp = ActiveSheet.Shapes(1)
  • REKLAMA
  • #7 16532824
    asdqwerty
    Poziom 21  
    Posty: 897
    Pomógł: 11
    Ocena: 67
    Czy istnieje możliwość zmiany położenia listy? Chodzi o to, że "trójkącik" zawsze jest po prawej stronie od wyświetlanej listy wyboru. Chciałbym, aby był po lewej stronie (patrz obrazek).

    [VBA Excel] Makro do dynamicznej zmiany wysokości komórek nagłówka w Arkuszu1

    Oprócz tego chciałbym stworzyć dodatkowe makro, które w czasie rzeczywistym sprawdzałoby ilość pozycji do listy wyboru i ją korygowało (np. w przypadku dodania kolejnej pozycji w komórce Arkusz3!E1 lista powinna wydłużyć się o jedną pozycję). Obecny zakres czterech komórek zdefiniowałem nazwą w sposób ręczny.
  • #9 16532916
    asdqwerty
    Poziom 21  
    Posty: 897
    Pomógł: 11
    Ocena: 67
    Nie akceptuje formuły. Co więcej OFFSET i COUNT to odpowiedniki polskich nazw, więc nie wiem dlaczego je podają.
  • Pomocny post
    #10 16532961
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Należy pamiętać, że znaki interpunkcyjne w formułę arkusza Excel
    Załączniki:
    • lista_dynamic.xls (13.5 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #11 16533166
    asdqwerty
    Poziom 21  
    Posty: 897
    Pomógł: 11
    Ocena: 67
    Dzięki, o to mi chodziło.

    Pozostaje kwestia:

    asdqwerty napisał:
    Czy istnieje możliwość zmiany położenia listy? Chodzi o to, że "trójkącik" zawsze jest po prawej stronie od wyświetlanej listy wyboru. Chciałbym, aby był po lewej stronie (patrz obrazek).

    [VBA Excel] Makro do dynamicznej zmiany wysokości komórek nagłówka w Arkuszu1
  • #12 16533233
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    chyba, że to wymyślisz siebie swoj formularz poprawności danych, lub swoj Excel :)

Podsumowanie tematu

✨ Użytkownik prosi o pomoc w stworzeniu makra VBA, które dynamicznie zmienia wysokość komórek nagłówka w Arkuszu1 w Excelu, w zależności od długości tekstu. Wysokość komórek ma być dostosowywana w czasie rzeczywistym, a szerokość kolumn ma wynosić 15,00. Dodatkowo, użytkownik pyta o możliwość poszerzenia listy rozwijanej, aby w pełni wyświetlała opisy nagłówków. W odpowiedziach zasugerowano, że można to osiągnąć bez makra, poprzez włączenie opcji "Zawijanie wyrazów". Pojawiły się również pytania dotyczące zmiany położenia listy rozwijanej oraz stworzenia makra, które automatycznie aktualizuje zakres listy w przypadku dodania nowych pozycji.
Wygenerowane przez model językowy.
REKLAMA