תחומים
    • הרשמה
    • התחברות
    • חיפוש
    • קטגוריות
    • פוסטים אחרונים
    • משתמשים
    • חיפוש
    חוקי הפורום

    קוד מאקרו שאינו עובד

    תוכנה
    5
    11
    220
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • חנון המרבה
      חנון המרבה נערך לאחרונה על ידי חנון המרבה

      עשיתי איזה מאקרו ומשום מה זה לא עובד, מישהו יודע מה הבעיה?!

      Sub הצג()
      Dim A, B, C
      A = InputBox("סיסמא", "הכנס סיסמא להצגה", , 13000, 6000)
      B = 900 / 3
      C = B / 3
      Application.Run "'חוברת1.xlsm'!Macro13"
      If A = C Then
      Range("R4").Select
          Selection.End(xlDown).Select
          ActiveCell.Offset(1, -8).Range("A1").Select
      ActiveCell.FormulaR1C1 = "הצג"
      Else
      Beep
      MsgBox ("הסיסמא אינה נכונה")
      End If
      MsgBox ("שלום ותודה!")
      ActiveCell.FormulaR1C1 = "אל תציג"
      End Sub
      

      ובהזדמנות זו אשאל האם יש אפשרות ב'MsgBox' שההודעה תופיע זמן מסוים ולאחמ"כ היא תעלם?!

      מ nach 2 תגובות תגובה אחרונה תגובה ציטוט 1
      • nach
        nach @חנון המרבה נערך לאחרונה על ידי

        @חנון-המרבה המאקרו לא רץ בכלל? או שהוא נתקע איפשהו? כי א"כ היכן הוא נתקע? מה הודעת השגיאה שקופצת לך? (או שבכלל הוא נתקע בהרצה של הפונקציה השניה שאתה קורא לה מתוכה (מאקרו 13) שהקובץ המצוין לא זמין וכדו')
        תוכל לתת יותר פרטים?

        חנון המרבה תגובה 1 תגובה אחרונה תגובה ציטוט 3
        • אוריי
          אוריי @משחזר מידע נערך לאחרונה על ידי

          @משחזר-מידע אמר בקוד מאקרו שאינו עובד:

          @חנון-המרבה אמר בקוד מאקרו שאינו עובד:

          ובהזדמנות זו אשאל האם יש אפשרות ב'MsgBox' שההודעה תופיע זמן מסוים ולאחמ"כ היא תעלם?!

          createobject("wscript.shell").popup(...)
          

          @משחזר-מידע תוכל לתת לי הסבר איך בדיוק עושים את זה (קצת יותר מפורט)
          תודה מראש..

          ניתן לפנות אלי גם ב al0548446188@gmail.com
          ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

          מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • חנון המרבה
            חנון המרבה @nach נערך לאחרונה על ידי

            @nach זה לא נתקע, אבל אני מכניס את הנתון הנכון ב InputBox וזה מחזיר לי MsgBox של השגיאה (דהיינו שקופץ לי חלון "הסיסמא אינה נכונה")

            nach תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • nach
              nach @חנון המרבה נערך לאחרונה על ידי nach

              @חנון-המרבה
              לא מבין איפה השאלה, כנראה שאכן הסיסמא אינה נכונה אתה מחפש בקוד האם Aשווה לC והיות שמה שהזנת לא שווה לC לכן הוא עובר לבלוק ההוראות הבא שאומר להדפיס הודעה כנ"ל,
              תנסה להכניס את הסיסמא 100, תבדוק אם יעבוד.

              תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • nach
                nach נערך לאחרונה על ידי

                מעיון חוזר בקוד, הבעיה היא שאתה משווה ערך טקסטואלי לערך נומרי, מהאינפוט מתקבל טקסט ואתה מנסה להשוות אותו למשתנה אחר שמכיל מספר! לא בדקתי עדיין, תוכל לבדוק אצלך, כראה שזו הבעיה.

                תגובה 1 תגובה אחרונה תגובה ציטוט 2
                • dovid
                  dovid ניהול נערך לאחרונה על ידי dovid

                  הבעיה היא בגלל שה100 הינו טקסט, היינו "100", וזה שונה מ100 שהוא מספר.
                  למשל הקוד הבא

                  Dim aNumber
                  Dim bStr
                  
                  aNumber = 1000
                  bStr = "1000"
                  
                  If bStr = aNumber Then
                      MsgBox "שווה"
                  Else
                      MsgBox "שונה"
                  End If
                  

                  יקפיץ את התיבה "שונה" (זאת למרות שכאשר בקוד עצמו יש השוואת מספר לטקסט זהה התנאי מתקיים, כנראה בגלל שלפני ההשוואה מתבצעת המרה).

                  אז הפתרון הוא לכתוב ככה:

                  If bStr = ("" & aNumber) Then
                  

                  או אלגנטית לפי הספר, המרה לטקסט

                  If bStr = CStr(aNumber) Then
                  

                  שזה אומר במקרה שלנו לכתוב

                  If A = CStr(C) Then
                  

                  אפשר ליצור קשר dovid@tchumim.com

                  clickone dovid 2 תגובות תגובה אחרונה תגובה ציטוט 2
                  • clickone
                    clickone @dovid נערך לאחרונה על ידי clickone

                    @dovid אמר בקוד מאקרו שאינו עובד:

                    הבעיה היא בגלל שה100 הינו טקסט, היינו "100", וזה שונה מ100 שהוא מספר.

                    בVBA
                    100="100"

                    ?100="100"
                    True
                    

                    לא עברתי על הקוד כדי לדעת מה הבעייה, אבל לכאורה לא זו הבעייה
                    סליחה, זו אכן הבעייה ואני לא מבין למה, כי לפי הכללים של השפה אפשר להשתמש בזה וזה אמור לעבוד

                    בכל מקרה, כמו ש @dovid כתב, הפיתרון הוא להמיר לסטרינג

                    If A = CStr(C) Then
                    

                    אין טסט כמו פרודקשן.

                    המייל שלי urivpn@gmail.com

                    תגובה 1 תגובה אחרונה תגובה ציטוט 1
                    • dovid
                      dovid ניהול @dovid נערך לאחרונה על ידי

                      @dovid אמר בקוד מאקרו שאינו עובד:

                      (זאת למרות שכאשר בקוד עצמו יש השוואת מספר לטקסט זהה התנאי מתקיים, כנראה בגלל שלפני ההשוואה מתבצעת המרה).

                      אפשר ליצור קשר dovid@tchumim.com

                      dovid תגובה 1 תגובה אחרונה תגובה ציטוט 2
                      • dovid
                        dovid ניהול @dovid נערך לאחרונה על ידי

                        @clickone הצדק איתך, זכרת טוב. גם במשתנים זה עובד יופי.
                        ניסיתי להבין מה ההבדל בין 100="100" לבין משתנים, וההבדל היחיד שחשבתי זה שהמפרש ממיר את המספר לטקסט לפני ההשוואה, כי הוא רואה שזה טיפוסים שונים. נו ולמה הוא לא רואה במשתנים? הסתכלתי על הקוד והבנתי! המשתנים הם חסרי סוג!

                        כלומר הפתרון הוא לכתוב:

                        Dim A As String
                        Dim B, C As Integer
                        

                        ואז זה עובד...

                        אפשר ליצור קשר dovid@tchumim.com

                        תגובה 1 תגובה אחרונה תגובה ציטוט 2
                        • dovid
                          dovid ניהול @משחזר מידע נערך לאחרונה על ידי dovid

                          @חנון-המרבה תשתדל לפתוח כל פעם נושא נפרד לכל שאלה.

                          אפשר ליצור קשר dovid@tchumim.com

                          תגובה 1 תגובה אחרונה תגובה ציטוט 3
                          • 1 / 1
                          • פוסט ראשון
                            פוסט אחרון
                          בא תתחבר לדף היומי!