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/Excel - makro - wstawianie obrazu przy wyborze nazwy pliku z listy

NeXiQ 31 Sie 2013 22:05 7860 5
  • #1 31 Sie 2013 22:05
    NeXiQ
    Poziom 8  

    Witam użytkowników,
    Od jakiegoś czasu męczę się z makrem do wstawiania obrazu.
    Postaram się szczegółowo opisać sytuację na przykładzie w pliku (załącznik).

    W arkuszu kosztorys wybieram z listy numer pewnego modelu produktu (ten sam numer ma nazwa pliku obrazu ilustrującego owy model produktu) - pliki obrazów znajdują się w danym folderze na dysku. Automatycznie pobierana jest obok cena z cennika.
    Następnie chciał bym aby owe makro umieszczało mi w arkuszu Oferta obraz danego modelu jednakże w określonej komórce.

    Aby nie było zbyt prosto ;), ważne jest aby zdjęcia były wstawiane w wybrane komórki po kolei.
    Mam na myśli sytuację, kiedy w komórce B3 wybiorę z listy wartość [-], w komórce B4 również [-] i dopiero np. w komórce B5 wybiorę konkretny numer modelu - wówczas ten model pokaże się w pierwszym wolnym polu w arkuszu oferta - czyli w tym przypadku w komórce B14.

    ..itd.

    Mam nadzieję, że wystarczająco zrozumiale opisałem sprawę;)

    Pozdrawiam,

    0 5
  • #2 01 Wrz 2013 10:58
    23844
    Użytkownik usunął konto  
  • #3 20 Wrz 2013 11:36
    blichar1985
    Poziom 2  

    Witam.
    mam z drobna odrębny problem a mianowicie. Pracuję na cenniku w excelu gdzie są numery produktów OE i nasza oraz cena. Chciałbym to zautomatyzować makrem tak aby wyszukiwało po numerze OE i zwracało numer nasz i cenę. Prosze o pomoc. Super gyby to działało w nowym oknie

    Pozdrawiam

    1
  • #4 21 Wrz 2013 08:59
    Maciej Gonet
    Poziom 31  

    Dzień dobry,
    Czy koniecznie musi być makro?
    Tu wystarczy chyba lista rozwijana lub pole kombi i funkcja WYSZUKAJ.PIONOWO. Szkoda, że brak przykładu, nie wiem jak te kody wyglądają, jak są uporządkowane, ile jest pozycji?
    Najprostsze rozwiązanie jest z listą rozwijaną, ale przy dużej liczbie pozycji może być niewygodne. Zastosowanie pola kombi ułatwia proces wyszukiwania, bo można zarówno przewijać listę, jak i pisać w polu i dane dopasują się do tego co wpisane.
    Przykłady w załączniku.

    0
  • #5 23 Wrz 2013 11:36
    blichar1985
    Poziom 2  

    no to tak takie pole kombi byłoby dobrym rozwiązaniem tylko mam problem wstawiając normalne pole kombi nie mam możliwości wpisywani tylko wyboru z listy. Natomiast pole combi Activex nie mogę zaznaczyć danych i nie działa - nie wiem czy trzeba pisać do tego jakiś skrypt w VB. I jeszcze jedno pytanie czy pole combi może wyszukiwać np po kilku numerach np. po OE1 lub OE2. Przykład z cennika w załączniku

    Dzięki za pomoc

    0
  • #6 23 Wrz 2013 19:50
    Maciej Gonet
    Poziom 31  

    Dobry wieczór,
    Powinien Pan użyć formantu ActiveX. W przypadku formantów formularza może Pan tylko wybierać z listy i widoczna jest tylko jedna kolumna, poza tym formant nie zwraca wartości tylko indeks (połozenie na liście). W przypadku formantów ActiveX ma Pan do wyboru pole listy lub pole kombi. Pole kombi wydaje mi się jednak wygodniejsze. Nie trzeba pisać żadnego kodu VBA do obsługi formantu (chociaż można). Formant zwraca wynik wyboru do zdefiniowanej komórki arkusza. Żeby móc korzystać z formantu ActiveX musi Pan wywołać okienko Właściwości (prawy klawisz myszki w trybie projektowania). Jest tam bardzo dużo właściwości, z których niektóre mają wartosci domyślne, ale takie jak zakres listy, czy komórka powiązana są puste i trzeba je samemu wypełnić. Karta właściwości jest w języku angielskim, ewentualny Help też po angielsku (razem z Visual Basiciem). Nie wiem co Pan ma na myśli pisząc o wyborze na podstawie kilku numerów OE. Może Pan wyświetlić w oknie kilka kolumn obok siebie, ale wynik wyboru musi być zawsze z tej samej jednej kolumny (niekoniecznie z wyświetlanej w okienku - właściwość BoundColumn). W przypadku listy jest ona widoczna stale, pole kombi wyświetla listę tylko na czas wyboru. W przypadku listy przyspieszanie wyboru za pomocą klawiatury ogranicza się do pierwszego znaku, w polu kombi podpowiedź może uwzględniać wszystkie wpisane znaki, ale odnosi się to tylko do jednej kolumny (właściwość TextColumn). Jest to w sumie dość skomplikowane, jeśli będzie Pan miał jakieś problemy z osiągnięciem swojego celu, proszę jeszcze napisać. Na razie nie mogę pomóc Panu konkretnie, bo nie wiem jak ma wyglądać końcowy efekt Pana pracy - dał Pan przykład cennika, ale nie pokazał Pan jaki ma być oczekiwany wynik.

    1