Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: [Excel] problem poczatkujacego hlp
Dronio




Typ: neutral
Postów: 7
Zarejestrowany: Apr 2005
[Excel] problem poczatkujacego hlp

mam pytanie jak zrobic w VBA zeby jak wpisze w textboxie jakis nr np. 8457 wyswietlilo mi do tego numeru jakis tekst badz obojetnie co do niego przypisze ....

z gory dzieki za help !

15-04-2005 00:01
Pokaż profil Dronio  Wyślij email do Dronio   
Dronio




Typ: neutral
Postów: 7
Zarejestrowany: Apr 2005

chodzi mi oto ze tych numerow jest dosc sporo i powiedzmy do kazdego chce przypisac jakas "nazwe"
i zalezy mi zeby to bylo w formie wyszukiwanie czyli wpisze sobie w textboxie albo msgbox np. 2345345 i on mi ladnie wyswietli do tego "nazwe"
chyba przez msgbox bylo by to najlpiej zrobic zeby wyswietla zapytanie o numer a pozniej pokaz do tego numeru nazwe

[Post edytowany dnia 15-04-2005 00:25 przez Dronio]

15-04-2005 00:11
Pokaż profil Dronio  Wyślij email do Dronio   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Przyjacielu, a jak Ty się do tego zabrałeś?
Skąd pobierać dane?
Skąd wiesz, że dla 123456 ma być nazwa XYZ?

Daj trochę więcej szczegółów...


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

16-04-2005 20:29
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Mam dyżur, nic się nie dzieje....śpiochy...

Dronio

- Zakładam, że potrafisz się posługiwać nazwami.
- Zakładam , że Twoje liczby są w kolumnie A i nie ma między nimi pustych komórek, teksty w kolumnie B  arkusz nazywa się "dronio"....

W menu Wstaw/Nazwa/Definuj wstaw następujące nazwy:

liczby=PRZESUNIĘCIE(dronio!$A$1;0;0;ILE.NIEPUSTYCH(dronio!$A:$A);1)
mojatablica=PRZESUNIĘCIE(dronio!$A$1;0;0;ILE.NIEPUSTYCH(dronio!$A:$A);2)
teksty=PRZESUNIĘCIE(dronio!$A$1;0;1;ILE.NIEPUSTYCH(dronio!$A:$A);1)


Metoda 1-sza bez formularza, Inputbox itd...

- Zakładam, że będziesz wpisywał liczbę do wyszukiwania na przykład w komórce $D$1, a wynikowy tekst zechcesz mieć w komórce $D$2, wówczas w komórce $D$2 wystarczy wpisać formułę:

=JEŻELI(CZY.PUSTA($D$1);"";JEŻELI(CZY.BRAK(WYSZUKAJ.PIONOWO($D$1;mojatablica;2;FAŁSZ));"";WYSZUKAJ.PIONOWO($D$1;mojatablica;2;FAŁSZ)))

Można tutaj wykorzystać też dla komórki $D$1 sprawdzanie poprawności danych, sprawiając, że w komórce tej pojawi się lista liczb z kolumny A do wybrania. Wówczas należy po wybraniu komórki $D$1

-  menu/Dane/Sprawdzanie Poprawności
- dozwolone Lista
- źródło      =liczby
- ignoruj puste
- rozwinięcie w komórce

Metoda 2-ga
- w oknie kodu VBA dodajemy formularz, na nim
- TextBox TxtLiczba
- CommandButton cmdznajdz
- Label  lblTekst

Kod formy mógłby wyglądać tak:

******************************
Option Explicit

Function Wyszukaj1(ByVal sLiczba As String) As Boolean
On Error GoTo Wyszukaj1_Error
Dim oRng As Range
Dim liczba
If Len(Trim(sLiczba)) <> "" Then
    ie wiem jaki typ ma być tej liczby
    If IsNumeric(sLiczba) Then
        liczba = CDbl(sLiczba)
        With ThisWorkbook.Worksheets("dronio" )
            .Activate
            ' poniżej wykorzystana nazwa liczby
            With .Range("liczby" )
            Set oRng = .Find(liczba, LookIn:=xlValues)
                If Not oRng Is Nothing Then
                    Wyszukaj1 = True
                    oRng.Offset(0, 1).Select
                    Me.lblTekst.Caption = oRng.Offset(0, 1).Text
                End If
            End With
        End With
    Else
        MsgBox "Wprowdzona wartość nie jest liczbą"
        Me.txtLiczba.SetFocus
    End If
