דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תוכנה
  3. קוד מאקרו שאינו עובד

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

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

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

    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' שההודעה תופיע זמן מסוים ולאחמ"כ היא תעלם?!

    מ nachN 2 תגובות תגובה אחרונה
    1
    • חנון המרבהח חנון המרבה

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

      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' שההודעה תופיע זמן מסוים ולאחמ"כ היא תעלם?!

      nachN מנותק
      nachN מנותק
      nach
      כתב ב נערך לאחרונה על ידי
      #2

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

      חנון המרבהח תגובה 1 תגובה אחרונה
      3
      • מ משחזר מידע

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

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

        createobject("wscript.shell").popup(...)
        
        אורייא מנותק
        אורייא מנותק
        אוריי
        כתב ב נערך לאחרונה על ידי
        #3

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

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

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

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

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

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

        מ תגובה 1 תגובה אחרונה
        0
        • nachN nach

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

          חנון המרבהח מנותק
          חנון המרבהח מנותק
          חנון המרבה
          כתב ב נערך לאחרונה על ידי
          #4

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

          nachN תגובה 1 תגובה אחרונה
          0
          • חנון המרבהח חנון המרבה

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

            nachN מנותק
            nachN מנותק
            nach
            כתב ב נערך לאחרונה על ידי nach
            #5

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

            תגובה 1 תגובה אחרונה
            1
            • nachN מנותק
              nachN מנותק
              nach
              כתב ב נערך לאחרונה על ידי
              #6

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

              תגובה 1 תגובה אחרונה
              2
              • dovidD מנותק
                dovidD מנותק
                dovid
                ניהול
                כתב ב נערך לאחרונה על ידי dovid
                #7

                הבעיה היא בגלל שה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
                clickoneC dovidD 2 תגובות תגובה אחרונה
                2
                • dovidD 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
                  
                  clickoneC מנותק
                  clickoneC מנותק
                  clickone
                  כתב ב נערך לאחרונה על ידי clickone
                  #8

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

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

                  בVBA
                  100="100"

                  ?100="100"
                  True
                  

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

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

                  If A = CStr(C) Then
                  

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

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

                  תגובה 1 תגובה אחרונה
                  1
                  • dovidD 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
                    
                    dovidD מנותק
                    dovidD מנותק
                    dovid
                    ניהול
                    כתב ב נערך לאחרונה על ידי
                    #9

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

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

                    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                    dovidD תגובה 1 תגובה אחרונה
                    2
                    • dovidD dovid

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

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

                      dovidD מנותק
                      dovidD מנותק
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי
                      #10

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

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

                      Dim A As String
                      Dim B, C As Integer
                      

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

                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                      תגובה 1 תגובה אחרונה
                      2
                      • מ משחזר מידע

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

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

                        i = CreateObject("wscript.shell").popup("This is a MsgBox who will be automatically Closed!",1,"Note")
                        
                        dovidD מנותק
                        dovidD מנותק
                        dovid
                        ניהול
                        כתב ב נערך לאחרונה על ידי dovid
                        #11

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

                        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                        תגובה 1 תגובה אחרונה
                        3
                        תגובה
                        • תגובה כנושא
                        התחברו כדי לפרסם תגובה
                        • מהישן לחדש
                        • מהחדש לישן
                        • הכי הרבה הצבעות


                        בא תתחבר לדף היומי!
                        • התחברות

                        • אין לך חשבון עדיין? הרשמה

                        • התחברו או הירשמו כדי לחפש.
                        • פוסט ראשון
                          פוסט אחרון
                        0
                        • דף הבית
                        • קטגוריות
                        • פוסטים אחרונים
                        • משתמשים
                        • חיפוש
                        • חוקי הפורום