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.

Excel VBA - Wprowadzanie danych z jednego Excela do drugiego po przez Listbox

Laik2013 10 Kwi 2014 08:32 2166 5
  • #1 10 Kwi 2014 08:32
    Laik2013
    Poziom 11  

    Witam,

    Mam problem odnośnie aktualizowania danych w innym pliku Excela za pomocą ListBox.
    Tzn, w jednym pliku Excela mam UserForm z Listbox która zaciąga dane z konkretnego pliku Excela.
    W tym UserForm mam dodatkowo 19 Textboxów do których po kliknięciu na wiersz w Listbox kopiowane są wybrane wartości.
    Problem u mnie polega na tym że jak chce zaktualizować dane w skoroszycie z którego Listbox zaciąga dane (czyli jak coś zmienie w jednym z Textboxów) wywala mi błąd i nie potrafię tego skorygować.
    W UserForm mam także przycisk Delete, który ma za zadanie usunąć wybrany cały wiersz w tym samym pliku Excela.

    Poniżej zamieszczam przykładowy plik.

    Dziękuję za pomoc.

    0 5
  • #2 10 Kwi 2014 09:17
    JRV
    Specjalista - VBA, Excel

    Witaj
    Worksheets("TLP").Cells(pozycja, k).Value = Controls("txt" & k & "v").Value
    pozycja nie jest określona, być może należy zdefiniować jako globalny.

    albo przed tym je weź:
    pozycja = ListBox1.ListIndex

    Worksheets("TLP").Cells(ListBox1.ListIndex, k).Value = Controls("txt" & k & "v").Value

    0
  • #3 10 Kwi 2014 09:41
    Laik2013
    Poziom 11  

    Cześć,

    Zrobiłem tak jak napisałes ale niestety nadal mam ten sam błąd :(

    Kod: vb
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #4 10 Kwi 2014 10:14
    JRV
    Specjalista - VBA, Excel

    Aj
    For k = 0 To 18
    Kolumna nie moze byc 0
    Worksheets("TLP").Cells(ListBox1.ListIndex+1, k+1).Value = Controls("txt" & k & "v").Value

    0
  • #5 10 Kwi 2014 10:28
    Laik2013
    Poziom 11  

    JESTEŚ WIELKI !

    Dzięki działa jak marzenie :)

    0
  • #6 10 Kwi 2014 10:37
    JRV
    Specjalista - VBA, Excel

    Dla wygody, bez względu na to, czy aktywny skoroszyt "BAZA" warto na początku
    Dim baza as Range
    ....
    a następnie
    set baza = .Sheets("TLP").Range("A1:S" & zakres)
    usfWESOP.ListBox1.List=baza.Value
    .....
    baza(ListBox1.ListIndex+1, k + 1)=...

    0