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

Pytanie odnośnie inputbox w vba - excel 2007

01 Wrz 2010 19:27 2409 7
  • Poziom 9  
    Witam
    mam pytanie odnośnie programowania w vba w excel-u 2007 - chciałbym aby po wciśnięciu przycisku wyskoczyło Inputbox (z tym nie mam problemu) ale chciałbym aby po wpisaniu interesującej mnie treści, znalazła się ona w określonej komórce dla przykładu C3. W momencie kiedy komórka jest już zapełniona (znajduje się w niej już jakiś tekt/wartość) po wpisaniu w Inputbox tekstu, chciałbym aby wpisany tekst znalazł się w komórce C4 czyli niższej i tak dalej.
    Podsumowując - startujemy w C3, jeżeli jest już zajęta to tekst z InputBox wskakuje do C4, jeżeli C4 jest zajęta to tekst z InputBox wskakuje do C5 itd.

    Z góry dziękuję za odpowiedź

    Pozdrawiam
  • Poziom 9  
    Dziękuję za odpowiedź i link do strony. Zobaczę czy sobie poradzę w razie czego będę pisać o dalszą pomoc
  • Pomocny post
    Poziom 14  
    Pętla nie jest tu do niczego potrzebna. Uzyj takiego czegoś
    Code:
    If Cells(3, 3) = "" Then
    
        Cells(3, 3) = InputBox("Podaj cos")
    Else
        Cells(Cells(65536, 3).End(xlUp).Row + 1, 3) = InputBox("Podaj cos")
    End If
  • Pomocny post
    Poziom 15  
    a co z wierszem 65538 ?
  • Pomocny post
    Moderator Programowanie
    :arrow: tagy
    Słuszna koncepcja. Ale jeśli "dziura" jest wewnątrz (dalsze wiersze zawierają już coś), to wartość wpisana zostanie w ostatnim wierszu. Sprawdzałbym raczej od góry
    Code:
    Cells(Cells(3, 3).End(xlDown).Row + 1, 3) = InputBox("Podaj cos")
  • Pomocny post
    Poziom 14  
    adamas_nt napisał:
    :arrow: adamas_nt
    Ale jeśli "dziura" jest wewnątrz

    A skąd się weźmie jak od komórki C3 dane wprowadzane są za pomocą InputBoxa?
  • Pomocny post
    Moderator Programowanie
    Istnieje klawisz [Del], z którego użytkownik mógł (wielokrotnie) skorzystać.
    Arkusz został skopiowany z innego pliku i zawiera dziury.
    Dane pochodzą z importu pliku tekstowego, html, wyniku działania kwerendy (tu wszystko możliwe).
    Poza tym całość można zmieścić w dwóch linijkach
    Code:
    odj = IIf(Cells(3, 3) = "", -1, 1)
    
    Cells(Cells(3, 3).End(xlDown).Row + odj, 3) = InputBox("Podaj cos")

    a na upartego w jednej
    Code:
    Cells(Cells(3, 3).End(xlDown).Row + IIf(Cells(3, 3) = "", -1, 1), 3) = InputBox("Podaj cos")

    i nie gra roli wersja Excela.
    Pewnie jeszcze kilka by się znalazło.
    Lepiej dmuchać na zimne. Jeśli zrobisz 10 zabezpieczeń, ktoś na 11 sposób i tak je ominie...
    Ale to tylko moje, skromne zdanie.

    Jeśli autorowi chodzi o zapełnienie wielu "dziur" za jednym uruchomieniem makra , to sugestia kolegi szpila_forever jest jak najbardziej na miejscu...