Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

VBA - edytowanie wiersza z danymi i zapisywanie wprowadzonych zmian

oreczka12 23 Sie 2012 23:11 1848 4
  • #1 23 Sie 2012 23:11
    oreczka12
    Poziom 9  

    Witam,

    Mam formularz do wyszukiwania danych z tabelki, po wyszukaniu danych znajdujących się w pliku Excel, które wyświetlą się w formularzu chciałabym teraz móc te dane edytować i wprowadzić zmiany poprzez formularz i zapisać aby w pliku Excel były już zmienione dane. Czy ktoś pisał podobny program? Może mnie jakoś naprowadzić, od czego zacząć?
    Z góry dziękuję za odpowiedź

    0 4
  • #2 23 Sie 2012 23:20
    adamas_nt
    Moderator Programowanie

    Trzeba odwrócić kolejność przypisania w kodzie i podpiąć pod osobny przycisk. Możesz wrzucić ten formularz w załączniku? Lub chodziarz kod...

    0
  • #3 23 Sie 2012 23:34
    oreczka12
    Poziom 9  

    W załączeniu kod wyszukiwania danych, po znalezieniu danych poprzez formularz chciałabym edytować, czyli odblokować komórki i dokonać zmian po czym aby te zmiany zapisały się w pliku głównym z danymi, wiem że muszę w pliku dodać kolumnę z ID aby identyfikowało, w którym wierszu powinny zostać zapisane te zmiany.
    W załączeniu kod do wyszukiwania

    0
  • #4 23 Sie 2012 23:58
    adamas_nt
    Moderator Programowanie

    O rany :) przydałby się też formularz.
    Ale tak na oko. Możesz wykorzystać te same zmienne obiektowe oWbk, oWsh oraz k1 do k4, deklarując je w Global (na samej górze przed procedurami). Wartości zostaną przypisane i zapamiętane do zamknięcia formularza przy uruchomieniu Szukaj_wyniku_lista. Nie zamykaj w obecnej procedurze pliku oWbk, tylko Np przy zamykaniu formularza (zdarzenie).
    Napisz wszystko odwrotnie, przypisując wartości pól formularza do komórek. Zapisy będą bardzo podobne Np oWsh.Cells(i, k1)=Formularz.text_wu1

    P.S. Pamiętaj, że to nie Pascal, Delphi, etc.
    Deklaracja: Dim a, b As String jest nieprawidłowa. W efekcie masz a typu Variant oraz b typu String.
    Powinno być: Dim a As String, b As String

    0
  • #5 31 Sie 2012 23:40
    oreczka12
    Poziom 9  

    W załączeniu kod, który zapisuje dane, te które wprowadzamy wstawiane są do pierwszego wolnego wiersza, a te które chcemy zaktualizować zapisują się zmiany w tym wierszu o zadanym ID_wiersza. Kod jednak mi nie działa pojawia się komunikat, Else without If, ale nie mogę sobie z tym poradzić i znaleźć gdzie brakuje w kodzie If
    Z góry dziękuję za pomoc

    0