Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Shark20 02:46
 » yanix 02:26
 » PaKu 02:20
 » metacom 02:18
 » xpx 02:17
 » abes99 01:30
 » luckyluc 01:30
 » Chrisu 01:26
 » PiotrexP 01:18
 » Martens 00:57
 » Wolf 00:44
 » Visar 00:43
 » CiAsTeK 00:39
 » bmiluch 00:38
 » Zic 00:36
 » rulezDC 00:36
 » Demo 00:15
 » rarek 00:09
 » buddookan 00:03
 » bagi_glog 00:02

 Dzisiaj przeczytano
 41116 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2024
A R C H I W A L N A   W I A D O M O Ś Ć
    

Oszaleję z tym excelem... , Dexter 28/06/21 07:35
Zobaczcie to:

https://imgur.com/guv6ZWR

Jest excel z listą dat. Daty są wklejane (makrem) z innego miejsca.
Problem w tym, że użytkownicy mają ustawione różne formaty dat, jedni mają dd.mm.rrrr a innu rrrr.mm.dd

I lista wygląda jak na gifie. Wszystkie komórki mają typ: data

I teraz co się dzieje (widać to na gifie):
Powielam komórkę z 11.06.2021 do komórki wyżej, jest OK.
Zmieniam dzień na 02 i szlag trafia formatowanie, zmienia się na rrrr.mm.dd

