בקשה לקוד VBA

בקשה לקוד VBA

אני מעונין להגן על מספר גיליונות נבחרים בפקודה אחת.
אודה לכל סיוע.

(7, 2010)
 

מיכאל אבידן

Member
מנהל
לדעתי, דרך מהירה ואפקטיבית תהיה בעזרת המוצע בתמונה . . .




 
ברור... רק שזה עובד

על גיליון אחד :
ActiveSheet.Protect
וכאשר אני מכניס את הפקודה לתוך לולאה ... For Each SH
זה לא עובד...??
 
פעם קראתי...

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

וכנראה שהוא שלי...
צריך להקיש מסך כל האירועים
גם אם הם 'ללא מילים'
מצרף הקובץ
ומקווה לתוכן.
תודה מראש !
 

מיכאל אבידן

Member
מנהל
אסימון איטי אבל "חתיכת אסימון"
. . .


1. לשאלתך "נכון
" התשובה היא: "לא נכון".

2. הצגתי את המלל: ...For Each SH לכמה מעמיתיי בחו"ל ושאלתי אותם מה הם מבינים מזה (אתה לא רוצה לדעת מה היו התגובות).

3. בכל פעם שתבחין שלא הגבתי יותר (בדיון בו לקחתי חלק) ו/או לא התייחסתי לשאלה שנותרה פתוחה (בלתי פתורה) תתאמץ "להפיל את האסימון" בכוח ולא להסתמך רק על 'כוח הכובד'.

4. ייתכן שהקוד שלהלן עשוי לעזור לך:

 
תודה רבה רבה


זה לא מפתיע... עובד באין מפריע...
ואולי מיקי, תסביר לי אחת ולתמיד, מה הקטע של Public לפני ה Sub ? ולפעמים זה Privet ?
סתם מעין הצהרה 'רוטינה/קוד ציבורי'...? או שיש משמעות מאחורי הפשטות ?
 

מיכאל אבידן

Member
מנהל
אחרי כל 10 התנהלויות (ראויות ורצופות) כדת וכדין . . .


אשמח להעניק לך שיעור, חינם, ב'אקסל'.

עד אז, כל האנרגיות שלי מתבזבזות על 'דיוני סרק' (מיותרים) מולך...
 
זו גם מומחיות


לאתר ולנחות במקום הנכון...
להלך על קורים ולא ליפול בין החורים...
תודה מקרב לב !!
 

iyyi

New member
אם תרצה שהמקרו בסוף הריצה יחזיר את הבחירה לחוברות שסימנת...

נסה את המקרו הבא:
קוד:
Sub Protect1()
ReDim shArr(1 To ActiveWindow.SelectedSheets.Count)
i = 1
    For Each sh In ActiveWindow.SelectedSheets
        shArr(i) = sh.Name
        i = i + 1
    Next
Sheets(shArr(1)).Select

For i = 1 To UBound(shArr)
    On Error Resume Next
    Sheets(shArr(i)).Protect Password:=""
Next i
Sheets(shArr).Select
End Sub
 
שמתי לב שמחזיר ל-1 אך...

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

u333

New member
עידון קטן...

ניתן לוותר על 2 קטעים, הנה ככה:
קוד:
Sub ProtectSh()
Dim PU As New Collection
    For Each pp In ActiveWindow.SelectedSheets
        PU.Add pp
    Next
    Worksheets(1).Select
    For Each sh In PU
        sh.Protect
    Next
End Sub
 

מיכאל אבידן

Member
מנהל
בה נסכם משהו לגבי העידונים הקטנים העתידיים . . .


&nbsp
בעידון המצדיק התייחסות, קלילה, אשתדל לכתוב "אין תגובה"... בעידון שלא מצדיק "אמלא פי מים".
&nbsp
גילוי נאות - אין פוסט (שאלה/תגובה שאני לא רואה - בעיקר בעזרת ממשקי הניהול...)
&nbsp
 

u333

New member
במקום 'להמציא את הגלגל' הייתי מוריד את התוסף הנהדר....

ASAP Utilities
קרא כאן אודותיו והורד מכאן.
יש בו את כל מה שאתה צריך.
 


אומנם נהדר. ושוב תודה לך u333 ,
ממה שהבנתי זה ללא תשלום...
האם נכון ?
האם יחזיק 90 יום בלבד ?
 

u333

New member
קרא שוב בעיון את ההנחיות. העתקתי לך ליתר בטחון.

ציטוט:
Home and Student edition.
Only free for home projects, schoolwork and charitable organizations

סוף ציטוט.
ה-90 יום נסיון חינם היא לגירסה העסקית המלאה.
 
אומנם ראיתי...

אבל מה שבלבל אותי זה הרישום Unregistered version בתוסף עצמו.
בכל אופן, תודה על ההבהרה.
 
למעלה