-
@dovid
קודם תודה רבה על הציון לשבחעליתי על מתי שקורה לי הבעיה
אקדים בקצרה
בניתי שני כפתורים באקסל
כפתור אחד מאקרו שמציב נתיב תיקיה שבחרתי (בדו שיח)
וכפתור שני שמציב רשימת קבצים (חוברות עבודה) שנמצאים בתוך התיקיהכעת שאני מפעיל הכפתור השני לרענון הרשימת הקבצים עובד ללא דופי
אך שאני מפעיל הכפתור הראשון שאמור להציב את הנתיב של התיקיה, לוקח לו זמן רב (מחשב 4 הליכי משנה וכו')
ככל הנראה, מכיוון שהמאקרו השני שואב את הרשימת קבצים לפי נתיב בתא שהמאקרו הראשון מציב, כנראה שיוצרת בעיה מסויימתאם תרצה אתאר לשם מה אני משתמש בזה
-
@dovid
זה הקוד כפתור ראשוןSub browseFolderPath() On Error GoTo err Dim fileExplorer As FileDialog Set fileExplorer = Application.FileDialog(msoFileDialogFolderPicker) 'To allow or disable to multi select fileExplorer.AllowMultiSelect = False With fileExplorer If .Show = -1 Then 'Any folder is selected ['גיליון5'!H1] = .SelectedItems.Item(1) Else ' else dialog is cancelled MsgBox "עליך לבחור נתיב תיקיה מתאימה" End If End With err: Exit Sub End Sub
-
@dovid אמר בעריכת קוד VBA באקסל:
משונה, הקוד הזה רץ אצלי בלי רגע של שיהוי.
יש לתא הזה השפעה על תא אחר כל שהוא?
נקוד של הכפתור השני מופעל אוטומטית בשינוי של הראשון או רק לאחר לחיצה?כשאני מחזיר את המאקרו של הכפתור השני לנוסח המקורי (נתיב תיקייה קבועה)
אז אין שום בעייה
ושניהם פועלים יפה ללא דופי
רק מתי שאני משנה לתא שהוצב ע"י הכפתור השני אזי הכפתור השני נתקע -
@dovid אמר בעריכת קוד VBA באקסל:
נקוד של הכפתור השני מופעל אוטומטית בשינוי של הראשון או רק לאחר לחיצה?
רק לאחר לחיצה
-
@dovid אמר בעריכת קוד VBA באקסל:
משונה, הקוד הזה רץ אצלי בלי רגע של שיהוי.
עשיתי גם בגיליון חדש והפעלתי שני המאקרוים ועובדים ללא דופי יחד
כעת אני יודע שהבעיה הוא לא במאקרואין לי מושג איפה קבור הכלב
-
@dovid
בסייעתא דשמיא מצאתי את הכלב
מתברר שהיה לי קוד (פונקציה מותאמת אישית) נוסף (שעבד מאד טוב)
ששאב את הנתון מתא של נתיב קובץ (שהוצב ע"י המאקרו הנל)
התברר שכל פעם שאני משנה את הנתיב של הקובץ הוא מבצע החישובים שוב (דבר שלוקח זמן שמדובר בכמות תאים)
ולא שמתי לב לזה מכיוון שלפני ששמתי את המאקרו לא שיניתי כלל את הנתיב (כי לא היה צורך)בכל אופן תודה רבה על הרצון לסייע!!!
-
שיניתי את הקוד הבעייתי לקוד שיציג תיבת אזהרה על כך שייקח זמן רב
Sub browseFolderPath() On Error GoTo err Dim fileExplorer As FileDialog Dim answer As Integer answer = MsgBox("לאחר בחירה מחדש של התיקיית דוחות, יש להמתין מס' דקות כדי לחשב מחדש, האם אתה רוצה להמשיך?", vbYesNo + vbExclamation + vbDefaultButton2 + vbMsgBoxRtlReading) If answer = vbYes Then Set fileExplorer = Application.FileDialog(msoFileDialogFolderPicker) 'To allow or disable to multi select fileExplorer.AllowMultiSelect = False With fileExplorer If .Show = -1 Then 'Any folder is selected ['גיליון5'!H1] = .SelectedItems.Item(1) Else ' else dialog is cancelled MsgBox "עליך לבחור נתיב תיקיה מתאימה" End If End With err: Exit Sub MsgBox "הנתיב שצוין הוא" & vbNewLine & vbNewLine & Range("'גיליון5'!H1").Value Else 'do nothing End If End Sub
-
פוסט זה נמחק!
-