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

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

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

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

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

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

    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
                      • דף הבית
                      • קטגוריות
                      • פוסטים אחרונים
                      • משתמשים
                      • חיפוש
                      • חוקי הפורום