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! - Spędziłem na tym sporo czasu , ligand17 28/06/21 08:29
i kiedyś to ogarnąłem. Ale ja jestem teoretyk...- Jaki foch :-D , Dexter 28/06/21 08:53
123Komisarz, Blimek, Bart - nie odpowiadajcie w wątkach, które zakładam.
Odpowiedzi oleję.
THX! - 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.
- 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:. - 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.- 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:. - 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...
- 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 - 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! - 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/- 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:. - 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).
- 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.
- 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! - 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
- 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
- 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?- 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! - To może , ligand17 28/06/21 15:30
od tego zacznij?- 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! - 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.- 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 |
|
|
|
|