Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

VBA excel makro - Nie wiem jak stworzyc obliczenie z tabel warunkowych

szakalek1993 04 Apr 2017 18:19 1113 9
  • #1
    szakalek1993
    Level 7  
    arkusz 2 dane
    tam mam 2 tabele z danymi
    waga paczki do 20kg =14zl
    waga paczki do 30kg =15zl
    waga paczki do 35kg = 23zl

    Jezeli paczka przekracza 200cm to do ceny bazowej doliczamy 80zl

    ubezpieczenie
    do 10000zl - 1 zl
    do 20000zl -3zl
    do 50000zl - 7
    powyzej 50000zl - 0,02% wartosci bazowej

    w zalaczniku excel userform1 wszystko jest opisane

    przykladowo wpisze paczke 15kg ubezpieczenie 20000 zaznacze dluznice to zwroci mi wynik 14+3+80 w text box wynik
    VBA excel makro - Nie wiem jak stworzyc obliczenie z tabel warunkowych
  • #2
    adamas_nt
    Moderator of Programming
    To bardzo piękny plik. Zupełnie pozbawiony błędów ;) A makra pewnie w osobistym...
  • #3
    szakalek1993
    Level 7  
    Witam,

    Pierwszy raz pisze posta tutaj ,wiec przepraszam za błędy , plik tez się nie wrzucił ten co chciałem ,dodałem zdjęcie które nakreśli o co mi dokładniej chodzi.
    Zacząłem już coś pisać, nie jestem expertem ,ale nie działała tak jak powinno mam problem z warunkami
    tzn nie zapisuje /deklaruje mi chyba zmiennej po podaniu wartości .Nie mam też pomyślu jak moge napisać taki cały schemat aby mi to prawidłowo obliczało wartości


    Dim a As Integer



    If TextBox15.Value <= 10 Then
    a = 14
    ElseIf TextBox15.Value <= 30 Then
    a = 15
    ElseIf TextBox15.Value <= 35 Then
    a = 23
    Else
    MsgBox ("Podałeś zbyt dużą wartość wagi")
    End If


    If TextBox15.Value >= 1 Then
    a = 14
    ElseIf TextBox15.Value = 12 Then
    a = 15
    Else
    a = 6
    End If


    TextBox17.Value = a '* TextBox16.Value

    '
    '
    '
    '
    ' Arkusz2.Range ("o32")
    'TextBox15 waga
    'TextBox16 ubezpieczenie
    'TextBox17 wynik
  • #4
    adamas_nt
    Moderator of Programming
    Wrzuć plik z tym formularzem (xlsm trzeba spakować zip/rar).
  • #5
    szakalek1993
    Level 7  
    Hej wrzucam Ci to. Mam useform ustawiony ze jest tylko widoczny .
    W pierwszej zakladce "zlecenia" podglad i sie excel wyswietli . W sumie jestes expertem wiec poradzisz sobie. Powodzenia i z góry wielkie dzięki za pomoc
  • #6
    adamas_nt
    Moderator of Programming
    Nikt się jakoś nie garnie :)
    Sprawa wg mnie prosta. Wystarczy Select Case. Napisz w którym miejscu (miejscach) ma się to wyliczanie odbywać.

    Na marginesie uwaga: nigdzie nie masz Application.quit. Sprawdzałeś w menedżerze ile masz instancji Excela w pamięci (po zamknięciu formularza)?
  • #7
    Prot
    Level 38  
    szakalek1993 wrote:

    Zacząłem już coś pisać, nie jestem expertem :D ,ale nie działała tak jak powinno mam problem z warunkami


    Jestem pełen podziwu, że z umiejętnościami poniżej poziomu "eksperckiego" podejmujesz się budowy tak złożonego projektu :idea:

    Przy tworzeniu każdego projektu VBA - ja (też nie uważam się za eksperta :D ) preferuję tworzenie modułowego modelu funkcjonalnego skryptu.
    Przy Twoim złożonym wielostronicowym formularzu też aż się prosi by podzielić ten projekt na moduły obsługujące każdą stronę osobno. Łatwiej będzie wówczas dopieścić kod każdego modułu - każdej strony formularza i osiągnąć założoną funkcjonalność. Potem tylko poskładasz wszystkie przetestowane "klocki" w jedną całość, uzupełnisz kodem przejść między stronami formularza oraz powrotu do poprzedniej strony i zamknięcia - i wszystko hula jak powinno :idea:

    W Twoim formularzu prawie nic nie działa jak powinno (no wg moich oczekiwań :cry: ) a na dodatek pominąłeś zastosowanie przycisków sterowania poruszaniem się po formularzu.


    szakalek1993 wrote:

    Code: vbscript
    Log in, to see the code



    Odnośnie tej strony, która wg Ciebie sprawia Ci problemy - to proponuję rozważ jakie wartości mogą być wpisywane do TextBoxów ? No tak jak wpiszesz te liczby w cudzysłowy - to te warunki zaczną działać :!:
    No, no działać tak jak sformułowałeś to w tych "dziwnych" warunkach - Value >= 1 :?: więc nic dziwnego, że zwykle wartość zmiennej a=14.
  • #8
    szakalek1993
    Level 7  
    Potrzebuje zrobić to co teraz wrzucilem ten plik nie potrzebuje zadnego sterowania itd ponieważ jest on idealnie funkcjonalnoscia dopasowany pod moje użytkowanie i potrzeby :)

    probowalem tez z tym case of ale po wpisaniu teoretycznie tej wartosci a i podam np wartosc 15 to czy wpisze cos innego czy nie wpisze to zawsze ta sama wartosc otrzymuje .
    Potrzebuje aby mi wyliczalo tak jak to na zdjeciu wrzucilem . a nie moge nic podobnego na youtube znalezc aby oprzec sie na jakims przykladzie .
  • #10
    szakalek1993
    Level 7  
    Powyzszy kod rozwiązał mój problem i juz wiem gdzie popełniałem błąd.