ביטול איחוד תאים

לירן198

New member
ביטול איחוד תאים

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

u333

New member
בהנחה שאת מתכוונת ל"מיזוג תאים" הנה המקרו..

אני מניח שאיחוד הוא אצלך מה שנקרא Merged
בחרי את התא הממוזג והפעילי את המקרו הבא:
קוד:
Sub BreakMerge()
    Set ma = ActiveCell.MergeArea
    mv = ActiveCell.Value
    ActiveCell.UnMerge
    For Each c In ma
        c.Value = mv
    Next
End Sub
 

לירן198

New member
מצרפת קובץ קצר לדוגמא

לא הצלחתי להקליט את הפקודה. אין לי ניסיון במאקרו ניסיתי להסתכל בסרטוני הדרכה.
 

מיכאל אבידן

Member
מנהל
במקרה הפרטי שלך אין צורך במקרו . . .


1. סמני את תאי עמודה "A" ובטלי את ה'מיזוג'.

2. לחצי על [F5] > מיוחד...' > סמני את 'ריקים' > 'אישור'.

3. הקלידי: A1= ולחצי על שילוב המקשים: Ctrl+Enter.
 

u333

New member
מצורף הקובץ שלך

בחרי את הטווח A1:A23 ולחצי על הלחצן "הפרד תאים"
 

יעליעלי

New member
מכיוון שביטול המיזוג בוחר ממילא את כל התאים

אין צורך בלולאה
ואפשר לכתוב פשוט
Selection = mv
 

מיכאל אבידן

Member
מנהל
משהו לא לגמרי ברור לי בכל הדיון . . .


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

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

קוד:
Sub UnMergeCellsAndFill()
        With Selection
            .UnMerge
            .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
            .Copy
            .PasteSpecial Paste:=xlPasteValues
        End With
End Sub
 

ziv98

Member
לדעתי - מבין ההצעות - זו של יעליעלי היא האלגנטית ביותר

 

ziv98

Member
ובלבד שמדובר בתא ממוזג אחד בלבד

וזאת ע"פ ניסוח השאלה המקורית.

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

מיכאל אבידן

Member
מנהל
ולאחר ההבהרה המאד
חשובה הזאת . . .


שכן, לדעתי, זה מסוג השאלות שלא תמיד מנוסחות כהלכה (ונמתין למוצא פיה של השואלת) - הקוד שהצעתי (בתופסת קטנה של: On Error Resume Next) מטפל בכל האפשרויות גם אם נבחרו רק 2 תאים ממוזגים שאינם צמודים - כמו בתמונה.

 

u333

New member
למיכאל ו-ziv98

אני התייחסתי בדוגמא שנתתי בקובץ מ-1/12/16 שעה 18:18 למקרה הכוללני ביותר כפי שאני הבנתי.
דהיינו - מספר רב של תאים ממוזגים, חלקם של כמה שורות ע"פ עמודה אחת + חלק עם כמה עמודות ע"פ שורה אחת ועוד חלק עם כמה שורות+עמודות.
(תאים לא ממוזגים נשארים ללא שינוי).
במקרה כזה - ראו תמונה - בוחרים את הטווח הכולל, כלומר למשל M1:S17 ומפעילים את המקרו.
מיותר לציין כי הוא יפעל על כל סידור אחר - עד רמת התא הבודד.
הנה הקוד המוצע:
קוד:
Sub BreakMerge()
    For Each cl In Selection
        If cl.MergeCells Then
            Set ma = cl.MergeArea
            mv = cl.Value
            cl.UnMerge
                For Each c In ma
                    c.Value = mv
                Next
        End If
    Next
End Sub


 

מיכאל אבידן

Member
מנהל
רק שזה לא מתקרב
למה שהשואלת הציגה בקובץ שצרפה . . .


אז, אם בקשתה היתה שהמקרו ימלא גם תאים שאינם ממוזגים (A1:A7) הקוד שהצעת איננו מתאים.

אם היא ביקשה למלא רק
תאים ממוזגים - ומדובר בטור אנכי (כבקובץ שצרפה) המקרו מתאים אבל ארוך מידי.

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

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