Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[Excel] Jak zastosować tutaj pętle For albo jakąś inną.

Idź do strony Poprzedni  1, 2, 3, 4, 5  Następny

 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Oprogramowanie biurowe
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
czarodziejczarek



Dołączył: 19 Kwi 2017
Posty: 24

PostWysłany: Pią Kwi 21, 2017 6:48 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Nie łącze by było wyraźnie, znalazłem takie coś na jakimś niemieckim forum...

Kod:
okno1 = Application.InputBox("Początek usuwanego terminu (  dzień ). Wpisz liczbę porządkową." & vbCrLf  & "Z przedziału od 1 do " & d & ".", "Rejestrator pokoi 2017.", 1, , , , , 1)

okno2 = Application.InputBox("Koniec usuwanego terminu ( dzień ). Wpisz liczbę porządkową." & vbCrLf & "Z przedziału od 1 do " & e & ".", "Rejestrator pokoi 2017.", 1, , , , , 1)
(Do kodu stosuj znaczniki code[] - Samolot)

Opis:
https://books.google.de/books?id=5GhiwgFDdHYC&pg=PT197&lpg=PT197&dq=Application.Inputbox+vba+opis&source=bl&ots=IrG5ODJZgj&sig=MMYommXb_3O_7p9U4pp4dsmj5x8&hl=pl&sa=X&ved=0ahUKEwi1hrHci7bTAhUEEpoKHVDqAhQQ6AEIXjAJ#v=onepage&q=Application.Inputbox%20vba%20opis&f=false

Liczba 1 odpowiada za cyfry :-)

https://books.google.de/books?id=q8x5DQAAQBAJ&pg=PA110&lpg=PA110&dq=Application.Inputbox+vba+opis&source=bl&ots=eQekw5hcEU&sig=rOgsTYndKx3OZZ2rxQ2Sik5M8YI&hl=pl&sa=X&ved=0ahUKEwi1hrHci7bTAhUEEpoKHVDqAhQQ6AEITzAG#v=onepage&q=Application.Inputbox%20vba%20opis&f=false


Strona 196 ;-) DE
Strona 111 ;-) USA

Pozdrawiam
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
samolot



Dołączył: 26 Sty 2006
Posty: 8151
Skąd: Toruń

PostWysłany: Pią Kwi 21, 2017 7:53 pm      Temat postu: Odpowiedz z cytatem Pisownia

czarodziejczarek napisał:
...czy istnieje możliwość zablokowania w "OKNIE INPUTBOX" wprowadzania tekstu to znaczy, że wprowadzamy tylko i WYŁĄCZNIE cyfry.
Tak.

