logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

EXCEL, VBA - Jak stworzyć formatkę do modyfikacji numerów z zerami?

Chester87 01 Mar 2015 19:28 1608 10
REKLAMA
  • #1 14490521
    Chester87
    Poziom 8  
    Posty: 6
    Cześć Wam,
    Potrzebuję pomocy przy stworzeniu formatki. Chciałbym by wyglądała w podobnie do tego co widać na zdjęciu w załączniku.

    Opis działania:
    W pierwszym ''okienku" wklejam numer o długości od 8 do 14 znaków zawierających jeden "-". Po naciśnięciu guzika chciałbym by Excel usunął "-" i wstawił zera by było 14 znaków.

    Funkcja, która działa to: =PODSTAW(F10;"-";POWT(0;14-DŁ(F10)+1))
    Niestety nie wiem jak to przerobić na formatkę :(

    Chciałbym by jeszcze by działało to tak, że otwiera się tylko to małe okienko a nie cały arksuz Excela.

    Z góry dziękuje za pomoc
  • REKLAMA
  • #2 14490853
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Witaj
    podst = Application.WorksheetFunction.Rept("0", 15 - Len(TextBox1.Text))
    TextBox2.Text = Application.WorksheetFunction.Substitute(TextBox1.Text, "-", podst)
  • #3 14491059
    Chester87
    Poziom 8  
    Posty: 6
    Super !!! Działa :)

    Jeszcze jedno: Jak ostawić by tylko otwierała się formatka bez całego akusza Excela w tle?
  • REKLAMA
  • #4 14491098
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Application.Visible = False
  • REKLAMA
  • #5 14493720
    Chester87
    Poziom 8  
    Posty: 6
    Sprawa zakończona :)

    Pogrzebałem i udało mi się znaleźć coś takiego:

    Private Sub Workbook_Open()

    nazwaformatki.Show vbModeless

    End Sub

    Ten kod plus: Application.Visible = False

    Sprawia że działa tak jak chciałem :)
  • #6 14497728
    Chester87
    Poziom 8  
    Posty: 6
    Kolejny problem :)

    Jak ustawić by ta formatka była zawsze na wierzchu?

    Próbowałem:
    Private Sub UserForm_Initialize()
    AlwaysOnTop Me.Caption
    End Sub

    Niestety nie działa :(

    Najlepszym rozwiązaniem byłby dodatkowy guzik na formatce dzięki któremu by się włączało / wyłączało status on top. Guzik wiem jak dodać itp ale kodu już nie :(

    Proszę o pomoc
  • #7 14497850
    JRV
    Specjalista - VBA, Excel
    Posty: 2724
    Pomógł: 805
    Ocena: 455
    Chester87 napisał:
    AlwaysOnTop

    Z skad to pochodzi? Gdzie to wziął?
    To nie ma zastosowania do VBA
  • REKLAMA
  • #9 14498071
    Chester87
    Poziom 8  
    Posty: 6
    A coś takiego?:
    Private Sub ToggleButton1_Click()
    If ToggleButton1.Caption = "CLICK" Or ToggleButton1.Caption = "NOT ON TOP" Then
    ' SetWindowPos mlHwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    ' ToggleButton1.Caption = "ON TOP"
    ' Me.lbl9 = "Always on top - OFF"
    SetWindowPos mlHwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    ToggleButton1.Caption = "ON TOP"
    Me.lbl9 = "Always on top - ON"
    Else
    ' SetWindowPos mlHwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    ' ToggleButton1.Caption = "NOT ON TOP"
    ' Me.lbl9 = "Always on top - ON"
    SetWindowPos mlHwnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    ToggleButton1.Caption = "NOT ON TOP"
    Me.lbl9 = "Always on top - OFF"
    End If
    End Sub
  • #10 14498125
    bobo
    Poziom 29  
    Posty: 1318
    Pomógł: 69
    Ocena: 686
    clubs napisał:
    https://www.elektroda.pl/rtvforum/topic2848609.html


    Szkoda że kolega nie podpowiedział co to jest "to" Always on top , a tak to gość utopił się na płytkiej wodzie. :D Klepie kod, w ogóle nie rozumiejąc o co biega.
    Kolego Chester87, poczytaj ten przykład kodu do którego skierował Cię kolega clubs, tam wszystko jest jak na talerzu.

    Pozdrówka

Podsumowanie tematu

✨ Użytkownik poszukiwał pomocy w stworzeniu formatki w Excelu, która umożliwiłaby modyfikację numerów poprzez usunięcie znaku "-" i dodanie zer, aby uzyskać 14 znaków. Odpowiedzi zawierały fragmenty kodu VBA, które realizowały tę funkcjonalność. Użytkownik chciał również, aby formatka otwierała się bez całego arkusza Excela w tle, co udało się osiągnąć dzięki zastosowaniu kodu `Application.Visible = False`. Dodatkowo, pojawił się problem z ustawieniem formatki jako zawsze na wierzchu, co rozwiązano poprzez dodanie odpowiedniego kodu do przycisku na formatce. Dyskusja zakończyła się sukcesem użytkownika w implementacji wymaganych funkcji.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA