עזרה במאקרו לפיצול מסמך

נירוש

משתמש סופר מקצוען
עיצוב גרפי
צילום מקצועי
יש לי קבצי וורד שמכילים פרקים בתנ"ך, ואני מעוניינת לפצל אותם. כל קובץ מכיל לדוגמא 30 פרקים,
ורציתי לדעת האם אפשרי בפקודת מאקרו לפצל את המסמך למסמכים רבים לפי הפרקים?
[כל פרק מתחיל בלדוגמא "שופטים פרק X", כך שבמאקרו אפשרי אולי להורות לו מ-"שופטים פרק X" לחתוך עד "שופטים פרק X" ולסגור בקובץ נפרד].

תודה לכל המסייעים.
 

נירוש

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

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

5127109

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

אפשר גם לראות את זה בפעולה בסרטון באתר.

http://www.extra-word.com/apps/sakumLeWord

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

tkh

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

נירוש

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

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

נירוש

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

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

5127109

מהמשתמשים המובילים!
עיצוב גרפי
עימוד ספרים
את לא צריכה מקרו בשביל להגדיר אלא חיפוש והחלפה.
נניח את עושה חפש "שופטים פרק" החלף ב@33^& כלומר שטרודל 33 ומה שמצאת
אחרי זה בתוסף את מחפשת את כל המקומות שנמצאים בין שני אלו כלומר בתווים כליים
\@33*\@33
ואז הוא מוצא כל מה שבין שני אלו - שבמקרה הזה זה פרק שלם (תשימי בסוף המסמך ג"כ @33 אחד כדי שיוכל למצוא לך את האחרון) ושם כל אחד בקובץ נפרד.
המחיר הוא 200 שח.
 

tkh

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

Yisrael

משתמש פעיל
@נירוש תנסי את זה


קוד:
Dim strFolder As String, wdDoc As Document, MyRng As Range, Copyng As Range, MyStop As String

    application.ScreenUpdating = False
    strFolder = GetFolder
        If strFolder = "" Then Exit Sub
    Selection.HomeKey wdStory
start:
        If MyStop = 1 Then Exit Sub
        With Selection.Find
            .ClearFormatting
            .Execute findText:="שופטים פרק", MatchWildcards:=True, Format:=False, Wrap:=wdFindContinue
                If .Found = True Then
                    Set MyRange = Selection.Range
                    .Execute findText:="שופטים פרק", MatchWildcards:=True, Format:=False, Wrap:=wdFindStop
                        If .Found Then
                            MyRange.End = Selection.start
                            Else
                            MyRange.End = ActiveDocument.Range.End
                            MyStop = 1
                        End If
                    Selection.HomeKey
                    Set Copyng = MyRange
                    Set wdDoc = Documents.Add(DocumentType:=wdNewBlankDocument)
                    wdDoc.Range.text = Copyng.text
                    ChangeFileOpenDirectory strFolder
                    wdDoc.SaveAs FileName:=Left(MyRange.text, 12) & ".docx", _
                    FileFormat:=wdFormatXMLDocument
                    wdDoc.Close
                    GoTo start
                End If
        End With
    application.ScreenUpdating = True
End Sub
Function GetFolder() As String
    Dim oFolder As Object
    GetFolder = ""
    Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "בחר תיקייה", 0)
        If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
    Set oFolder = Nothing
End Function
 

נירוש

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

Sub פיצולמסמך()
Dim strFolder As String, wdDoc As Document, MyRange As Range, MyStop As Integer
Application.ScreenUpdating = False
strFolder = GetFolder
If strFolder = "" Then Exit Sub
Selection.HomeKey wdStory
start:
If MyStop = 1 Then Exit Sub
With Selection.Find
.ClearFormatting

.Font.BoldBi = True
.Font.Underline = wdUnderlineSingle
.Execute findText:="משלי פרק", MatchWildcards:=True, Format:=True, Wrap:=wdFindContinue
If .Found = True Then
Set MyRange = Selection.Range
.Font.BoldBi = True
.Font.Underline = wdUnderlineSingle
.Execute findText:="משלי פרק", MatchWildcards:=True, Format:=True, Wrap:=wdFindStop
If .Found Then
MyRange.End = Selection.start
Else
MyRange.End = ActiveDocument.Range.End
MyStop = 1
End If
Selection.HomeKey
MyRange.Copy
'Set Copyng = MyRange
Set wdDoc = Documents.Add(DocumentType:=wdNewBlankDocument)
wdDoc.Range.PasteAndFormat (wdFormatOriginalFormatting)
'wdDoc.Range.text = Copyng.text
ChangeFileOpenDirectory strFolder

