ID tematu: 75890
 |
zamiana kropki na przecinek dziesiętny |
Autor |
Wiadomość |
robek
Exceloholic

Wersja: Win Office 365
Posty: 135
|
Wysłany: 03-06-2024, 11:24 zamiana kropki na przecinek dziesiętny
|
|
|
Witam
Mam makro zapisane w pliku który ma 4 zakładki .
Plik otwiera sie na zakładce pierwszej gdzie sa przyciski do makra.
Co trzeba dopisać na początku makra by zadziało w zakładce 3 inne w zakładce 4.
Wklejam prościutkie makro które chcę by działo w zakładce 2 :
Kod: | Sub procent()
'
' procent Makro
'
Columns("J:J").Select
Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Selection.NumberFormat = "0.00%"
Selection.Replace What:="0", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False, FormulaVersion:=xlReplaceFormula2
Selection.NumberFormat = "0.000%"
Selection.NumberFormat = "0.00%"
Selection.NumberFormat = "0.0%"
Selection.NumberFormat = "0%"
End Sub |
|
|
 | ID posta:
435641
|
|
|
 |
|
|
|
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Pomógł: 3601 razy Posty: 10605
|
Wysłany: 03-06-2024, 11:55
|
|
|
Załącz plik z przykładowymi danymi i wyjaśnij co ma robić to makro oraz jaki jest separator dziesiętny w Excelu, w którym to ma działać.
Makro w ogóle wygląda dość irracjonalnie.
Niepotrzebnie używasz selekcji. Selekcja odnosi się do arkusza aktywnego. Żeby używać Selection trzeba najpierw aktywować lub wybrać arkusz, do którego chcesz się odwoływać.
Czyli na przykład:
Kod: | Arkusz2.Select
Columns("J").Select |
Ale lepiej napisać ten kod z instrukcją wiążącą With bez selekcji. |
|
 | ID posta:
435642
|
|
|
 |
|
|
robek
Exceloholic

Wersja: Win Office 365
Posty: 135
|
Wysłany: 03-06-2024, 12:36
|
|
|
Chce aby wciskaj przycisk 2 zadziałał on w zakładce Vat2 .
Oraz potrzebował bym jakieś makro usuwające całe linijki gdzie które w kolumnie S maja zapis IN progeres oraz cancel
Dziękuję za pomoc
TEST.xlsm
|
Pobierz Plik ściągnięto 27 raz(y) 83.06 KB |
|
|
 | ID posta:
435643
|
|
|
 |
|
|
Maciej Gonet
Excel Expert

Wersja: Win Office 365
Pomógł: 3601 razy Posty: 10605
|
Wysłany: 03-06-2024, 13:43
|
|
|
Pisząc makra do zamiany separatora dziesiętnego z wersji angielskiej (kropka) na polską (przecinek), trzeba pamiętać, że VBA "myśli po angielsku", a dopiero później (czego nie widzimy) Excel tłumaczy z angielskiego na polski.
To co jest tekstem jest takie jak to widzimy w arkuszu (kropka, przecinek), natomiast jeśli w arkuszu jest (i ma pozostać) liczba, to dla VBA separatorem dziesiętnym jest kropka, niezależnie od tego co widać w arkuszu.
Dlatego jak mamy w arkuszu tekst z kropką, który ma być liczbą, to trzeba zamienić kropkę na kropkę i ewentualnie zastosować odpowiednie formatowanie liczbowe.
Ale pamiętaj, że formatowanie liczbowe działa tylko na liczby, a nie na teksty. Jeśli w komórce jest tekst, to on tekstem pozostanie i żadne formatowanie liczbowe nie zamieni go na liczbę.
Przykładowy kod działający w arkuszu "Vat2":
Kod: | Sub procent()
'
' procent Makro
With Worksheets("Vat2")
With Intersect(.UsedRange, Union(.Columns("J"), .Columns("H")))
.Replace What:=".", Replacement:=".", LookAt:=xlPart
.NumberFormat = "0.00" ' "0" liczba całkowita
End With
End With
End Sub
| Stawka Vat jest tam podana jako liczba, a nie jako procent, więc jeśli chciałoby się zastosować formatowanie procentowe, to trzeba jeszcze tę liczbę podzielić przez 100.
Ja to zrobiłem w arkuszu 'Gotowe' w kolumnie F, a tu zostawiłem liczby. Oczywiście można też tu, ale trzeba pamiętać o różnicy. Znowu: sformatowanie liczby jako procentu nie podzieli jej samo przez 100, formatowanie to tylko wizualizacja.
Z tym usuwaniem wierszy to odrębna sprawa. Załóż na to osobny wątek i opisz dokładnie co i jak, bo podajesz jakieś wpisy: "IN progeres oraz cancel", a w pliku w arkuszu 'VAT' jest co najwyżej "IN_PROGRESS", a to nie jest to samo!!!
TEST (robek).xlsm
|
Pobierz Plik ściągnięto 30 raz(y) 84.09 KB |
|
|
 | ID posta:
435646
|
|
|
 |
|
|
robek
Exceloholic

Wersja: Win Office 365
Posty: 135
|
Wysłany: 04-06-2024, 12:19
|
|
|
Wiekie dzięki jest super |
|
 | ID posta:
435672
|
|
|
 |
|
|
|
Nie możesz pisać nowych tematów Nie możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum
|
Dodaj temat do Ulubionych Wersja do druku
|
|
Strona uĹźywa plikĂłw cookies.
Kliknij tutaj, Ĺźeby dowiedzieÄ siÄ jaki jest cel uĹźywania cookies oraz jak zmieniÄ ustawienia cookie w przeglďż˝darce.
KorzystajÄ
c ze strony uĹźytkownik wyraĹźa zgodÄ na uĹźywanie plikĂłw cookies, zgodnie z bieĹźÄ
cymi ustawieniami przeglÄ
darki.
SprawdĹş, w jaki sposĂłb przetwarzamy dane osobowe
|