Else
    ''' .... tu sobie napisz co zrobić
    MsgBox "Nie wprowadzono wartości do wyszukiwania"
    Me.txtLiczba.SetFocus
End If

Wyszukaj1_Exit:
Set oRng = Nothing
Exit Function

Wyszukaj1_Error:
MsgBox "Błąd - " & Err.Number & vbCrLf _
            & "Opis -  " & Err.Description & vbCrLf _
            & "Procedura - " & "Wyszukaj1", vbExclamation, "VBAProject - Wyszu1"
Resume Wyszukaj1_Exit
End Function

Private Sub cmdznajdz_Click()
    Call Wyszukaj1(Me.txtLiczba)
End Sub
******************

- dodaj moduł, w module

Sub PokazForme()
frmszukaj.Show
End Sub

- na arkuszu z ToolBoxa Formularze dodajemy przycisk , przyporządkujemy mu makro np.:

mojskoroszyt.xls!PokazForme()
frmszukaj.Show
End Sub

Oczywiście na formie mógłby być ComboBox, tylko, jeśli tych liczb jest dużo, i nie możesz (????) wykorzystać sortowania to nie miałoby to sensu bo z listy trudno byłoby wybrać liczbę (to samo odnosi się wspominanego wyżej sprawdzania poprawności), trzeba byłoby posortować tablicę, ale nie wiem czy Cię taka opcja interesuje. ???

P.S. Dużo tych założeń, ale niestety mało też jak wspomniał Maciek podałeś informacji ( co jest grzechem wielu pytających !!!!! i człowiekowi wówczas nie chce się zagłębiać w zagadnienie, miejcie to na uwadze), a więc przystosować do swoich potrzeb i radzić dalej musisz sobie sam...

Mam też jeszcze 1-den postulat, bardzo dużo osób loguje się i zdaje pytania  jako "anonim", tylko, że wtedy nie wrasta liczba zarejestrownych uczestników Forum, szkoda... przecież nikt Was nie ugryzie Panie i Panowie, dlaczego tak się chowacie ???
Możecie w końcu rejetsrować się pod nazwą na przykład "FacetNiezwyklePrzecudnejUrody2423".... .

No tak wyraźnie się nudzę.... a do rana jeszcze daleko... pracować nad czymś się już nie chce....

Dronio to nie była uwaga do Ciebie, o tych anonimach....

Dobra, czekam teraz na pouczenie moderatora o wstawkach nie na temat, przyznaję się do winy.... aczkolwiek nie mogę obiecać, że się kiedykolwiek poprawię, sorry.............

[Post edytowany dnia 17-04-2005 04:34 przez karolinavb]


_____________________________________________
Karolina

17-04-2005 04:10
Pokaż profil karolinavb  Wyślij email do karolinavb   
Dronio




Typ: neutral
Postów: 7
Zarejestrowany: Apr 2005

dzieki wielkie za hlp a teraz troszke pytania
wlasnie nie chce zeby to byl ComboBox bo tych cyferek jest sporo ( ponad 500) i nie chce wlasnie zeby to bylo rozwijane tylko ze jak sobie wpisze w textbox jakas cyfre (wkleje) to odrazu mi znajdzie do neij text

karolinavb ok zrobilem jak napisalas czyli wstawilem w forme textboxa,CommandButton i Label

przyjmijmy ze wszystkie te cyfry sa w kolumnie A i nazywaja sie "liczby" a nazwy do tych liczb sa w kol. B i nazwyja sie "nazwa"

teraz jak to mam przypisac zeby mi szual wlasnie w tych "liczbach" odpowiedniej nazwy za pomoca textboxa albo inputbox

tutaj mam program ktory wstawia nazwe dla zaznaczonego pola i na przykladzie tego programu dalo by sie zrobi ten moj wyszukjacy ? oczywiscie kasuja nie potrzebne rzeczy a dodajac te potrzebne chce zeby bylo np. w inputbox podaj nr i jak podam numer to odrazu poda mi nazwe do tego , sorka ze moze pisze zamotale ale nie jestem za dobry z VBA i potrzebuje was



Dim zakres As Object, komórka As Object
  Set zakres = Application.InputBox("Zaznacz obszar:", Type:=8)
    za = zakres.Rows.Count
    kol = zakres.Columns.Count
    zakres.Select
    ActiveWorkbook.Names.Add Name:=InputBox("podaj nazwe", RefersToR1C1:=Selection



Z GORY DZIEKI ZA POMOC

[Post edytowany dnia 17-04-2005 11:31 przez Dronio]

17-04-2005 09:13
Pokaż profil Dronio  Wyślij email do Dronio   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Czegoś nie rozumiem, więc mnie oświeć...

Skoro masz nazwy w kolumnie B i numery w kolumnie A, to po co Ci ustawianie Nazw Excel'a?

Poza tym Karolinka już napisała Ci kod do wyszukiwania.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

17-04-2005 11:33
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Dronio




Typ: neutral
Postów: 7
Zarejestrowany: Apr 2005

przeciez napisalem "czy na przykladzie tego programu do dalem" dalo by sie zrobic ten z wyszukiwanie to mial byc czysty przyklad .....

[Post edytowany dnia 17-04-2005 13:05 przez Dronio]

17-04-2005 13:04
Pokaż profil Dronio  Wyślij email do Dronio   
Dronio




Typ: neutral
Postów: 7
Zarejestrowany: Apr 2005

ok tutaj zamiescilem to w pliku ale dalej nie che mi pojsc moze jeakies korekty ??
http://rapidshare.de/files/1305028/test.xls.html na strnie trzeba dac free i wtedy odesle was do linku chodzi mi oto ze jak wpisze zly numer zeby pokazlo ze jest zly numer ....

JESZCZE RAZ THX ZA HELP

[Post edytowany dnia 17-04-2005 13:31 przez Dronio]

17-04-2005 13:20
Pokaż profil Dronio  Wyślij email do Dronio   
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

Dronio
Aby Twój przykład chodził musisz poprawić nazwę teksty:
masz dokladnie tak :

=" =PRZESUNIĘCIE(dronio!$A$1;0;1;ILE.NIEPUSTYCH(dronio!$A:$A);1)"
a powinno być tak:

=PRZESUNIĘCIE(dronio!$A$1;0;1;ILE.NIEPUSTYCH(dronio!$A:$A);1)

na skutek 2-ch znaków równości Excel dodał  cudzysłowy itd..

Natomiast jeśli chodzi o przytoczony przez Ciebie kod, to tak jak Maciek pisze, nie jest to wyszukiwanie, tylko próba dodania do kolekcji nazw kolejnej nazwy dla danego zakresu komórek:


Help: Etykiety i nazwy w formułach informacje

Można używać etykiet kolumn i wierszy w arkuszu, aby odwoływać się do komórek w tych kolumnach i wierszach. Można również tworzyć opisowe nazwy reprezentujące komórki, zakresy komórek, formuły lub wartości stałe


Więc tak naprawdę nie wiem o co Ci chodzi ? To ma być namiastka managera nazw, czy wyszukiwanie, żeby znowu niepotrzebnie nie pisać czegoś?

[Post edytowany dnia 17-04-2005 13:48 przez karolinavb]


_____________________________________________
Karolina

17-04-2005 13:41
Pokaż profil karolinavb  Wyślij email do karolinavb   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Umieść nowy moduł i wklej w nim poniższy kod.


Option Explicit

Sub SzukajLiczby()
Dim liczba As Double
Dim sNazwa As String

On Error GoTo Err_SzukajLiczby

liczba = CDbl(InputBox("Podaj liczbę...", "Podaj liczbę...", "")
sNazwa = DajNazwe(liczba)
MsgBox sNazwa, vbInformation, "Wynik wyszukiwania"

Exit_SzukajLiczby:
    Exit Sub
Err_SzukajLiczby:
    Resume Exit_SzukajLiczby
End Sub

Function DajNazwe(liczba As Double) As String
Dim i As Long

DajNazwe = "Nie ma nazwy odpowiadającej dla tej liczby!"

i = 1
Do
    If CStr(liczba) = ThisWorkbook.Worksheets("dronio".Range("A" & i) Then
        DajNazwe = ThisWorkbook.Worksheets("dronio".Range("B" & i)
        Exit Do
    End If
    i = i + 1
Loop While ThisWorkbook.Worksheets("dronio".Range("A" & i) <> ""

End Function


Umieść przycisk w swoim arkuszu, a do tego przycisku przypisz procedurę SzukajLiczby

Wszystko powinno działać!
Mam nadzieję, że o to Ci chodziło!

I jeszcze jedno...
Nie umieściłem w kodzie, tak jak zrobiła to elegancko Karolinka, sprawdzenia czy użytkownik wpisał liczbę. Możesz korzystając z jej rozwiązań wzbogacić mój kod o tę funkcjonalność.

[Post edytowany dnia 17-04-2005 20:38 przez losmac]


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

17-04-2005 20:35
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Dronio




Typ: neutral
Postów: 7
Zarejestrowany: Apr 2005

dzieki wielkie losmac i karolina

mam tylko pytanko do losmac jak zrobic zeby mi wynik byl pogrubiona czcionka lamerskie pytanie ale sorka orlem z VBA nie bylem

[Post edytowany dnia 17-04-2005 21:42 przez Dronio]

17-04-2005 21:14
Pokaż profil Dronio  Wyślij email do Dronio   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

Dronio,

Mam prośbę, pisz i mów po polsku, bo po "naszemu" nie rozumiem
Wiesz, swoje lata mam, a młodzieżowego slangu nijak nauczyć się nie umiem... bo nie chcę.

W Office'97 mogłeś formatować komunikat za pomocą @, np.: Coś tam@ coś tam @ coś tam - dawało 3 linijki, gdzie pierwsza była pogrubiona.
(przyznam Ci się szczerze, że nie pamiętam, by takie formatowanie działało w Excelu, a napewno działało w Accessie)

Kolejne wersje Office'a, niestety, tego nie umożliwiają.


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

17-04-2005 23:05
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
Dronio




Typ: neutral
Postów: 7
Zarejestrowany: Apr 2005

to mam jeszcze jedno pytanie
wszystko dziala ok ale chcialbym zrobic zeby czytalo mi tez wartosc z kolumny C tutaj zamieszczam plik http://rapidshare.de/files/1349147/test.xls.html

czyli chcialbym zeby po wspisaniu wartosci "A" pokazł mi wartos " B i C"

[Post edytowany dnia 20-04-2005 12:53 przez Dronio]

20-04-2005 12:51
Pokaż profil Dronio  Wyślij email do Dronio   
Wszystkich odpowiedzi: 12 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1