Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 75890 Skopiuj do schowka zamiana kropki na przecinek dziesiętny
Autor Wiadomość
robek
Exceloholic


Posty: 133
Wysłany: 03-06-2024, 12: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 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 365
Pomógł: 3469 razy
Posty: 10236
Wysłany: 03-06-2024, 12: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 Skopiuj do schowka
 
 
robek
Exceloholic


Posty: 133
Wysłany: 03-06-2024, 13: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 5 raz(y) 83.06 KB

ID posta: 435643 Skopiuj do schowka
 
 
Maciej Gonet 
Excel Expert


Wersja: Win Office 365
Pomógł: 3469 razy
Posty: 10236
Wysłany: 03-06-2024, 14: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 8 raz(y) 84.09 KB

ID posta: 435646 Skopiuj do schowka
 
 
robek
Exceloholic


Posty: 133
Wysłany: 04-06-2024, 13:19   

Wiekie dzięki jest super
ID posta: 435672 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
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

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

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