הצפנת גיליון באקסל

  • פותח הנושא ל13
  • פורסם בתאריך

ל13

New member
הצפנת גיליון באקסל


הי,

חיפשתי וחיפשתי ולא מצאתי...
האם תוכלו לעזור לי?
אני מחפש דרך להצפין גיליונות מסוימים בתוך קובץ אקסל, כלומר שייראו למשתמש רק אחרי שהקיש סיסמה מתאימה. אם אין לו את הסיסמה, לא יוכל לראות את הגיליון כלל.
אני מדבר על הצפנת הגיליון (encrypt sheet) ולא על הגנת הגיליון (protect sheet). אני יודע שקיימת אפשרות להצפנת הקובץ כולו אבל הצורך שלי הוא הצפנת גיליון בקובץ.

תודה מראש
 

u333

New member
אתה מבלבל את המונחים !

אתה מציין "הצפנה" ולא "הסתרה" ומתאר בדיוק בדיוק הסתרה !!
ומציין עוד שהגיליון יראה רק לאחר הקשת סיסמא.
זה הסתרה ולא הצפנה !!
הצעתי היא - לבצע דרך עורך ה- vba "הסתרה עמוקה" - very hidden ע"י שינוי תכונות הגיליון. ולהגן על הכניסה לקוד באמצעות סיסמא.
אך קח בחשבון שכל משתמש מיומן מפצח קוד כזה תוך שניות ספורות !!
 

ל13

New member
תודה על התשובה אבל...

נותרתי עם הרבה סימני שאלה...

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

אני חושב שהפיתרון שהצעת לא ממש מתאים למטרה שתיארתי כאן ובכל מקרה, גם אם כן, אין לי שום מושג איך לעשות את מה שהצעת...

אשמח לפיתרון ולהסבר קצר.

תודה מראש
 

ל13

New member
ואגב...

לא מטרידה אותי הקלות שבה אפשר לפצח את הקוד. לא מדובר בסודות אטום...
 

ziv98

Member
מוסתר מאוד

בעורת המאקרו (alt+f11) - בחר גיליון והמשך לפי המתואר בצילום המסך.

 

ziv98

Member
ובשביל הגימיק (או שלא...)

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

ל13

New member
תודה רבה


הלכתי לפי ההסבר שלך... עשיתי ניסיון להציג גיליונות לפי שם משתמש.
וואלה זה עובד! למדתי!

המון תודה
 

ל13

New member
תודה. לא הבנתי רק איך להגיע לחלון ההגדרות התחתון שצילמת...

אני רואה רק את העליון...
 

u333

New member
נסה גם את הקובץ המוצע

בעמודות O P יש טבלה עם 4 גיליונות והסיסמאות להצגתם.
כמובן שזה רק לצורך ההדגמה. כל משתמש ידע רק את הסיסמא שלו.
לחץ על לחצן "לחץ לגילוי גיליון" ופעל לפי ההוראות. הכנס בחלון עם שם הגיליון המתאים את הסיסמא המתאימה מתוך הטבלה ולחץ על לחצן "ביטול הסתרה" - שים לב שיתגלה רק הגיליון שבחרת ורק אם הסיסמא היתה נכונה.
סיסמא שגויה או סגירת הטופס ישארו ללא תגובה.
ניתן לצרף הודעות שגיאה.
 

ל13

New member
תודה רבה


תשמע, כאחד שלא ממש יודע לכתוב קוד ב-VBA, עמלתי קשות כדי להבין, להתאים וליישם את הפתרון שלך בקובץ שלי, ובסופו של דבר הצלחתי! זה עובד מעולה!
בדיוק מה שהייתי צריך!
המון המון תודה על העזרה
 

ל13

New member
ברשותכם שאלה נוספת בעניין... אני תקוע...


אז ככה, אחרי שיישמתי את פתרון הסיסמה עבור הצגת כל גיליון בקוד VBA,
יש לי בעיה אחרת...
יש לי גיליון ראשי (נעול עם סיסמה) עם פיבוט שמציג למנהל את הנתונים של כל הצוות ויש לי גיליון עבור כל חבר צוות עם אותו פיבוט שמציג את אותם נתונים אבל מסוננים (בפיבוט) רק עבור אותו חבר צוות. כל אחד יכול לפתוח את הגיליון המסונן שלו עם הסיסמה שלו. המנהל יכול לפתוח את הגיליון הראשי עם סיסמה שלו.
ביצעתי Protect sheet לכל אחד מהגיליונות של חברי הצוות כך שגם אחרי הקשת סיסמה והצגת הגיליון הרלוונטי לעובד, יוכל לקרוא את הנתונים בגיליון ללא יכולת עריכה ובעיקר שלא יוכלו לפתוח את סינון השמות בפילטר ולראות נתונים של עובד אחר. אבל כשאני מפעיל את ה-Protect sheet וכל התאים נעולים כנדרש, כולל נעילת האפשרות לפתוח את הסינונים של הפיבוט, זה גורם לכך שגם רענון הפיבוט לא יאופשר!!!
רענון זה הוא קריטי. בלי הרענון הקובץ לא שווה כלום...
עבדתי על זה מלא זמן ועכשיו לא יודע איך לפתור את הבעיה איך להמשיך מכאן...

יש לכם פיתרון בשבילי? בבקשה...

תודה מראש.
 

ziv98

Member
אם vb

אז באותו קוד: תוריד את ההגנה, רענן, החזר את ההגנה.
&nbsp
להתייחסות ספיציפית צרף דוגמת קובץ כולל הקוד
 

ל13

New member
2 תקלות...


הי,

יש לי עדיין 2 תקלות שאני לא מצליח לפתור:

1) הכנסתי קוד שיעשה unprotect+refreshpivot+protect כמו שהנחת אותי לעשות, וזה עושה את הרענון לכל עובד בגיליון שלו. אבל כשאני מנסה לרענן את הפיבוט בגיליון המנהל (שאינו protected) אני מקבל הודעת שגיאה שיש גיליונות שתלויים בנתוני ה-Pivot הזה שהם ב-protected ולכן לא מבצע את הרענון! (ראה צילום הודעת שגיאה מצורף). מה עושים??

2) כאשר אני פותח את הקובץ מחדש, כל הגיליונות, גם של המנהל וגם של כל אחד מהעובדים, אמורים להיות מוסתרים. רק אחרי הקלדת סיסמה עבור גיליון ספציפי הוא אמור להיפתח. אבל... ברגע שהגיליון נפתח הוא כן מראה את הגיליון של אחד העובדים ונפתח חלון של האם לעשות update links או לא, רק אחרי שאני לוחץ כן או לא, הגיליון נעלם ומוסתר כראוי... מה אפשר לעשות שהגיליון שאמור להיות מוסתר לא יוצג בפתיחת הקובץ?

תודה מראש.

 

ziv98

Member
מישהו ? קובץ ???

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

ל13

New member
רעיון מעולה!!! הלוואי שהייתי יודע איך לעשות את זה...

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

יש מצב לדוגמא של קוד שיעשה את זה? אין לי מושג ב-VBA...

תודה רבה
 

ziv98

Member
דוגמה פשוטה

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

1+2 - יוזרים "עובדים" - רואים רק את שלהם.
3 - המנהל - רואה הכל.

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

ל13

New member
המון תודה על העזרה, אבל אני מתקשה עם ה-VBA. הנה קובץ דוגמא

הי,

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

אשמח מאוד לעזרה מהירה. אני מתברבר בזה כבר כמה ימים ואני יודע שאם היה לי שליטה בסיסית ב-VBA הייתי יכול לסיים עם זה מזמן...

תודה מראש
 

ziv98

Member
דוגמה יותר מפורטת

הקוד:
1. באירוע פתיחת קובץ, תחת "חוברת עבודה זו" (מטעמי נוחות הוא רק קורא לקוד שיושב במודול, כך נוח להפעיל אותו לבדיקות)
2. מאחורי כפתור כניסה בטופס

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