wdDoc.SaveAs FileName:=Left(MyRange.Text, MyRange.Paragraphs(1).Range.Characters.Count - 1) & ".docx", _
FileFormat:=wdFormatXMLDocument
wdDoc.Close
GoTo start
End If
End With
Application.ScreenUpdating = True
End Sub
Function GetFolder() As String
Dim oFolder As Object
GetFolder = ""
Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "בחר תיקייה", 0)
If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
Set oFolder = Nothing
End Function
 

הללוהו ב ו

משתמש מקצוען
הקלטתי מקרו פשוט לפצל טקסט לשתים מאיפה שאתה עומד:
קוד:
Sub פיצול_מסמך()
    Selection.HomeKey Unit:=wdStory, Extend:=wdExtend
    Selection.Cut
    Documents.Add DocumentType:=wdNewBlankDocument
    Selection.PasteAndFormat (wdFormatOriginalFormatting)
End Sub
בהצלחה.
 

אפר

סתם מתעניין...
מנוי פרימיום
איך נוכל להשתמש עם המאקרו במצב שאינו כן?
קוד:
Sub פיצולמסמך()
    Dim strFolder As String, wdDoc As Document, MyRange As Range, MyStop As Integer
    Application.ScreenUpdating = False
    strFolder = GetFolder
    If strFolder = "" Then Exit Sub
    Selection.HomeKey wdStory
    start:
    If MyStop = 1 Then Exit Sub
    With Selection.Find
    .ClearFormatting

    .Execute findText:="משלי פרק", MatchWildcards:=True, Format:=True, Wrap:=wdFindContinue
    If .Found = True Then
    Set MyRange = Selection.Range
    .Execute findText:="משלי פרק", MatchWildcards:=True, Format:=True, Wrap:=wdFindStop
    If .Found Then
    MyRange.End = Selection.start
    Else
    MyRange.End = ActiveDocument.Range.End
    MyStop = 1
    End If
    Selection.HomeKey
    MyRange.Copy
    'Set Copyng = MyRange
    Set wdDoc = Documents.Add(DocumentType:=wdNewBlankDocument)
    wdDoc.Range.PasteAndFormat (wdFormatOriginalFormatting)
    'wdDoc.Range.text = Copyng.text
    ChangeFileOpenDirectory strFolder

    wdDoc.SaveAs FileName:=Left(MyRange.Text, MyRange.Paragraphs(1).Range.Characters.Count - 1) & ".docx", _
    FileFormat:=wdFormatXMLDocument
    wdDoc.Close
    GoTo start
    End If
    End With
    Application.ScreenUpdating = True
    End Sub
    Function GetFolder() As String
    Dim oFolder As Object
    GetFolder = ""
    Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "בחר תיקייה", 0)
    If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
    Set oFolder = Nothing
End Function
 

הללוהו ב ו

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

אולי מעניין אותך גם...

הפרק היומי

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


תהילים פרק קכג

א שִׁיר הַמַּעֲלוֹת אֵלֶיךָ נָשָׂאתִי אֶת עֵינַי הַיֹּשְׁבִי בַּשָּׁמָיִם:ב הִנֵּה כְעֵינֵי עֲבָדִים אֶל יַד אֲדוֹנֵיהֶם כְּעֵינֵי שִׁפְחָה אֶל יַד גְּבִרְתָּהּ כֵּן עֵינֵינוּ אֶל יְהוָה אֱלֹהֵינוּ עַד שֶׁיְּחָנֵּנוּ:ג חָנֵּנוּ יְהוָה חָנֵּנוּ כִּי רַב שָׂבַעְנוּ בוּז:ד רַבַּת שָׂבְעָה לָּהּ נַפְשֵׁנוּ הַלַּעַג הַשַּׁאֲנַנִּים הַבּוּז לִגְאֵיוֹנִים:
נקרא  13  פעמים

לוח מודעות

למעלה