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

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

Laik2013 10 Apr 2014 08:32 2844 5
  • #1
    Laik2013
    Level 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.
  • #2
    JRV
    VBA, Excel specialist
    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
  • #3
    Laik2013
    Level 11  
    Cześć,

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

    Code: vbscript
    Log in, to see the code
  • Helpful post
    #4
    JRV
    VBA, Excel specialist
    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
  • #5
    Laik2013
    Level 11  
    JESTEŚ WIELKI !

    Dzięki działa jak marzenie :)
  • #6
    JRV
    VBA, Excel specialist
    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)=...