WTF?

Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
Odpowiedzi oleję.
THX!

  1. Spędziłem na tym sporo czasu , ligand17 28/06/21 08:29
    i kiedyś to ogarnąłem. Ale ja jestem teoretyk...

    1. Jaki foch :-D , Dexter 28/06/21 08:53
      123

      Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
      Odpowiedzi oleję.
      THX!

      1. Ano tak :-D , ligand17 28/06/21 09:24
        Ja to zrobiłem na etapie importowania danych makrem. Tak, żeby dane wpisywane do docelowego arkusza były w jednym identycznym formacie. Skoro u Ciebie też jest makro, to nie powinno być wielkiego problemu.

  2. tak , Kenny 28/06/21 09:40
    format trza zaszyc w makrze, ale trzeba pamieta aby potem zaczac od tabula rasa bo Excel jest wybredny i raz zwalonego formatowania w komorce czesto nie potrafi poprawic

    .:Pozdrowienia:.

    1. Zawsze można , ligand17 28/06/21 10:02
      zaszyć w makrze kawałek kodu, który zaznacza daną kolumnę i ustawia jeszcze raz format daty na zadany.

      1. i to wlasnie nie zadziala , Kenny 28/06/21 10:28
        ale zadziala np usun stara kolumne, wstaw nowa z czystym formatowaniem i jej uzywaj

        .:Pozdrowienia:.

        1. Ciekawe , ligand17 28/06/21 10:42
          U mnie działało. Ale to było 14 lat temu, na Excelu 2003. Później już nie musiałem się grzebać w VBA tak bardzo...

  3. A wiesz "skąd" te dane są wklejane? , john565 28/06/21 09:42
    Excelem na codzień nie robie takich fikołków, ale dpowiedź programistyczna "na logikę", makrem da się ogarnąc na pewno.

    Jak znasz źródło, a sprawę robisz makrem i masz sposób aby rozpoznać "ustawienia regionalne" lub potrafisz określić w jakikolwiek inny sposób kraj pochodzenia danych i formatowanie daty ogółem, to po prostu przed wklejeniem rozbijasz datę na składowe, układasz z formatu źródłowgo na format docelowy i dopiero wtedy wklejasz do komórki.

    Ale co powinno się dać zrobić, jeśli kopiujesz z excela do excela to operować nie na wartościach zformatowanych a na tym co jest pierwotnie (jakoś to się profesjoinalnie nazywa, ale teraz nie przypomne sobie), czyli co excell faktycznie pamięta i na czym operuje "pod spodem", i to też da się makrem wwydobyć. Na przykład dzisiejsza data (bez czasu) to 44375, jeśli makrem dokopiesz sie do tej wartości i ją będziesz kopiował i potem ustawisz ją dla komórki to twój problem zniknie, a format daty bedzie zawsze taki jak format w docelowej komórce.

    f*ck

    1. Dane są pobierane z innego arkusza tego samego pliku. , Dexter 28/06/21 10:45
      Po prostu korzysta z niego x osób i każda ma zdaje się różny format daty w systemie.

      Sheets("START").Select
      Range("K25").Select ' Wybiera komórkę z datą
      Selection.Copy ' kopiuje komórkę
      Sheets("LISTA").Select ' Przechodzi do arkusza docelowego
      Range("B" & ActiveSheet.Cells.Rows.Count).End(xlUp).Offset(1, 0).Select 'znajduje pierwszą wolną komórkę w kolumnie B
      Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False 'Wkleja datę

      Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
      Odpowiedzi oleję.
      THX!

      1. To chyba nie jest , ligand17 28/06/21 11:59
        kwestia różnych ustawień daty w systemie, bo to Excel powinien obsługiwać natywnie.
        Popatrz tutaj, może coś Ci się przyda:
        https://www.myofficetricks.com/...n-excel-quickly/

        1. Ofis dziedziczy z systemu, dopoki sie reczenie w nim nie zmieni , Kenny 28/06/21 12:30
          a userzy pewnie maja burdel a sami nie zmieniaja, wiec kazdy dostarcza dane w innym formacie

          .:Pozdrowienia:.

          1. Win10 czasami miesza , DJopek 28/06/21 12:48
            W niektórych wydaniach na nowych komputerach domyślny format to DD.MM.RRRR i to pewnie miesza Dexterowi...
            Rozwiązanie to zmiana ustawień regionalnych na RRRR.MM.DD na tych komputerach, które mieszają lub sprawdzenie formatu po stronie makra i odpowiednie "wpisanie" później w arkuszu w docelowym formacie lub ustawienie ręcznego formatu w formatowaniu komórek (Niestandardowy format).

      2. wyglada mi na uzyszkodnika... , AdiQ 28/06/21 14:53
        ktory wpisujac date uzyl formatu, ktory nie zostal "przetlumaczony" na excelowa date.

        Aby sprawdzic czy w zrodlowej komorce jest excelowa data zmien formatowanie na "general" - jesli data zmieni sie liczbe to jest OK, jesli zostanie bez zmian znaczy ze wpisana jest nieprawidlowo i trzeba nauczyc uzytkownikow wpisywania daty w poprawnym formacie.

        1. Oni nie wpisują z ręki... , Dexter 28/06/21 17:14
          Arkusz ma w komórce z datą kontrolkę Microsoft Date and Time Picker Control.

          Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
          Odpowiedzi oleję.
          THX!

          1. hmmm, nie mam date control , AdiQ 29/06/21 18:09
            zeby potestowac... sprobuj ustawic formatowanie przed i po kopiowaniu

            Sheets("LISTA").Select ' Przechodzi do arkusza docelowego
            Range("B" & ActiveSheet.Cells.Rows.Count).End(xlUp).Offset(1, 0).Select 'znajduje pierwsza wolna komórke w kolumnie B
            Selection.NumberFormat = "General" 'resetuje ustawienie komorki
            Sheets("START").Select
            Range("K25").Select ' Wybiera komórke z data
            Selection.NumberFormat = "General"
            Selection.Copy ' kopiuje komórke
            Sheets("LISTA").Select ' Przechodzi do arkusza docelowego
            Range("B" & ActiveSheet.Cells.Rows.Count).End(xlUp).Offset(1, 0).Select 'znajduje pierwsza wolna komórke w kolumnie B
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False 'Wkleja date
            Selection.NumberFormat = "m/d/yyyy" 'ustawia komorke jako date w typie systemowym, mozesz sie pobawic z formatem zeby dostac pozadany rezultat

            Jesli to nie zadziala to znaczy, ze date control wypluwa komorke tekstowa, ktora tylko wyglada jak data ale data nie jest. W tym wypdaku dodaj zamiane obecnego formatu na date --- ten kawalek makra to uzycie fukcji "text to columns"

            Sheets("LISTA").Select ' Przechodzi do arkusza docelowego
            Range("B" & ActiveSheet.Cells.Rows.Count).End(xlUp).Offset(1, 0).Select 'znajduje pierwsza wolna komórke w kolumnie B
            Selection.NumberFormat = "General" 'resetuje ustawienie komorki
            Sheets("START").Select
            Range("K25").Select ' Wybiera komórke z data
            Application.CutCopyMode = False
            Selection.TextToColumns Destination:=Range("K25"), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=False, Comma:=False, Space:=False, Other:=False, OtherChar _
            :=".", FieldInfo:=Array(1, 4), TrailingMinusNumbers:=True 'zmienia komorke na date
            Selection.NumberFormat = "General"
            Selection.Copy ' kopiuje komórke
            Sheets("LISTA").Select ' Przechodzi do arkusza docelowego
            Range("B" & ActiveSheet.Cells.Rows.Count).End(xlUp).Offset(1, 0).Select 'znajduje pierwsza wolna komórke w kolumnie B
            Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False 'Wkleja date
            Selection.NumberFormat = "m/d/yyyy" 'ustawia komorke jako date w typie systemowym, mozesz sie pobawic z formatem zeby dostac pozadany rezultat



      3. zrób makro które po podwójnym kliknięciu w komórkę z arkusza z daneg zakresu wstawi date , john565 28/06/21 16:43
        lub zmień format komórki tak aby zawsze przyjmował odpowiednią date,
        inna opcja - osobne kolumny na dzień, miesiąc, rok
        ostatecznie "przeszkolić" ludzi z wpisywania daty :) ale to chyba najtrudniejsze :)

        f*ck

  4. na makrach się nie znam ale , zibi13 28/06/21 13:16
    Na makrach się nie znam (ale jak znajdę prosty podręcznik/kurs to chętnie poznam) ale z tego co kojarzę to z automatu excel ustawia kolejność taką jaką masz w systemie.
    Jeśli w trayu masz format rrrr.mm.dd to excel też tak ustawi.
    Może o to chodzi w twoim przypadku?

    1. Ja mam dd.mm.rrrr , Dexter 28/06/21 14:28
      Ale jak mają inni to diabli ich wiedzą :-)

      Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
      Odpowiedzi oleję.
      THX!

      1. To może , ligand17 28/06/21 15:30
        od tego zacznij?

        1. Nie da się... , Dexter 28/06/21 17:14
          Sporo tych userów i korzystają przez sieć z różnych miejsc globu...

          Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
          Odpowiedzi oleję.
          THX!

          1. Na pewno się da , ligand17 28/06/21 18:01
            tylko trzeba mieć odpowiednie podejście :-)
            Ale rozumiem, że nie zawsze jest na to czas, ochota, lewar, itp.

            1. Wolę te kilka rekordów poprawiać co jakiś czas ręcznie niż użerać się z ludźmi. , Dexter 28/06/21 18:28
              :-)

              Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
              Odpowiedzi oleję.
              THX!

    
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL