דילוג לתוכן

תכנות

4.7k נושאים 38.7k פוסטים

קטגוריות משנה


  • 22 נושאים
    137 פוסטים
    katzK

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

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

    נתחיל...

    שלב א:

    ראשית בקובץ ה- Excel של רשימת הנמענים, הוסיפו לטבלת הנתונים ארבעה עמודות בשמות כדלהלן (חשוב שהשמות יהיו מדויקים ללא רווחים מיותרים - לתשומת ליבכם):

    DocFolderPath

    DocFileName

    PdfFolderPath

    PdfFileName

    שלב ב:
    צרו שתי תיקיות נפרדות, אחד לקבצי הפלט בפורמט docx, ואחד לקבצי הקלט בפורמט pdf, העתיקו את נתיב התיקייה של קבצי ה- docx והדביקו אותם עבור כל רשומה בשדה שיצרתם בשם DocFolderPath, לאחמ"כ חזרו על הפעולה והפעם העתיקו את נתיב התיקייה של קובצי ה- PDF והדביקו בשדה PdfFolderPath.
    בשדה DocFileName כתבו את השם של הקובץ עבור הרשומה - ניתן להשתמש בנוסחאות, כמו"כ בשדה PdfFileName כתבו את שם הקובץ כנ"ל.

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

    שלב ד:
    פתחו את לשונית מפתחים בקובץ ה- word פתחו את עורך הקוד הוסיפו מודל חדש מצו"ב צילום מסך:
    3eb2538f-9ab1-41eb-a1df-452212916da6-image.png

    הדביקו את הקוד הבא:

    Sub MailMergeToPdfBasic() ' Mark the start of the Subroutine (i.e. Macro) and name it "MailMergeToPdf" ' Macro created by Imnoss Ltd ' Please share freely while retaining attribution ' Last Updated 2021-05-03 Dim masterDoc As Document, singleDoc As Document, lastRecordNum As Long ' Create variables ("Post-it Notes") for later use Set masterDoc = ActiveDocument ' Identify the ActiveDocument (foremost doc when Macro run) as "masterDoc" masterDoc.MailMerge.DataSource.ActiveRecord = wdLastRecord ' jump to the last active record (active = ticked in edit recipients) lastRecordNum = masterDoc.MailMerge.DataSource.ActiveRecord ' retrieve the record number of the last active record so we know when to stop masterDoc.MailMerge.DataSource.ActiveRecord = wdFirstRecord ' jump to the first active record (active = ticked in edit recipients) Do While lastRecordNum > 0 ' create a loop, lastRecordNum is used to end the loop by setting to zero (see below) masterDoc.MailMerge.Destination = wdSendToNewDocument ' Identify that we are creating a word docx (and no e.g. an email) masterDoc.MailMerge.DataSource.FirstRecord = masterDoc.MailMerge.DataSource.ActiveRecord ' Limit the selection to just one document by setting the start ... masterDoc.MailMerge.DataSource.LastRecord = masterDoc.MailMerge.DataSource.ActiveRecord ' ... and end points to the active record masterDoc.MailMerge.Execute False ' run the MailMerge based on the above settings (i.e. for one record) Set singleDoc = ActiveDocument ' Identify the ActiveDocument (foremost doc after running the MailMerge) as "singleDoc" singleDoc.SaveAs2 _ FileName:=masterDoc.MailMerge.DataSource.DataFields("DocFolderPath").Value & Application.PathSeparator & _ masterDoc.MailMerge.DataSource.DataFields("DocFileName").Value & ".docx", _ FileFormat:=wdFormatXMLDocument ' Save "singleDoc" as a word docx with the details provided in the DocFolderPath and DocFileName fields in the MailMerge data singleDoc.ExportAsFixedFormat _ OutputFileName:=masterDoc.MailMerge.DataSource.DataFields("PdfFolderPath").Value & Application.PathSeparator & _ masterDoc.MailMerge.DataSource.DataFields("PdfFileName").Value & ".pdf", _ ExportFormat:=wdExportFormatPDF ' Export "singleDoc" as a PDF with the details provided in the PdfFolderPath and PdfFileName fields in the MailMerge data singleDoc.Close False ' Close "singleDoc", the variable "singleDoc" can now be used for the next record when created If masterDoc.MailMerge.DataSource.ActiveRecord >= lastRecordNum Then ' test if we have just created a document for the last record lastRecordNum = 0 ' if so we set lastRecordNum to zero to indicate that the loop should end Else masterDoc.MailMerge.DataSource.ActiveRecord = wdNextRecord ' otherwise go to the next active record End If Loop ' loop back to the Do start End Sub ' Mark the end of the Subroutine

    שלב ה וסיום:
    סגרו את עורך הקוד.
    לחצו על כפתור פקודות מאקרו שבכרטיסיית מפתחים, בחרו את המאקרו בשם MailMergeToPdfBasic ולחצו הפעל מצו"ב צילום מסך
    3890ce69-c0e9-4f30-89ce-3e97b7de750b-image.png

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

    מקור

  • ארכיון האתר הקודם והחביב קוד-613

    1k נושאים
    10k פוסטים
    chagoldC

    @אבי אמר בשוב, צילומי הצ'קים בבנקים:

    התעסקתי לאחרונה עם סורקים של חברת MAGTEK, הם ידידותיים ונוחים להתממשקות, אבל כמדומני שהבנקים בישראל מוכנים לקבל סריקות רק מסורקים של חברת PANINI

    @אבי איך יוצרים אתך קשר?

  • 31 נושאים
    133 פוסטים
    Y.Excel.AccessY

    יש כמה נוסחאות חדשות שממש משנות את כללי המשחק בגוגל שיטס:

    CHOOSECOLS לבחירת עמודות ממערך CHOOSEROWS לבחירת שורות ממערך WRAPROWS להמרת מערך חד ממדי לרב ממדי - פריסה לשורות WRAPCOLS כנ"ל - פריסה לעמודות HSTACK ו VSTACK - הפעולה של {} אך בלי סוגריים - לא משמעותי לכאורה

    והעולה על כולנה, סוף סוף:

    LET - ליצירת משתנים.

    כל אלו מצטרפות לפונקציות שנוספו מוקדם יותר -
    https://blog.sheetgo.com/google-sheets-formulas/10-new-google-sheets-functions/

    וכלול בתוכם - LAMBDA, MAP (חלקי - לא עובד לקנן ב MAP ודומיו מערכים אחרים), פונקציות בעלות שם, וכו' ע"ש בקישור.

  • הפעלת סקריפט של גוגל באמצעות שרת חיצוני (בתשלום)

    הועבר
    14
    0 הצבעות
    14 פוסטים
    258 צפיות
    צדיק תמיםצ

    @שמחה-זו-הסיסמא לא מגדירים את זה בפריסה, אלא כאשר נשלחת בקשת GET (לדוגמה כניסה לכתובת בדפדפן), מופעלת הפונקציה doGet, וכאשר נשלחת בקשת POST - מופעלת הפונקציה doPost

  • npm נתקע בהתקנת מודולים

    7
    0 הצבעות
    7 פוסטים
    101 צפיות
    ח

    @צדיק-תמים אמר בnpm נתקע בהתקנת מודולים:

    @חוקר איזה קבצים נמחקים בהתקנת מודול חדש?

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

  • איך לתעד RESTfull

    5
    0 הצבעות
    5 פוסטים
    155 צפיות
    צדיק תמיםצ

    רק מעדכן לפני שייחשב כ"הקפצה" -
    הפתרון שתואם למה שחיפשתי הוא כנראה https://github.com/rigwild/apidoc-markdown (apidoc)
    קרדיט @nigun

  • אימות בסיסי לשיחת http מVBA

    5
    0 הצבעות
    5 פוסטים
    101 צפיות
    ש

    @dovid אמר באימות בסיסי לשיחת http מVBA:

    נתמך לך בדפדפן? למיטב ידעתי הוא לא נתמך כעת בדפדפנים המודרנים.

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

  • עמודה לחיצה בexcel עם http request

    13
    0 הצבעות
    13 פוסטים
    210 צפיות
    dovidD

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

  • חברותא ללמוד תכנות

    הועבר
    24
    6 הצבעות
    24 פוסטים
    1k צפיות
    NH.LOCALN

    @יושב-אוהלים אמר בחברותא ללמוד תכנות:

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

    מדויק לגמרי

  • PMA שגיאת חיבור

    1
    0 הצבעות
    1 פוסטים
    63 צפיות
    אין תגובות
  • log מוזר בשרת

    6
    0 הצבעות
    6 פוסטים
    249 צפיות
    א

    @צדיק-תמים אמר בlog מוזר בשרת:

    @nigun רק אני לא מצליח להבין מה המטרה/רווח של הבוט הזה? 🤔

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

  • נושא זה נמחק!

    הועבר
    1
    0 הצבעות
    1 פוסטים
    3 צפיות
    אין תגובות
  • תפיסת אלמנטים על ידי העכבר ב javascript

    הועבר
    3
    1 הצבעות
    3 פוסטים
    112 צפיות
    dovidD

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

  • 0 הצבעות
    17 פוסטים
    201 צפיות
    צדיק תמיםצ

    @חוקר אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

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

    בדקתי, ומעביר! תודה, רעיון מעולה 💡

    @חוקר אמר בOAuth2 גוגל - יצירת אישורי אימות ללא צורך בהרצה לוקאלית של האפליקציה:

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

    איך עושים את זה?
    @dovid מה זה אומר state?

  • הצגת לוגים ללקוח טכנולוגי..|בקשת עזרה.

    3
    0 הצבעות
    3 פוסטים
    94 צפיות
    י

    ואם כן חייב דפדפן, לכאורה אפשר לעשות את זה כך
    https://stackoverflow.com/questions/4256107/running-bash-commands-in-python

  • התחברות ל API של ימות המשיח דרך גוגל סקריפט

    הועבר
    23
    2 הצבעות
    23 פוסטים
    2k צפיות
    ש

    @מנצפכ יצא לך משהו בסוף?
    אני גם צריך את זה

  • מחפש כלי שממיר שאילתה מ MYSQL ל PostgreSQL

    הועבר
    9
    0 הצבעות
    9 פוסטים
    276 צפיות
    nigunN

    @dovid אמר במחפש כלי שממיר שאילתה מ MYSQL ל PostgreSQL:

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

    אני לא יודע מה היית השאילתא ואני לא יודע למה הוא לא הגיב עד עכשיו (לא דיברתי איתו עדיין על הנושא) אני מגיב עכשיו כי רק היום הגעתי למחשב.......

    @dovid אמר במחפש כלי שממיר שאילתה מ MYSQL ל PostgreSQL:

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

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

  • SQL - GROUP BY HEBREW MONTH ?

    הועבר
    12
    0 הצבעות
    12 פוסטים
    424 צפיות
    dovidD

    @איש-נחמד ביקשת group by לפי חודש. בשביל זה אתה לא צריך בכלל חודש מספרי, גם קשקוש ברומאית מספיק. צריפתי את המספר לשימושים אחרים. בשביל לגשת לחודש הנכון בPHP אתה בכלל לא צריך את כל הטבלה הזו, יש פונקציות בPHP לתאריך עברי לזכרוני.

  • pyqt5 -שילוב Qcombobox בתפריט Qmenu

    הועבר
    2
    1 הצבעות
    2 פוסטים
    90 צפיות
    yossizY

    @הפצת-אנקי הקוד הבא עובד:

    import sys from PyQt6.QtCore import QObject from PyQt6.QtGui import QIcon, QFont, QCursor from PyQt6.QtWidgets import QApplication, QWidget, QVBoxLayout, QFontComboBox, QWidgetAction, QMenu, QPushButton class Window(QWidget): def __init__(self): super().__init__() self.setWindowTitle("Pyside2 FontCombo Box") self.setGeometry(300,200,300,250) self.setFontBox() self.setIcon() self.show() def setIcon(self): appIcon = QIcon("icon.png") self.setWindowIcon(appIcon) def setFontBox(self): self.font_button = QPushButton(self) self.font_button.setFixedWidth(300) self.font_button.clicked.connect(self.setFontmenu) vbox = QVBoxLayout() vbox.addWidget(self.font_button) self.setLayout(vbox) def setFontmenu(self): self.font_menu = QMenu() self.font_submenu = QFontComboBox() self.font_submenu.setCurrentFont(QFont("Arial")) objectTest = QObject() widget = QWidgetAction(objectTest) widget.setDefaultWidget(self.font_submenu) self.font_menu.addAction(widget) self.font_submenu.currentFontChanged.connect(self._changed) self.font_menu.exec(QCursor.pos()) def _changed(self): font = self.font_submenu.currentFont().family() self.font_menu.close() print(font) return myapp = QApplication(sys.argv) window = Window() myapp.exec() sys.exit()

    (שניתי ל-pyqt6 כי לא הצלחתי להתקין גירסה 5, הקוד פחות או יותר זהה עבור 5)
    הבעיה היתה שפונקציית QMenu.exec חוזרת רק אחרי שהתפריט נסגר

  • ביל גייטס - תודה!

    21
    15 הצבעות
    21 פוסטים
    599 צפיות
    צדיק תמיםצ

    @dovid אמר בביל גייטס - תודה!:

    "target": "es6",

    זה לא מאפשר להשתמש בתכונות מסוימות, כגון replaceAll... עדיף לכאורה להגדיר

    "target": "es2021",
  • צאט בוט במייל | איך מומלץ לעשות?

    10
    1 הצבעות
    10 פוסטים
    153 צפיות
    dovidD

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

  • טריגר בקבלת מייל חדש

    16
    0 הצבעות
    16 פוסטים
    287 צפיות
    צדיק תמיםצ

    @גמליאל אמר בטריגר בקבלת מייל חדש:

    Gmail זה כבר לא פתרון טוב (מלפני יומיים...). החל מה1/6 הם ביטלו את האפשרות לאבטחה נמוכה על החשבון, מה שנתן בעבר את האפשרות להשתמש בחשבון דרך אפליקציות צד שלישי.

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

  • מספר עשרוני בVBA אקסס

    6
    1 הצבעות
    6 פוסטים
    86 צפיות
    א

    @OdedDvir אוקיי, טוב לדעת.
    תודה!

בא תתחבר לדף היומי!