Temat: Makra i Visual Basic
Ireneusz P.:
Co lepsze w komórkę nie wpisuje się
dana do czasu jak ponownie zmienie wartość w ComboBox1.
No prawidłowo! Przecież tak właśnie jest napisany kod!
Jeśli prawidłowo zrozumiałam opis, co chcemy tutaj osiągnąć, to powinien być przycisk, a nie wpisywanie wartości z pola tekstowego przy zmianie pola kombi (bardziej logiczne działanie, bo użytkownik może najpierw wybrać coś z pola kombi, zanim wpisze wartość do pola tekstowego i zrobi się "kaszana").
Poza tym ListIndex zwraca indeks wybranej pozycji, dokładnie jej położenie na liście, a nie ma to nic wspólnego z adresem komórki (wiersza) związanego z zakresem komórek, jako źródłem dla listy pola kombi.
Prawidłowo powinno być coś w ten "deseń" (cboLista = ComboBox1, txtWartosc = TextBox1):
Private Sub cmdWpisz_Click()
Dim n As Long
'Aby określić, który jest początkowy wiersz źródła pozycji listy
'można z zakresu Range określonego przez to źródło otrzymać numer wiersza.
'Rozwiązanie uniwersalne, gdy zmieniamy źródło listy i gdy zakresem miałby
'być zakres kolumn z oznaczeniem dwuliterowym.
n = Range(cboLista.RowSource).Row + cboLista.ListIndex
Cells(n, 10).Value = txtWartosc.Value
End Sub