תודה!
ארי
-
-
מצאתי אצלי משהו, אבל נראה לי די ישן, אז כנראה לא מתאים למה שהתחדש.
Public Function fCheckBankAccountValidity(lngBankNumber As Long, _ lngBranch As Long, _ lngAccount As Long) As Boolean On Error GoTo Err_בדיקה fCheckBankAccountValidity = 0 Dim lngRequiredAccountLength As Long Dim lngTotal As Long Dim strArrayAccount() As String Dim strArrayBranch() As String Dim strAccount As String Dim strBranch As String Select Case lngBankNumber Case 10, 13, 34 lngRequiredAccountLength = 8 Case 12, 4 lngRequiredAccountLength = 6 Case 11, 17 lngRequiredAccountLength = 9 Case 20 lngRequiredAccountLength = 6 Case 31, 52 lngRequiredAccountLength = 9 Case 9 lngRequiredAccountLength = 9 Case 22 lngRequiredAccountLength = 9 Case 46 lngRequiredAccountLength = 9 Case 14 lngRequiredAccountLength = 9 Case 54 lngRequiredAccountLength = 9 End Select strBranch = lngBranch strAccount = String(lngRequiredAccountLength - Len(CStr(lngAccount)), "0") & CStr(lngAccount) ' strAccount = Right("0000000000" & CStr(lngAccount), lngRequiredAccountLength) ' This is an alternative to the previous line strAccount = StrConv(strAccount, vbUnicode) strArrayAccount = Split(strAccount, vbNullChar) If lngBankNumber = 20 And lngBranch > 400 Then ' אם מספר הסניף בבנק מזרחי-טפחות גדול מ400 strBranch = CStr(lngBranch - 400) ' לפני החישובים יש להפחית 400 End If If lngBankNumber = 20 And lngBranch < 400 Then ' אם מספר הסניף בבנק מזרחי-טפחות לא גדול מ400 strBranch = CStr(lngBranch) ' לפני החישובים אל תבצע כלום End If If lngBankNumber = 12 Or lngBankNumber = 4 Then strBranch = lngBranch End If If Len(strBranch) < 3 Then strBranch = String(3 - Len(strBranch), "0") & strBranch ' מוסיף אפסים להשלים ל3 ספרות End If strBranch = StrConv(strBranch, vbUnicode) strArrayBranch = Split(strBranch, vbNullChar) Select Case lngBankNumber Case 10, 13, 34 lngTotal = CLng(strArrayBranch(0)) * 10 + _ CLng(strArrayBranch(1)) * 9 + _ CLng(strArrayBranch(2)) * 8 + _ CLng(strArrayAccount(0)) * 7 + _ CLng(strArrayAccount(1)) * 6 + _ CLng(strArrayAccount(2)) * 5 + _ CLng(strArrayAccount(3)) * 4 + _ CLng(strArrayAccount(4)) * 3 + _ CLng(strArrayAccount(5)) * 2 + _ right(lngAccount, 2) Select Case right(lngTotal, 2) Case 90, 72, 70, 60, 20 fCheckBankAccountValidity = 1 End Select Case 12 lngTotal = CLng(strArrayBranch(0)) * 9 + _ CLng(strArrayBranch(1)) * 8 + _ CLng(strArrayBranch(2)) * 7 + _ CLng(strArrayAccount(0)) * 6 + _ CLng(strArrayAccount(1)) * 5 + _ CLng(strArrayAccount(2)) * 4 + _ CLng(strArrayAccount(3)) * 3 + _ CLng(strArrayAccount(4)) * 2 + _ CLng(strArrayAccount(5)) * 1 Select Case lngTotal Mod 11 Case 0, 2, 4, 6 fCheckBankAccountValidity = 1 Case Else fCheckBankAccountValidity = 0 End Select Case 4 lngTotal = CLng(strArrayBranch(0)) * 9 + _ CLng(strArrayBranch(1)) * 8 + _ CLng(strArrayBranch(2)) * 7 + _ CLng(strArrayAccount(0)) * 6 + _ CLng(strArrayAccount(1)) * 5 + _ CLng(strArrayAccount(2)) * 4 + _ CLng(strArrayAccount(3)) * 3 + _ CLng(strArrayAccount(4)) * 2 + _ CLng(strArrayAccount(5)) * 1 Select Case lngTotal Mod 11 Case 0, 2 fCheckBankAccountValidity = 1 Case Else fCheckBankAccountValidity = 0 End Select Case 11, 17 lngTotal = CLng(strArrayAccount(0)) * 9 + _ CLng(strArrayAccount(1)) * 8 + _ CLng(strArrayAccount(2)) * 7 + _ CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 Select Case lngTotal Mod 11 Case 0, 2, 4 fCheckBankAccountValidity = 1 End Select Case 20 lngTotal = CLng(strArrayBranch(0)) * 9 + _ CLng(strArrayBranch(1)) * 8 + _ CLng(strArrayBranch(2)) * 7 + _ CLng(strArrayAccount(0)) * 6 + _ CLng(strArrayAccount(1)) * 5 + _ CLng(strArrayAccount(2)) * 4 + _ CLng(strArrayAccount(3)) * 3 + _ CLng(strArrayAccount(4)) * 2 + _ CLng(strArrayAccount(5)) * 1 Select Case lngTotal Mod 11 Case 0, 2, 4 fCheckBankAccountValidity = 1 End Select Case 31, 52 lngTotal = CLng(strArrayAccount(0)) * 9 + _ CLng(strArrayAccount(1)) * 8 + _ CLng(strArrayAccount(2)) * 7 + _ CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 Select Case lngTotal Mod 11 Case 0 fCheckBankAccountValidity = 1 Case 6 fCheckBankAccountValidity = 1 Case Else lngTotal = CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 Select Case lngTotal Mod 11 Case 0 fCheckBankAccountValidity = 1 Case 6 fCheckBankAccountValidity = 1 End Select End Select Case 9 lngTotal = CLng(strArrayAccount(0)) * 9 + _ CLng(strArrayAccount(1)) * 8 + _ CLng(strArrayAccount(2)) * 7 + _ CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 If lngTotal Mod 10 = 0 Then fCheckBankAccountValidity = 1 End If Case 54 fCheckBankAccountValidity = 1 Case 22 lngTotal = CLng(strArrayAccount(0)) * 3 + _ CLng(strArrayAccount(1)) * 2 + _ CLng(strArrayAccount(2)) * 7 + _ CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 If 11 - (lngTotal Mod 11) = CLng(strArrayAccount(8)) Then fCheckBankAccountValidity = 1 End If Case 46 lngTotal = CLng(strArrayBranch(0)) * 9 + _ CLng(strArrayBranch(1)) * 8 + _ CLng(strArrayBranch(2)) * 7 + _ CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 Select Case lngTotal Mod 11 Case 0 fCheckBankAccountValidity = 1 Case 2 Select Case strBranch Case 154, 166, 178, 181, 183, 191, 192, 503, 505, 507, 515, 516, 527, 539 fCheckBankAccountValidity = 1 End Select Case Else lngTotal = CLng(strArrayAccount(0)) * 9 + _ CLng(strArrayAccount(1)) * 8 + _ CLng(strArrayAccount(2)) * 7 + _ CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 If lngTotal Mod 11 = 0 Then fCheckBankAccountValidity = 1 Else lngTotal = CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 If lngTotal Mod 11 = 0 Then fCheckBankAccountValidity = 1 End If End If End Select Case 14 lngTotal = CLng(strArrayBranch(0)) * 9 + _ CLng(strArrayBranch(1)) * 8 + _ CLng(strArrayBranch(2)) * 7 + _ CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 Select Case lngTotal Mod 11 Case 0 fCheckBankAccountValidity = 1 Case 2 Select Case strBranch Case 347, 361, 362, 363, 365, 385 fCheckBankAccountValidity = 1 End Select Case 4 Select Case strBranch Case 361, 362, 363 fCheckBankAccountValidity = 1 End Select Case Else lngTotal = CLng(strArrayAccount(0)) * 9 + _ CLng(strArrayAccount(1)) * 8 + _ CLng(strArrayAccount(2)) * 7 + _ CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 If lngTotal Mod 11 = 0 Then fCheckBankAccountValidity = 1 Else lngTotal = CLng(strArrayAccount(3)) * 6 + _ CLng(strArrayAccount(4)) * 5 + _ CLng(strArrayAccount(5)) * 4 + _ CLng(strArrayAccount(6)) * 3 + _ CLng(strArrayAccount(7)) * 2 + _ CLng(strArrayAccount(8)) * 1 If lngTotal Mod 11 = 0 Then fCheckBankAccountValidity = 1 End If End If End Select End Select Exit_fCheckBankAccountValidity: Exit Function Err_בדיקה: fCheckBankAccountValidity = 2 Exit Function End Function Public Function fCheckBankAccountValidityTest() Debug.Print fCheckBankAccountValidity("4", "129", "100477") End Function
-
תודה.
-
@dovid תודה!
-
@מלא תודה!
בדיוק מה שהייתי צריך. -
או נוסחה כזו באקסל:
=MOD(A1+4,12)
-
אני רק ממשיך את @ivrtikshoret :
i = 1 Do If i < 13 Then MsgBox i Else MsgBox i Mod 12 End If i = i + 1 Loop
-
@מטעמים כתב בעזרה | משתנה חודשים עוקבים שחוזר לתחילת שנה:
(וגם שלא יהיה בתוך לולאה)
איך אתה רוצה להוסיף חודשים בלי לולאה?
אני לא בטוח שאפשר.אם אתה רוצה עם לולאה אולי משהו כזה:
for a = 1 to 100 for b = 1 to 12 msgbox b text b text a
-
@one1010 אם אתה רוצה עזרה פרטנית יותר אתה צריך גם לפרט יותר.
איך עושים את החיפוש, בטופס?
מה החיפוש מחפש?
איזה תוצאות הוא מחזיר.
וכו' וכו'.
אולי עדיף שתעלה קובץ דוגמא של התוכנה שלך. -
@one1010 כתב בשליחת מייל מאקסס ללא לקוח דוא"ל:
תוכל לעזור לי לשנות את הקוד הזה מתי ומה הוא יישלח?
מתי - אתה צריך לעשות קוד שבזמן ביצוע החיפוש (בטופס?) הוא ישלח את המייל.
מה - אתה צריך לשנות את הערך שכתוב כאןmsgOne.Subject = "Subject"
לנושא של המייל שאותו אתה רוצה
וכאןmsgOne.TextBody = "TextBody"
לכתוב את גוף המייל.
אתה גם יכול לשלוח את השאילתה בתור קובץ אקסל מצורף בפרמטר הזהmsgOne.AddAttachment "C:\Users\1\Downloads\Some File.pdf"
-
@one1010
אני רואה שהמשיכו בלעדי....
תמיד אפשר להשתמש בקוד שלי עם שם משתמש וסיסמא, ולעשות סיסמא לכניסה לVBA, נראה לי שזה קוד די מאובטח.
וממילא אף אחד לא יוכל לראות את הסיסמא שלך. -
@פלורידה מצורפת דוגמא.
-
@Y-Excel-Access הקובץ שהבאת ממש לא עובר דיבאג...
-
@one1010 אתה יכול לכתוב כאן את הקוד?
כנראה חסר לו מה שיעצור אותו, אבל בלי לראות את הקוד עצמו אי אפשר לעזור... -
@katz אני לא משתמש בקהילות, אבל אתמול בערב הAPI של קשר (הבעלים של קהילות) לא עבד לכמה זמן.
בסוף חזר רגיל. -
@אוריי ולפקדים האלו אין קוד?
-
@אוריי בתמונה ששלחת אתה בוחר את הטופס משנה, זה כמו פקד בתוך הטופס ה'אב'.
מה שאתה צריך זה ללחוץ בטופס משנה עצמו בפנים, ואז יהיה לך את כל ההגדרות שאתה צריך. -
DoCmd.OpenReport "דוח", acViewPreview, , (([מספר איזור] >= 1 And [מספר איזור] <= 5))
עריכה: עכשיו אני רואה שכתבת שכבר בשאילתה מסוננים המספרי איזור, אז איפה הבעיה נמצאת?
-
@אוריי איך אתה מדפיס? בקוד VBA?
אתה פשוט צריך להכניס פרמטר של סינון בקוד.
ובדוח אה עושה קיבוץ לפי מספר איזור עם כותרת תחתונה. ובכותרת תחתונה של המספר איזור אתה מגדיר 'כפה עמוד חדש' לאחר מקטע. -
@ArielIzer בדיוק כמו בשאילתת בחירה.
תוכנה לכתיבת WEB
אקסל | דרושה נוסחה לבדיקת תקינות מס חשבון בנק
תוכנה להמרת אודיו לטקסט
כלל אימות בטבלת אקסס
עצה - ניהול אנשי קשר
עזרה | משתנה חודשים עוקבים שחוזר לתחילת שנה
עזרה | משתנה חודשים עוקבים שחוזר לתחילת שנה
עזרה | משתנה חודשים עוקבים שחוזר לתחילת שנה
שליחת מייל מאקסס ללא לקוח דוא"ל
שליחת מייל מאקסס ללא לקוח דוא"ל
שליחת מייל מאקסס ללא לקוח דוא"ל
השלמה מידע מטבלה אחרת | אקסל
קובץ אקסס שלא מוכן להתקפל
מאקרו רץ בלולאה
למישהו עובד כעת API של קהילות?
איך אני יכול להיפטר מהודעה הזו באקסס
מחפש תיעוד הקשה על מקש אקסס
הדפסת דוחות ממספר עד מספר | אקסס
הדפסת דוחות ממספר עד מספר | אקסס
הוספת רשומות מרובות באקסס