תוכנה לסימון חזרות
-
@פלורידה אמר בתוכנה לסימון חזרות:
מה שאני עדיין לא מבין, איך עושים שעל ידי לחיצה כפולה הוא נותן לתא ערך = 1 (וכשאלה נגזרת, האם אפשר לעשות שייוצר על ידי לחיצה בודדת)
מצאתי כאן את הקוד הזה
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) On Error Resume Next If Not Intersect(Target, Range("A1")) Is Nothing Then Range("A1").Value = Range("A1").Value + 1 Cancel = True End If End Sub
בכל פעם שאלחץ על תא
a1
הוא יקבל תוספת של 1 אם נניח הערך שקיים בו הוא 173, על ידי לחיצה הוא יהיה 174.מה שאני רוצה לעשות שכאשר אני לוחץ פעם שנייה הוא יהיה 0, כלומר פעם אחת הוא יהיה 0 פעם שניה 1 וכן הלאה.
כמו כן מצאתי את הקוד הזה, שאמנם עושה v בלחיצה כפולה, ומסיר אותו בפעם השניה, אך לא נותן ערך לתא.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Target, Range("B1:B10")) Is Nothing Then Application.EnableEvents = False If ActiveCell.Value = ChrW(&H2713) Then ActiveCell.ClearContents Else ActiveCell.Value = ChrW(&H2713) End If Cancel = True End If Application.EnableEvents = True End Sub
אולי ניתן ליצור נוסחה
v=1
???? -
@פלורידה אמר בתוכנה לסימון חזרות:
אך לא נותן ערך לתא.
זה לא מדויק. למעשה הוא נותן ערך לתא, התא מכיל את התו
ChrW(&H2713)
.@פלורידה אמר בתוכנה לסימון חזרות:
אולי ניתן ליצור נוסחה v=1????
לא. אבל אפשר לסכם לפי תנאי, אם התא ריק אז להוסיף 0, ואם יש בו ערך כלשהוא (או ליתר דיוק את התו הנ"ל) להוסיף 1.
ואפשר גם להכניס בפועל את הערך True/False ולהשתמש בעיצוב מתנה כדי להציג V. -
@odeddvir אמר בתוכנה לסימון חזרות:
לא. אבל אפשר לסכם לפי תנאי, אם התא ריק אז להוסיף 0, ואם יש בו ערך כלשהוא (או ליתר דיוק את התו הנ"ל) להוסיף 1.
זה ממש רעיון מבריק. איך עושים את זה?
כלומר: איך מסכמים לפי תנאי? או לחילופין מה שם הנוסחה??.
למתעניינים צירפתי את הפיתרון שאני בחרתי לצורך המסמך שאני עורך
הכנסתי את הקוד הזה:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("B1:B10")) Is Nothing Then
Application.EnableEvents = False
If ActiveCell.Value = Date Then
ActiveCell.ClearContents
Else
ActiveCell.Value = Date
End If
Cancel = True
End If
Application.EnableEvents = True
End Subהמשמעות שלו, שלחיצה תתן את התאריך
[אני כבר יעלים אותו על ידי התאמת אישית לסוג" ";" ";" "
ככה:
ובכך אני מרויח שניתן לחקור את התאריך שבו ניתן הסימון.
כמובן שהבעיה שלי שהערך של התא באופן אוטומטי כערך התאריך, מה שאני צריך לעשות הוא סיכום שכל ערך שנמצא בתא באופן אוטומטי נחשב ל 1 -
@פלורידה אז תשתמש פשוט ב CountA:
COUNTA(E1:E10)
תוספת:
אם אתה משתמש רק בתאריכים, אתה יכול להשתמש גם ב-Count הרגילה, ההבדל הוא ש-CountA תספור גם טקסט, ערכים לוגיים כמו True/False, ואפילו שגיאות ושאר מרעין בישין, בעוד ש Count תספור רק תאים עם ערך מספרי (כולל תאריכים) -
-
@פלורידה אתה צודק. הקידוד של Unicode הוא UTF-32 בעוד שהקידוד של Windows 10 הוא UTF-16. הפונקציה ChrW לא תעבוד בחלק מהערכים.
לחלק מהערכים תצטרך להשתמש בפונקצית VBA המשופרת הבאה:
מקור: StackOverflowPublic Function ChrU(UCode As String) As String Dim CharCode As Long CharCode = Val("&H00" & Right(UCode, Len(UCode) - 2)) If CharCode < 0 Then CharCode = CharCode + 65536 End If Dim lngChar As Long If CharCode >= 0 Then If CharCode < &HD800& Then ChrU = ChrW$(CharCode) Exit Function ElseIf CharCode < &HDC00& Then ' UTF-16 surrogates are invalid in UTF-32 ElseIf CharCode < &HFFFF& Then ChrU = ChrW$(CharCode) Exit Function ElseIf CharCode < &H10FFFF Then lngChar = CharCode - &H10000 ChrU = ChrW$(&HD800& Or (lngChar \ 1024)) & ChrW$(&HDC00& Or (lngChar And &H3FF&)) Exit Function End If End If Err.Raise 5 End Function
תפתח את עורך ה-VBA באקסל, צור מודל חדש ותדביק שם את הקוד.
כעת תוכל להציג תווי יוניקוד כך:
-
@odeddvir הניסוח אינו מדויק.
UTF32, UTF16 ,UTF8 כולם Unicode, העניין הוא שChar מכיל רק 16 ביטים, רוב האפליקציות בחרו להתעלם מהעובדה הזו בעיקר משום שרוב התווים שבשימוש תדיר משתתפים בBasic Multilingual Plane (או בקיצור BMP) שדורש 16 ביטים בלבד.
BMP מכסה את כל השפות המודרניות ומכיל יותר מ30,000 אלף תווים בסינית. -
אני מתכונן להוציא את התוכנה להפצה בעז"ה ביום-יומיים הקרובים. תודות לכם על עזרתכם הרבה!! בפורום ובפרטי!
אשמח אם יעבור עליה מישהו שיש לו הבנה בתחום.
(אני מעלה את הקובץ. יש בו כעת שתי גליונות האחד הוא הגליון שממנו אני עורך את שאר הגליונות, והשני הוא גליון שיישמתי בו את מסכת ברכות)
אם יש למישהו רעיון לשיפור כדאי ליצור אותו בגליון הבסיסי שממנו ניצור את שאר הגליונות
חסר עדיין השלמה גרף שיבטא את קצב ההתקדמות של החזרות לפי תאריך.
תודה רבה לכל מי שיכול לעזור בעניין.
https://send.magicode.me/send-file/file/590fe8b57c55cd935429c15a02b688b56f97e00b/view
סיסמא 123