Excel 2016 - sam zmienił domyśne formatowanie z ogólnego na walutowe w Euro

Anonimowe
2017-07-07T08:58:24+00:00

Witam.

Pracuję nad wielkimi (pod kątem ilości danych) plikami xlsm zawierającymi tabele z danymi oraz rożnego rodzaju tabele przestawne oraz makra obrabiające te dane.

Tabele są połączone ze źródłem danych w bazie Access.

I jakieś 2-3 tygodnie temu w tych plikach (jest ich 2, to nie jest kwestia jednego pliku) excel sam zmienił mi we wszystkich polach, które miały ustawione formatowanie ogólne (czyli te pola, które miały formatowanie domyślne) zmienił na "walutowe" z ustawieniem walut na "Euro"

(wiem, że ciężko w t uwierzyć, ale pracuje na tych plikach od 2 lat i nic na formatowaniu nie zmieniam)

Jak to mogło się stac i przede wszystkim jak to odkręcić???

Microsoft 365 i pakiet Office | Excel | Do użytku domowego | Windows

Pytanie zablokowane. To pytanie zostało zmigrowane ze społeczności pomocy technicznej firmy Microsoft. Możesz zagłosować, czy pytanie jest pomocne, ale nie możesz dodawać komentarzy ani odpowiedzi, ani też śledzić pytania.

Komentarze: 0 Brak komentarzy

Odpowiedzi: 21

Sortuj według: Najnowsze
  1. Oskar Shon 49,336 Punkty reputacji Moderator wolontariuszy
    2017-10-31T12:34:14+00:00

    Może był przeprowadzony taki zabieg w którym wyeksportowano style wraz ze skoroszytem (albo np z szablonem). Ten zaś importuje je do aplikacji. Również życzył bym sobie jakiegoś komunikatu - "Czy chcesz użyć innych styli niż domyślne?"

    Ale skoro tak łatwo je określić, to chyba z przeniesieniem i zastosowaniem nie jest problem do czasu jeśli nie powstanie chaos - jak na twoim obrazku.

    Przerobiłem twój kod bez warunku na BuiltIn, ale skoro jest niepotrzebny to trudno:

    Sub usun_styl()

    Dim st As Style

    Dim x As Integer: x = 0

    On Error GoTo nast

    For Each st In ActiveWorkbook.Styles

        If nazwy_styli(st.Name) = False Then st.Delete: x = x + 1

    nast:

    Next

    MsgBox ("Deleted " & x & " styles")

    End Sub

    Function nazwy_styli(n) As Boolean

    Dim arr(): arr = Array("20% — akcent 1", "20% — akcent 2", "20% — akcent 3", _

                           "20% — akcent 4", "20% — akcent 5", "20% — akcent 6", _

                           "40% — akcent 1", "40% — akcent 2", "40% — akcent 3", _

                           "40% — akcent 4", "40% — akcent 5", "40% — akcent 6", _

                           "60% — akcent 1", "60% — akcent 2", "60% — akcent 3", _

                           "60% — akcent 4", "60% — akcent 5", "60% — akcent 6", _

                           "Akcent 1", "Akcent 2", "Akcent 3", "Akcent 4", "Akcent 5", _

                           "Akcent 6", "Dane wejściowe", "Dane wyjściowe", "Dobry", _

                           "Comma", "Comma [0]", "Komórka połączona", "Komórka zaznaczona", _

                           "Nagłówek 1", "Nagłówek 2", "Nagłówek 3", "Nagłówek 4", _

                           "Neutralny", "Normal", "Obliczenia", "Percent", "Suma", _

                           "Tekst objaśnienia", "Tekst ostrzeżenia", "Tytuł", "Uwaga", _

                           "Currency", "Currency [0]", "Zły")

    Dim z%

    For z = 0 To UBound(arr)

          If n = arr(z) Then nazwy_styli = True: Exit For

    Next

    End Function

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  2. Anonimowe
    2017-10-31T12:19:57+00:00

    ten mój kod wywali wszystkie, które są niestandardowe (do tego służy warunek   .BuiltIn = FALSE).

    Po zapodaniu tego w kodu po ok 30 sekundach otrzymałem czyste style, które są predefiniowane).

    A "olewajkę" dodałem bo wykładał się na niestandardowym typie o nazwie "Normal", ale ręczne wywalenie stylu poskutkowało.

    Tylko nadal mnie nurtuje skąd się to tam wzięło tyle stylów. Może jakaś aktualizacja miała konflikt z kodem VBA... W końcu nie tylko u mnie taki przypadek się trafił (na forach zagranicznych podobne znalazłem, tylko głownie dotyczyły domyślnego formatowania w formacie daty).

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  3. Oskar Shon 49,336 Punkty reputacji Moderator wolontariuszy
    2017-10-31T12:07:35+00:00

    Oj faktycznie dziwna sytuacja. Pierwszy raz się z taką spotykam.

    W tym przypadku faktycznie, należy odfiltrować te standardowe od dodanych.

    Oto moja lista 47szt:

    20% — akcent 1

    20% — akcent 2

    20% — akcent 3

    20% — akcent 4

    20% — akcent 5

    20% — akcent 6

    40% — akcent 1

    40% — akcent 2

    40% — akcent 3

    40% — akcent 4

    40% — akcent 5

    40% — akcent 6

    60% — akcent 1

    60% — akcent 2

    60% — akcent 3

    60% — akcent 4

    60% — akcent 5

    60% — akcent 6

    Akcent 1

    Akcent 2

    Akcent 3

    Akcent 4

    Akcent 5

    Akcent 6

    Dane wejściowe

    Dane wyjściowe

    Dobry

    Comma

    Comma [0]

    Komórka połączona

    Komórka zaznaczona

    Nagłówek 1

    Nagłówek 2

    Nagłówek 3

    Nagłówek 4

    Neutralny

    Normal

    Obliczenia

    Percent

    Suma

    Tekst objaśnienia

    Tekst ostrzeżenia

    Tytuł

    Uwaga

    Currency

    Currency [0]

    Zły

    Zrób z tego tablicę i resztę kasuj.

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  4. Anonimowe
    2017-10-31T11:24:12+00:00

    Tak, wiem, że mój kod odwołuje się do stylów w arkuszu - taki jest zamysł i taki jego cel aby usnął wszystkie niestandardowe. I celowo mówię stylów a nie formatowania komórek - to właśnie tych kilkaset niestandardowych stylów powoduje błędy z formatowaniem

    oto screeny z tymi stylami

    a to skopany styl "Normalny" (w tym pliku akurat na formatowanie walutowe PLN jest)

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy
  5. Oskar Shon 49,336 Punkty reputacji Moderator wolontariuszy
    2017-10-31T10:33:35+00:00

    Twój kod wcale nie odwołuje się do komórek, ale do styli dostępnych w aplikacji. Dlaczego miały by się tam znaleźć inne, obce style - zagadka. Aplikacja ma takie style jakie są zainstalowane z programem, a tutaj chodzi aby użyte, obce style wyciąć w arkuszu ponieważ źle są przez nie prezentowane dane (przynajmniej tak zrozumiałem, bo pliku ani rysunku z przykładem nie zamieściłeś).

    Mój kod odwołuje się do zakresu komórek.

    Może nie chodzi ci o style, ale o Właściwości formatowanie komórek, dostępny pod [Ctrl+1]

    cells.NumberFormat = "General"

    Czy ta odpowiedź była pomocna?

    Komentarze: 0 Brak komentarzy