Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Excel- VBA, zapisz jako CSV z formatowaniem liczbowym

bajzer1 04 Sep 2020 13:02 489 5
  • #1
    bajzer1
    Level 8  
    Witam,
    Może znajdzie się ktoś, kto ma pomysł, na mój problem:
    Stworzyłem makro, które z formatki wypełnionej przez użytkownika, kopiuje dane, dodaje inne potrzebne kolumny i kody i wrzuca wszystko do csv - korzystając z funkcji SaveAs z parametrem Local:=True.
    wbkNowy.SaveAs Filename:=Sciezka, FileFormat:=xlCSV, CreateBackup:=False, Local:=True
    Wszystko się zapisuje, tylko jest mały szczegół: jedna z kolumna zawiera 12-cyforwy kod, który w samej formatce użytkownika widoczny jest prawidłowo ponieważ użyte jest formatowanie liczbowe, ale w samym csv kolumna jest już formatowana: ogólnie i nie wyświetla pełnego numeru- trzeba wejść w daną komórkę aby zobaczyć nr.
    Excel- VBA, zapisz jako CSV z formatowaniem liczbowym
    System do którego generowany jest csv jest na tyle "ułomny", że nie potrafi sobie z tym poradzić i nie zaczytuje danych z tej kolumny.- podobno nie da się tego już poprawić w systemie i tyle.
    Pomaga jedynie, ręczne poprawienie formatowania na liczbowe w csv i jeszcze raz zapisanie. - próbowałem to także ogarnąć makrem, ale nie działa.
    Czy ktoś z wyjadaczy ma może pomysł jak ogarnąć tego csv z formatowanie liczbowym?
  • #2
    Prot
    Level 38  
    W podobnej sytuacji (choć odwrotnie :D import z csv do Excela) importu numerów kont bankowych (26 cyfr !) rozwiązałem w swoim kodzie vba poprzez dodatkową pętle wstępną, która modyfikowała w importowanym pliku wszystkie wystąpienia 26 cyfr poprzez dodanie przedrostka PL :idea: - w ten sposób zamieniałem wartości numeryczne na tekstowe, które precyzyjnie były importowane do arkusza Excel :D
    Bez pliku trudno proponować konkretne rozwiązanie, ale możesz spróbować zastosowanie przejścia w polu kodów z wartości numerycznych na tekstowe :!:
  • #3
    bajzer1
    Level 8  
    Prot wrote:
    W podobnej sytuacji (choć odwrotnie :D import z csv do Excela) importu numerów kont bankowych (26 cyfr !) rozwiązałem w swoim kodzie vba poprzez dodatkową pętle wstępną, która modyfikowała w importowanym pliku wszystkie wystąpienia 26 cyfr poprzez dodanie przedrostka PL :idea: - w ten sposób zamieniałem wartości numeryczne na tekstowe, które precyzyjnie były importowane do arkusza Excel :D
    Bez pliku trudno proponować konkretne rozwiązanie, ale możesz spróbować zastosowanie przejścia w polu kodów z wartości numerycznych na tekstowe :!:


    Postaram się to przetestować i dam znać, jak mi poszło
  • Helpful post
    #4
    PRL
    Level 40  
    Plik CSV nie ma formatowania. To plik tekstowy.
    Dopiero otwarcie go w Excelu powoduje, że Excel domyślnie kojarzy dane z ich przypuszczalnym formatem.
  • Helpful post
    #5
    clubs
    Level 37  
    bajzer1 wrote:
    Wszystko się zapisuje, tylko jest mały szczegół: jedna z kolumna zawiera 12-cyforwy kod

    Otwórz w notatniku i zobacz czy masz poprawnie.
  • #6
    bajzer1
    Level 8  
    PRL i clubs, dzięki bardzo wasze odpowiedzi podsunęły mi pomysł.
    Skoro CSV jest plikiem tekstowym to mogę równie dobrze zapisać w txt i też powinno działać i tak się stało. :)
    Wydaje mi się, że system pobierając dane z txt robi to jakby szybciej.
    Dzięki bardzo za podpowiedzi.