דילוג לתוכן

תוכנה

3.2k נושאים 33.9k פוסטים
  • אקסל | דרושה נוסחה לבדיקת תקינות מס חשבון בנק

    5
    0 הצבעות
    5 פוסטים
    436 צפיות
    OdedDvirO
    די מהר מצאתי את הפרוייקט הזה בגיטהב, מלפני שנתיים, נראה לגיטימי: https://github.com/soryy708/il-bank-account-validator. היתה רק בעיה קטנה: הוא כתוב ב-JS. אז בגלל שזה נראה לי דבר שימושי, או בגלל שהיה קשה לי להאמין שזה לא זמין לציבור, אולי בגלל השעה... בכל מקרה, נתתי ל ChatGPT לעשות את התרגום הראשוני ל-VB, כמובן שאח"כ הייתי צריך להוסיף ולתקן כמה דברים (חריגות אינדקסים במערכים, הוספת פונקציה במקום השמה ישירה למערך, החלפה של Integer ל-Long, ריפוד באפסים, ועוד כמה שטויות של בורות מלאכותית) בסופו של דבר, בדקתי את הקוד מול כמה מספרי חשבונות בנק שמפורסמים ברשת (למשל כאן) וקיבלתי תוצאה תקינה. אז אם אתם משתמשים בקוד, ראוי שתתנו כוכב בגיטהב לפרוייקט הנ"ל. (אין לי שום קשר אליו) צריך לפתוח מודול חדש ולהדביק את הקוד הבא: Option Explicit Function ValidateAccount(bankNumber As Long, branchNumber As Long, accountNumber As Long) As Boolean ' Input validation: If Not IsNonNegativeLong(bankNumber) Then ValidateAccount = False Exit Function End If If Not IsNonNegativeLong(branchNumber) Then ValidateAccount = False Exit Function End If If Not IsNonNegativeLong(accountNumber) Then ValidateAccount = False Exit Function End If ' Supported banks Const YAHAV As Long = 4 Const POST As Long = 9 Const LEUMI As Long = 10 Const DISCOUNT As Long = 11 Const HAPOALIM As Long = 12 Const IGUD As Long = 13 Const OTSAR_AHAYAL As Long = 14 Const MERCANTILE As Long = 17 Const MIZRAHI_TEFAHOT As Long = 20 Const CITIBANK As Long = 22 Const BEINLEUMI As Long = 31 Const ARAVEI_ISRAELI As Long = 34 Const MASAD As Long = 46 Const POALEI_AGUDAT_ISRAEL As Long = 52 ' Adjust branch number For Mizrahi Tefahot If bankNumber = MIZRAHI_TEFAHOT Then If branchNumber > 400 Then branchNumber = branchNumber - 400 End If End If Dim accountNumberDigits() As Long Dim branchNumberDigits() As Long accountNumberDigits = NumberDigitsToArr(CLng(accountNumber), 9) branchNumberDigits = NumberDigitsToArr(CLng(branchNumber), 3) ' Account number validation Dim sum As Long Dim remainder As Long Select Case bankNumber Case LEUMI, IGUD, ARAVEI_ISRAELI sum = ScalarProduct(GetSubset(accountNumberDigits, 8), ToIntArray("1,10,2,3,4,5,6,7")) sum = sum + ScalarProduct(GetSubset(branchNumberDigits, 4), ToIntArray("8, 9, 10")) remainder = sum Mod 100 ValidateAccount = ArrIncludes(ToIntArray("90, 72, 70, 60, 20"), remainder) Case YAHAV, MIZRAHI_TEFAHOT, HAPOALIM sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6")) sum = sum + ScalarProduct(GetSubset(branchNumberDigits, 4), ToIntArray("7, 8, 9")) remainder = sum Mod 11 Select Case bankNumber Case YAHAV ValidateAccount = ArrIncludes(ToIntArray("0, 2"), remainder) Case MIZRAHI_TEFAHOT ValidateAccount = ArrIncludes(ToIntArray("0, 2, 4"), remainder) Case HAPOALIM ValidateAccount = ArrIncludes(ToIntArray("0, 2, 4, 6"), remainder) End Select Case DISCOUNT, MERCANTILE, BEINLEUMI, POALEI_AGUDAT_ISRAEL sum = ScalarProduct(GetSubset(accountNumberDigits, 9), ToIntArray("1, 2, 3, 4, 5, 6, 7, 8, 9")) remainder = sum Mod 11 Select Case bankNumber Case DISCOUNT, MERCANTILE ValidateAccount = ArrIncludes(ToIntArray("0, 2, 4"), remainder) Case BEINLEUMI, POALEI_AGUDAT_ISRAEL If ArrIncludes(ToIntArray("0, 6"), remainder) Then ValidateAccount = True Else sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6")) remainder = sum Mod 11 ValidateAccount = ArrIncludes(ToIntArray("0, 6"), remainder) End If End Select Case POST sum = ScalarProduct(GetSubset(accountNumberDigits, 9), ToIntArray("1, 2, 3, 4, 5, 6, 7, 8, 9")) remainder = sum Mod 10 ValidateAccount = remainder = 0 Case 54 ' Jerusalem ValidateAccount = True ' wtf? Case CITIBANK sum = ScalarProduct(GetSubset(accountNumberDigits, 8), ToIntArray("2, 3, 4, 5, 6, 7, 2, 3")) ValidateAccount = (11 - sum Mod 11) = accountNumberDigits(1) Case OTSAR_AHAYAL, MASAD sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6")) sum = sum + ScalarProduct(GetSubset(branchNumberDigits, 4), ToIntArray("7, 8, 9")) remainder = sum Mod 11 If remainder = 0 Then ValidateAccount = True End If If bankNumber = MASAD Then If remainder = 2 And ArrIncludes(ToIntArray("154, 166, 178, 181, 183, 191, 192, 503, 505, 507, 515, 516, 527, 539"), branchNumber) Then ValidateAccount = True End If sum = ScalarProduct(GetSubset(accountNumberDigits, 9), ToIntArray("1, 2, 3, 4, 5, 6, 7, 8, 9")) remainder = sum Mod 11 If remainder = 0 Then ValidateAccount = True Else sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6")) remainder = sum Mod 11 ValidateAccount = remainder = 0 End If End If If bankNumber = OTSAR_AHAYAL Then If ArrIncludes(ToIntArray("0, 2"), remainder) And ArrIncludes(ToIntArray("385, 384, 365, 347, 363, 362, 361"), branchNumber) Then ValidateAccount = True Elseif remainder = 4 And ArrIncludes(ToIntArray("363, 362, 361"), branchNumber) Then ValidateAccount = True Else sum = ScalarProduct(GetSubset(accountNumberDigits, 9), ToIntArray("1, 2, 3, 4, 5, 6, 7, 8, 9")) remainder = sum Mod 11 If remainder = 0 Then ValidateAccount = True Else sum = ScalarProduct(GetSubset(accountNumberDigits, 6), ToIntArray("1, 2, 3, 4, 5, 6")) remainder = sum Mod 11 ValidateAccount = remainder = 0 End If End If End If End Select End Function Function ScalarProduct(arr1() As Long, arr2() As Long) As Long Dim product As Long Dim i As Long Dim maxIndex As Integer maxIndex = UBound(arr1) If maxIndex > UBound(arr2) Then maxIndex = UBound(arr2) For i = 1 To maxIndex product = product + arr1(i) * arr2(i) Next i ScalarProduct = product End Function Function ArrIncludes(arr() As Long, val As Long) As Boolean Dim i As Long If Not IsEmpty(arr) Then For i = LBound(arr) To UBound(arr) If arr(i) = val Then ArrIncludes = True Exit Function End If Next i End If End Function Function NumberDigitsToArr(num As Long, length As Long) As Long() Dim digitsArray() As Long ReDim digitsArray(1 To length) Dim zeroPadding As Integer zeroPadding = length - Len(CStr(num)) Dim i As Long For i = 1 To zeroPadding digitsArray(i) = 0 Next i For i = zeroPadding + 1 To length digitsArray(i) = num Mod 10 num = Int(num / 10) Next i NumberDigitsToArr = digitsArray End Function Function IsNonNegativeLong(num As Variant) As Boolean If VarType(num) = vbLong And num >= 0 Then IsNonNegativeLong = True End If End Function Function GetSubset(arr() As Long, count As Long) As Long() Dim result() As Long ReDim result(1 To count) Dim i As Long For i = 1 To count If i <= UBound(arr) Then result(i) = arr(i) End If Next i GetSubset = result End Function Function ToIntArray(list As String) As Long() Dim temp() As String temp = Split(list, ",") Dim result() As Long ReDim result(1 To UBound(temp) + 1) Dim i As Integer For i = 0 To UBound(temp) result(i + 1) = CLng(temp(i)) Next i ToIntArray = result End Function
  • שלום, יש לי שאלה בנוסחת אקסל:

    2
    0 הצבעות
    2 פוסטים
    239 צפיות
    מ
    פיצלת את הפרמטרים ואת התנאים על פני מספר גיליונות, זה קצת מקשה על החישוב, (אגב, את כולם כתבת אחרי 01/01/2024) איחדתי הכל לגיליון אחד. ראה בקובץ המצורף את הכיוון. טבלה מרכזית שנותנת תוצאות לפי נוסחת COUNTIFS (נוסחה הסופרת פרט מסוים עם תנאי, ללא הגבלה על מספר התנאים.) [image: 1707755191440-8931f7bd-2b94-46e8-9d08-beef145dca12-image.png] קובץ: דוח-מכירות.xlsx אגב, אם אין לך אופיס 2021 ומעלה, לא יעבוד לך הנוסחאות של ליקוט השמות (השתמשתי ב- UNIQUE ,FILTER), תוכל בכל מקרה לכתוב את השמות באופן ידני.
  • שיתוף: כמה כתובות מייל על גימייל אחד

    12
    22 הצבעות
    12 פוסטים
    1k צפיות
    מנצפכמ
    @אביי כתב בשיתוף: כמה כתובות מייל על גימייל אחד: @מנצפכ כתב בשיתוף: כמה כתובות מייל על גימייל אחד: לפני כשבוע בערך עשיתי משהו שמוסיף לזיהוי של השליחה עד מאות ואלפי מיילים נוספים או מוחק אותם לפי בחירה אבל התכבה לי המחשב באמצע העבודה בלי שמירה ? אמרתי משהו לא מובן? בכל אופן אני ארחיב אפשר לעשות מאות ואלפי זיהויים כמו למשל הכתובת שלי pnhspnhs29@gmail.com יכולה להיות ,p.nhspnhs29@gmail.com ,pn.hspnhs29@gmail.com ,pnh.spnhs29@gmail.com ,pnhs.pnhs29@gmail.com ,pnhsp.nhs29@gmail.com ,pnhspn.hs29@gmail.com ,pnhspnh.s29@gmail.com ,pnhspnhs.29@gmail.com ,pnhspnhs2.9@gmail.com ,p.n.hspnhs29@gmail.com p.n.hspnhs29+123@gmail.com וכו׳ הכנתי משהו שעושה את העבודה ומייצר את כל המיילים האלה ותכננתי גם שייתחבר לגוגל ויכניס אותם לזיהוי אבל בגלל שלא היה לי בזה צורך אמיתי והתכבה לי המחשב באמצע (העבודה נמצאת איפשהו אבל אני לא יודע איפה) אז לא התקדמתי עם זה
  • מיון תקיה עם מלא קבצים

    4
    0 הצבעות
    4 פוסטים
    396 צפיות
    אף אחד 3א
    @ראש-פינה תנסה אולי למיין את זה עם everything מזינים בשורת החיפוש את הנתיב של התיקיה ואז הוא מראה את כל הקבצים שיש בה (צריך להשתמש בסלאשים שמאליים - \ ) המיון שלה הרבה יותר מהיר משל אקספלורר
  • הורדת תיקייה בודדת מגיטהאב

    2
    0 הצבעות
    2 פוסטים
    419 צפיות
    yossizY
    @האדם-החושב כתב בהורדת תיקייה בודדת מגיטהאב: משום מה בזמן האחרון https://github.blog/2023-01-20-sunsetting-subversion-support הם הורידו את התמיכה ב-8 בינואר השאלה היא אם יש דרך אחרת יש פה כמה פתרונות, אולי אחד מהם יתאים לך
  • גישה ל Registry מאקסל

    15
    0 הצבעות
    15 פוסטים
    505 צפיות
    שלמה 077ש
    אצלי המפתח currntversion לא נמצא ב windows [image: 1707203453742-%D7%A8%D7%99%D7%A9%D7%95%D7%9D.gif]
  • תוכנה להמרת אודיו לטקסט

    11
    0 הצבעות
    11 פוסטים
    662 צפיות
    אבייא
    @אלף-שין אשמח לקשר אותך איתו, צור קשר בפרטי
  • נושא זה נמחק!

    7
    0 הצבעות
    7 פוסטים
    280 צפיות
  • MicroSIP יעובד גם עם המחשב במצב שינה אפשר?

    4
    0 הצבעות
    4 פוסטים
    238 צפיות
    ek0583232948E
    @צדיק-תמים זה בדיוק מה שהייתי צריך ולכן פתחתי את הפוסט הזה אולי זה יעזור גם לך
  • אני לא מצליח לפתוח קובץ

    1
    0 הצבעות
    1 פוסטים
    77 צפיות
    אין תגובות
  • אקסל

    2
    0 הצבעות
    2 פוסטים
    137 צפיות
    dovidD
    בחר את הטבלה, הקלק בימיני, ובחר ב"קבל נתונים מטבלה/מטווח...", בחלון שנפתח בחר את העמודה הראשונה והקלק בימני, ושם בחר את "בטל סיבוב על ציר של עמודות אחרות". ואז לחץ על "סגור וטען".
  • מאגר מושבת בGithub

    1
    0 הצבעות
    1 פוסטים
    126 צפיות
    אין תגובות
  • ערכים מרובים באקסס

    3
    0 הצבעות
    3 פוסטים
    164 צפיות
    A
    @שואף-לדעת כתב בערכים מרובים באקסס: לשם הנוחות יצרתי "שדה ערכים מרובים" שמופיע כתיבת רשימה אם בכל זאת יש עדיפות עליונה במבנה הנ"ל, אפשר לכתוב קוד שירוץ על כל הרכיבים ברשימה שנבחרו נדמה לי משהו Selected,ItemsSelected ולהוציא מהם את הסכומים ולחשב. עריכה: עיין כאן
  • אקסל | יבוא סיווג לפי תנאי "מכיל"

    19
    1 הצבעות
    19 פוסטים
    655 צפיות
    מ
    @amik הצלחתי להשתמש עם הנוסחה שלך ללא עמודת עזר (העתקתי אותה כמו שהיא לתוך התנאי): [image: 1706385365703-fdf28a08-f7ee-4df0-aaa3-fbb7a999f923-image.png] מצו"ב : סיווג-לפי-תנאי-מכיל3.xlsx
  • עבודה של שניים על אותו קובץ באופיס - לא 365

    8
    0 הצבעות
    8 פוסטים
    533 צפיות
    avramkA
    @pcinfogmach אני צריך שזה יהיה גם אופליין זאת אומרת על הרשת הפנימית
  • כיצד לראות מה יש בתוך קובץ EXE

    9
    0 הצבעות
    9 פוסטים
    410 צפיות
    י
    @avramk יש בריבו אפשרות לעקוב אחר ההתקנה.
  • אקסל | איך מוסיפים תנאי נוסף בפונקציית XLOOKUP

    13
    0 הצבעות
    13 פוסטים
    792 צפיות
    WheneverW
    @מטעמים כתב באקסל | איך מוסיפים תנאי נוסף בפונקציית XLOOKUP: @Whenever מעניין מאוד, שים לב שאקסל מתייחס לתנאים כפי סדר כתיבתם. (כלומר, אם שמת את התנאי "שם" ראשון, אתה צריך לשים את העמודה של array באותו סדר), ניסיתי להחליף בין התנאים והוא החזיר לי שגיאה. ראה בתמונה החלפתי בין המספר לשם: [image: 1705853086986-bcae3b60-fa8e-4a15-9a12-739373b9db57-image.png] נכון מאוד, אפשר לראות מה אקסל חושב עם בוחרים חלק ספיציפי מהפונצקיה ואז לוחצים F9 (לצאת מזה לוחצים ESC) אפשר לראות כמו שאתה אומר שאקסל מחבר את הערכים בסדר שאנו מכנינסים לתוך הפונקציה [image: 1705864452110-2d627595-3b87-4cff-8d6c-9e9c195990d0-image.png] [image: 1705864521186-e11ce2cf-6db4-44be-b4f8-a1c5eb91551b-image.png]
  • יוניקוד בוורד?

    1
    1 הצבעות
    1 פוסטים
    97 צפיות
    אין תגובות
  • תוכנה להכנת קבצי תרגום של תוכנות

    6
    0 הצבעות
    6 פוסטים
    315 צפיות
    yossizY
    לפי המבואר פה https://stackoverflow.com/a/6361695/8997905 אפשר להשתמש ב-qt linguist
  • ZIP בעברית

    9
    0 הצבעות
    9 פוסטים
    492 צפיות
    משה שמחהמ
    @shraga כתב בZIP בעברית: @chetz321 חפש ב"התחל": intl.cpl שם בכרטיסיה "ניהולי" במידה ולא מוגדר "עברית" לחץ על "שינוי איזור מערכת" ובחר ב"עברית (ישראל)". יתכן שיועיל. בנוסף ניתן להשתמש ב7Zip החינמית כתחליף. כבר הרבה זמן שיש לי בעיה עם תצוגת עברית בתורת אמת, במקרה פתחתי את השרשור הזה והפתרון שכתבת כאן הועיל לי, תודה רבה.
בא תתחבר לדף היומי!