שאלה במאקרו

bakhagai

New member
שאלה במאקרו

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

bakhagai

New member
אז אני רק אקדים ואגיד שאני לא באמת מבין במאקרו

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

u333

New member
צירפת רק את הסקריפט של המקרו.....

צרף את קובץ האקסל עם המקרו בפנים ותאר בקצרה מה אתה רוצה להשיג !
 

bakhagai

New member
מצרף את הקובץ

בקצרה, הפעולה צריכה לטייב את 2 העמודות של הטלפונים,
להעיף מקפים, להעיף אפסים, לחבר אפסים למספרים ולהעיף כפולים משתי העמודות.
 

u333

New member
עקוב היטב אחרי סדר הפעולות שלהלן:

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

(אל תשכח למחוק את הלחצן הקודם מגוף הגיליון sheet1
 

bakhagai

New member
עדיין לא עובד

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

u333

New member
ראשית, צרף את הקובץ שלך המתוקן לפי הנחיותי. אח"כ נמשיך.

 

מיכאל אבידן

Member
מנהל
ולאחר שתפעל כמתבקש מנוהלי הפורום . . .


&nbsp
ספר, לי, קצת מדוע הלכת בכיוון מקרו כשאת מבוקשך ניתן לבצע בכמה הקלקות עכבר

&nbsp
לשם הדגמה יהיה עליך להציג קובץ המכיל מקפים, אפסים המיועדים "לעוף", לחבר אפסים למספרים (סתירה מהבקשה הקודמת) וכפולים משתי העמודות.
&nbsp
 

bakhagai

New member
הסבר לצורך

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

bakhagai

New member
מצ"ב הקובץ לאחר השינוי

המאקרו עושה את כל הפעולות מלבד מחיקת הכפולים
 

iyyi

New member
תעלה בבקשה קובץ גולמי לא מטופל (אפשר גם ללא המקרו)

 

u333

New member
זה העקרון של הקוד המקוצר בקשר "לנ.ב."

הוא עושה את כל מה שניסית לעשות בקוד הארוך שלך.
כעת מה שנותר לך - להקצות לו לחצן או בגוף הגיליון או בסרגל הכלים לגישה מהירה.
את הקוד יש להכניס למודול.
קוד:
Sub MyMacro()
LR = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range(Cells(2, 2), Cells(LR, 3))
    For Each cl In rng
        cl.Value = Replace(cl, "-", "", , -1)
        cl.Value = "'" & "0" & cl.Value
    Next
End Sub
 

bakhagai

New member
תודה רבה קודם כל

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

u333

New member
אולי מפני שעדיין לא הגדרת ברור מה זה "להעיף כפולים"...

למשל, בקובץ האחרון שהעלית, מה עם שורות 4 ו-5 ?? (מתכוון לקובץ שהעלית אתמול בשעה 11:50)
השם בשתיהן - שונה
מס. הטלפון - זהה
מס. הפלאפון - שונה
אז מה לעשות עם שורה כזו ?
למה בדיוק אתה קורא כפולים !
תן דוגמא ברורה של לפני ואחרי !
 

bakhagai

New member
מספר שחוזר על עצמו

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

u333

New member
עדיין לא ברור לגמרי...

אם מספר מופיע פעמיים - האם למחוק רק הופעה אחת שלו ולהשאיר את השניה או למחוק את שתיהן ולהשאיר 2 תאים ריקים ?
 

bakhagai

New member
אז אסביר

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

u333

New member
אם כך - תקן את הקוד לזה שלהלן:

שים לב לשורה שהתווספה לקוד הקודם.
המספר שישאר במקרה של הופעה יותר מפעם אחת - הוא האחרון בסדר ההופעות.
מקווה שאין יותר הפתעות !
קוד:
Sub MyMacro()
LR = Cells(Rows.Count, 1).End(xlUp).Row
Set rng = Range(Cells(2, 2), Cells(LR, 3))
    For Each cl In rng
        cl.Value = Replace(cl, "-", "", , -1)
        cl.Value = "'" & "0" & cl.Value
       If Application.CountIf(rng, cl) > 1 Then cl.ClearContents
    Next
End Sub
 
למעלה