czarodziejczarek napisał:
znalazłem takie coś na jakimś niemieckim forum...
Kod:
okno1 = Application.InputBox("Początek usuwanego terminu ( dzień ). Wpisz liczbę porządkową." & vbCrLf & "Z przedziału od 1 do " & d & ".", "Rejestrator pokoi 2017.", 1, , , , , 1)
okno2 = Application.InputBox("Koniec usuwanego terminu ( dzień ). Wpisz liczbę porządkową." & vbCrLf & "Z przedziału od 1 do " & e & ".", "Rejestrator pokoi 2017

Ten kod namawia użytkownika do wprowadzenia prawidłowych danych, co nie oznacza, że użytkownik zawsze tak zrobi.
Dlatego dalej w kodzie należy najpierw te dane poddać walidacji i dopiero dalej użyć do dalszego przetwarzania.

_________________
Nie zadawaj bezcelowych pytań / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
czarodziejczarek



Dołączył: 19 Kwi 2017
Posty: 24

PostWysłany: Pon Maj 01, 2017 12:29 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Kod:

Sub NumerPESELsprawdzanie2szukanie()

Dim wiadomosc As String
Dim Liczbaszukana, Liczbaszukana2 As String
Dim i, j As Integer

Liczbaszukana = UserForm7.TextBox7.text

If Liczbaszukana = "0" Then 'KOD TYLKO DLA PESEL
Exit Sub
End If

For i = 2 To 200

    For j = 1 To 1
    
    If Arkusz3.Cells(i, j + 4) = Liczbaszukana Then ' W PIATEJ KOLUMNIE SA NUMERY PESEL.
    
    UserForm7.TextBox9.text = Arkusz3.Cells(i, j + 1) 'imię
    UserForm7.TextBox10.text = Arkusz3.Cells(i, j + 2) 'nazwisko
    UserForm7.TextBox11.text = Arkusz3.Cells(i, j + 3) 'adres
    UserForm7.TextBox12.text = Arkusz3.Cells(i, j + 4) 'pesel
    UserForm7.TextBox13.text = Arkusz3.Cells(i, j + 5) 'nip
    UserForm7.TextBox14.text = Arkusz3.Cells(i, j + 6) 'regon
    UserForm7.TextBox18.text = Arkusz3.Cells(i, j + 7) 'bank
    
   wiadomosc = MsgBox("Znaleziono żądane wyniki przy wprowadzonych parametrach." & vbCrLf & vbCrLf & _
       "Wprowadzon numer PESEL-Dane: " & Liczbaszukana & ".", vbOKOnly + vbInformation, "Rejestrator pokoi 2017.")
    
    Exit Sub
    
    Else
    
        If Arkusz3.Cells(i, j + 4) <> Liczbaszukana Or Arkusz3.Cells(i, j + 4) <> "" Then
        wiadomosc = MsgBox("Nie znaleziono żadnych wyników przy wprowadzonych danych." & vbCrLf & vbCrLf & _
        "Wprowadzon numer PESEL-Dane: " & Liczbaszukana & "." _
        , vbOKOnly + vbInformation, "Rejestrator pokoi 2017.")
        
        Exit Sub
    
        End If
    End If
    
    Next j
    
Next i

i = 0
j = 0

End Sub



Witam kawałek kodu właściwie cała procedura, próbuje po tej procedurze wyszukać numer PESEL ale nie działa, gdzie tkwi problem. jeśli jest jakaś łatwiejsza metoda to proszę o radę. Patrzyłem na wyszukaj.pionowo ale nie działa ... a co z tym kodem wyżej ??? Dziękuję

Uwaga ten sam kod po wyszukiwanej fakturze gdzie można wpisać numer faktury z przedziału 0 do 200 działa prawidłowo. Uważam że problem tkwi w PESEL bo to przecież wielkie liczby, może jakaś konwersja. proszę o pomoc lub o radę z przykładem. Dziękuję.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
czarodziejczarek



Dołączył: 19 Kwi 2017
Posty: 24

PostWysłany: Pon Maj 01, 2017 1:10 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Kod:

Sub NumerPESELsprawdzanie2szukanie()

Dim wiadomosc As String
Dim Liczbaszukana As String
Dim i, j As Integer

Liczbaszukana = UserForm7.TextBox7.text

If Liczbaszukana = "0" Then
Exit Sub
End If

For i = 2 To 200
    
    If Arkusz3.Cells(i, 5) = Liczbaszukana Then
    
    UserForm7.TextBox9.text = Arkusz3.Cells(i, 2) 'imię
    UserForm7.TextBox10.text = Arkusz3.Cells(i, 3) 'nazwisko
    UserForm7.TextBox11.text = Arkusz3.Cells(i, 4) 'adres
    UserForm7.TextBox12.text = Arkusz3.Cells(i, 5) 'pesel
    UserForm7.TextBox13.text = Arkusz3.Cells(i, 6) 'nip
    UserForm7.TextBox14.text = Arkusz3.Cells(i, 7) 'regon
    UserForm7.TextBox18.text = Arkusz3.Cells(i, 8) 'bank
    
    Exit Sub
    
    End If
    
  Next i
  
    
        If Arkusz3.Cells(i, 5) <> Liczbaszukana Or Arkusz3.Cells(i, 5) = "" Then
        
        wiadomosc = MsgBox("Nie znaleziono żadnych wyników przy wprowadzonych danych." & vbCrLf & vbCrLf & _
        "Wprowadzon numer PESEL-Dane: " & Liczbaszukana & "." _
        , vbOKOnly + vbInformation, "Rejestrator pokoi 2017.")
        
        Exit Sub
    
        End If


i = 0
j = 0

End Sub


Zrobiłem tak jak wyżej. DZIAŁA. ale pytanie pozostaje jak to zrobić w wyszukaj pionowo. Dziękuję.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
karolinavb
Site Admin


Dołączył: 25 Maj 2005
Posty: 7813

PostWysłany: Pon Maj 01, 2017 3:18 pm      Temat postu: Odpowiedz z cytatem Pisownia

Rozumiem, ze w TextBox7 user ma wprowadzić PESEL.
Zakładając, że kolumna 5 jest sformatowana jako tekstowa!
Kod:
'-------------------------------------------------------
' Class Module    : UserForm7
'-------------------------------------------------------
Option Explicit

Private Sub cmdszukaj_Click()
    Call NumerPESELsprawdzanie2szukanie
End Sub

Sub NumerPESELsprawdzanie2szukanie()
    Dim wiadomosc                 As String
    Dim Liczbaszukana             As String
    Dim i As Long, j              As Long
    Dim vRet                      As Variant
    With Me
        Liczbaszukana = .TextBox7.Text
        If OznaczPesel(Liczbaszukana) = False Then
            MsgBox "PESEL nie jest ok"
            Exit Sub
        End If
        vRet = Application.Match(Liczbaszukana, Arkusz3.Cells(2, 5).Resize(200), 0)
        If IsError(vRet) Then
            MsgBox "Nie znaleziono!", , "xxxx"
        Else
            vRet = vRet + 1
            .TextBox9.Text = Arkusz3.Cells(vRet, 2)    'imię
            .TextBox10.Text = Arkusz3.Cells(vRet, 3)    'nazwisko
            .TextBox11.Text = Arkusz3.Cells(vRet, 4)    'adres
            .TextBox12.Text = Arkusz3.Cells(vRet, 5)    'pesel
            .TextBox13.Text = Arkusz3.Cells(vRet, 6)    'nip
            .TextBox14.Text = Arkusz3.Cells(vRet, 7)    'regon
            .TextBox18.Text = Arkusz3.Cells(vRet, 8)    'bank
        End If
    End With
End Sub

Function OznaczPesel(Nr_PESEL As Variant) As Boolean
'http://www.access.vis.pl/war028.htm
'http://www.coderscity.pl/ftopic17835.html&highlight=pesel
    If IsNull(Nr_PESEL) Or Len(Nr_PESEL) = 0 Then Exit Function
    Dim D1                        As Byte
    Dim D2                        As Byte
    Dim D3                        As Byte
    Dim D4                        As Byte
    Dim D5                        As Byte
    Dim D6                        As Byte
    Dim D7                        As Byte
    Dim D8                        As Byte
    Dim D9                        As Byte
    Dim D10                       As Byte
    Dim Ostatniacyfra             As Byte
    Dim Cyfrakontrolna            As Integer
    Dim Sumakontrolna             As Integer
    If Len(Nr_PESEL) = 11 Then
        If IsNumeric(Nr_PESEL) Then
            D1 = Mid(Nr_PESEL, 1, 1)
            D2 = Mid(Nr_PESEL, 2, 1)
            D3 = Mid(Nr_PESEL, 3, 1)
            D4 = Mid(Nr_PESEL, 4, 1)
            D5 = Mid(Nr_PESEL, 5, 1)
            D6 = Mid(Nr_PESEL, 6, 1)
            D7 = Mid(Nr_PESEL, 7, 1)
            D8 = Mid(Nr_PESEL, 8, 1)
            D9 = Mid(Nr_PESEL, 9, 1)
            D10 = Mid(Nr_PESEL, 10, 1)
            Ostatniacyfra = Mid(Nr_PESEL, 11, 1)
            Sumakontrolna = (D1 + D2 * 3 + D3 * 7 + D4 * 9 + D5 + D6 * 3 + D7 * 7 + D8 * 9 + D9 + D10 * 3)
            Cyfrakontrolna = 10 - (Sumakontrolna Mod 10)
            If Ostatniacyfra = Cyfrakontrolna Then OznaczPesel = True
        End If
    End If
End Function
P.S. Po takiej deklaracji:
Cytat:
Dim i, j As Integer
tylko j jest typu integer, i jest variant.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
czarodziejczarek



Dołączył: 19 Kwi 2017
Posty: 24

PostWysłany: Wto Maj 09, 2017 7:42 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Mam pytanie. dziękuję za odpowiedź.
czy to: http://helion.pl/ksiazki/visual-basic-2010-od-podstaw-thearon-willis-bryan-newsome,vb21po.htm#format/e oraz to https://www.dobreprogramy.pl/Visual-Basic,Program,Windows,12110.html to to samo, mam na myśli książka i program. Może głupie pytanie ale chciałbym sobie ją kupić i nie chce zrobić pomyłki. dziękuje za odpowiedź :-)
chyba, że polecacie coś innego ale z visual BASIC... aktualnego, czy na przykład jak bym zakupił książkę dla Visula-Basic 2015 to czy mogę sobie sam z niej kurs robić pisząc programy w 2010... Pozdrawiam.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
samolot



Dołączył: 26 Sty 2006
Posty: 8151
Skąd: Toruń

PostWysłany: Wto Maj 09, 2017 10:11 pm      Temat postu: Odpowiedz z cytatem Pisownia

Cytat:
...ale chciałbym sobie ją kupić i nie chce zrobić pomyłki

Kilka słów informacji:
Ten temat dotyczy Excela z pakietu Microsoft Office!
Jeśli jednak faktycznie pytasz i Visual Basic 2010, to mam nadzieję, że wiesz, że nie jest to VBA z Excela?


Co do VB 2010, to
1. Pierwszy link jest do książki o VB 2010, wydanej około roku 2011
2. Drugi link jest do pakietu programowego VB 2010 firmy Microsoft, o którym jest ta książka.
Oczywiście książka jest do kupienia, jeśli używałbyś środowisko VB 2010 z drugiego linka. Przeciwwskazania są takie, że wydanie książki jest dość stare, ale mimo to dla VB 2010 ja bym ją kupił, ponieważ poczatkującemu bardzo się przyda jako zbiór uporządkowanej wiedzy o tym języku. Z kolei, jeśli zainstalujesz sobie nowszy VB 2015, to kupienie książki o VB 2010 ma o tyle sens, że większość wiedzy będzie w niej aktualna, a poza tym, tym bardziej bym ja kupił, że nie sądzą, by były wydania książkowe podobnych podręczników dla VB 2015.
Pakiet VB 2015 jest na tyle nowy, że w obliczu ostatnich znacznych zmian w kierunku polityki rozwoju programowania w firmie Microsoft, traci na polskim rynku sens wydawanie książek, bo zbyt szybko Microsoft powprowadzał nowsze pakiety. Zmiany gonią zmiany. Jeśli jednak zainstalujesz WB 2015, i jeśli nie znajdziesz książki do VB 2015, to ta od VB 2010 będzie w jakichś 80% i tak przydatna.

Ponieważ jednak mamy rok 2017, to pamiętaj, że Microsoft prawdopodobnie już nie rozprowadza środowiska VB 2010. Wszystko, co oni teraz proponują, dotyczy nowszych pakietów i te pakiety, pobrane z ich serwerów, są bezpieczne.

Natomiast inni, że tak powiem " wtórni dystrybutorzy", jak ten, da którego podałeś link, nie są już tacy pewni, bo wraz z pakietem podstawowym mogą pod tym "dużym i przyjaźnie wyglądającym przyciskiem Pobierz", ładować na twój komputer reklamy, i inne niepotrzebne tobie dodatki. Także pobierając stamtąd ten pakiet, warto bardzo uważnie sprawdzać co się klika, i w razie potrzeby odznaczyć niepotrzebne dodatki.

_________________
Nie zadawaj bezcelowych pytań / Windows 8.1 / Windows 10 / VB2008 / VB 2010 / VB 2012 / Pisz poprawnie
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
czarodziejczarek



Dołączył: 19 Kwi 2017
Posty: 24

PostWysłany: Sro Maj 10, 2017 5:45 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Dziękuję za odpowiedź. Tak wiem, to nie jest te VBA z Excela.
Liczę, że Microsoft ma też darmowa wersję Vistula Studio 2015 albo 2017. Trzeba poszukać.
Pozdrawiam.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
czarodziejczarek



Dołączył: 19 Kwi 2017
Posty: 24

PostWysłany: Pią Maj 12, 2017 6:56 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Witam Ponownie.

1.Pytanie czy istnieje jakaś funkcja w vba excel która określa ilość wystąpień jakiejś cyfry? i jak się nazywa.
2.Pytanie czy istnieje jakaś funkcja w vba excel która określa miejsce wystąpień jakiejś cyfry? mam namyśli adres komórki np: cells(2,5) i jak się nazywa i tam występuje dana cyfra. Przy czym gdzie wystąpiła poraz pierwszy oraz poraz ostatni.

Dziękuje i pozdrawiam :-)



Bez tytułu.png
 Opis:

Pobierz
 Nazwa pliku:  Bez tytułu.png
 Wielkość pliku:  10.45 KB
 Pobierano:  16 raz(y)

Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość
hurgadion



Dołączył: 06 Kwi 2011
Posty: 797
Skąd: Web :)

PostWysłany: Pią Maj 12, 2017 7:16 pm      Temat postu: Odpowiedz z cytatem Pisownia

Hej:

1. komendą Application.CountIf(Range("A1:B6"), 1) zliczamy ilość jedynek w zakresie A1:B6...
2. jeżeli zakres jest jednokolumnowy lub jednowierszowy, to wystarczy odpowiednik arkuszowej funkcji PODAJ.POZYCJĘ dla pierwszego wystąpienia: Application.Match(...), ale lepiej to chyba zrobić zwykłą pętlą... tak jak i w przypadku dwuwymiarowym...

Pozdrawiam...

_________________
miasto nauki praktycznej
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Oprogramowanie biurowe Wszystkie czasy w strefie CET (Europa)
Idź do strony Poprzedni  1, 2, 3, 4, 5  Następny
Strona 2 z 5

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.08614 sekund, zapytan = 13
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |