דילוג לתוכן

תכנות

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 ודומיו מערכים אחרים), פונקציות בעלות שם, וכו' ע"ש בקישור.

  • בעיה בוויפרי בשרת בקונטבו עם מערכת הפעלה Windows Server 2012 R2

    הועבר
    7
    0 הצבעות
    7 פוסטים
    626 צפיות
    avramkA

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

  • קריאה למאקרו דרך ערך בתא

    הועבר
    4
    0 הצבעות
    4 פוסטים
    119 צפיות
    A

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

    דוגמא

    Private Sub Worksheet_Change(ByVal Target As Range) ' התנאי האם השינוי אירע בתא מסוים ' If Target.Address = "$A$1" Then If 'תנאי' Then ' פעולה' End If End If End Sub

    במקור ראיתי את הרעיון כאן

    הסבר בעברית

    הסבר+ דוגמא של מיקרוספט

  • vba | תנאי לשני משתנים

    הועבר
    2
    1 הצבעות
    2 פוסטים
    108 צפיות
    I

    @פלורידה
    כתבת מצוין כותבים and ככה

    Private Sub Workbook_Activate() If ActiveWorkbook.Name = MY_WORKBOOK_NAME And Range("admin!C2").Value = "חיובי" Then UIHide Else UIShow End If End Sub
  • VBA | פקודה באמצעות ארוע פעם אחת

    הועבר
    4
    0 הצבעות
    4 פוסטים
    124 צפיות
    OdedDvirO

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

  • אפשרות לאיתור מיקום מכשיר

    הועבר
    2
    0 הצבעות
    2 פוסטים
    111 צפיות
    G

    התקנתי את owntracks על מכשיר אנדרואיד, ואני רוצה לקבל את המיקום לשרת VPS ווינדוס, התקנתי בשרת Mosquitto MQTT .
    איך אני ממשיך מפה.

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

    הועבר
    4
    -1 הצבעות
    4 פוסטים
    18 צפיות
  • תמחור תחזוקה ללקוח

    14
    6 הצבעות
    14 פוסטים
    391 צפיות
    D

    @nigun אמר בתמחור תחזוקה ללקוח:

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

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

    לא מחפש קיצורי דרך. מחפש רק עזרה וייעוץ קצת יותר פרטני ממה שמאפשר הפורום הזה.

  • עזרה: Google maps JS Api

    נעול הועבר
    9
    2 הצבעות
    9 פוסטים
    508 צפיות
    dovidD

    @davidnead אנא פתח נושא חדש אלא"כ בריא לך שאהיה מרוצה גם בהמשך הנושא הקיים.

  • הסתברות ברצף מספרים רנדומלי

    הועבר
    48
    0 הצבעות
    48 פוסטים
    909 צפיות
    רחמיםר

    @yossiz מזה אני למד כמה חשוב לכתוב בשפה עם טיפוסיות חזקה. ואפילו קוד קצר של 10 שורות. בC# זה לעולם לא היה קורה.

  • איך כדאי למספר עמודה משנית בpostgresql?

    22
    0 הצבעות
    22 פוסטים
    367 צפיות
    OdedDvirO

    @nigun אני חושב שהוא התכוון למפתח מרוכב Composite-Key

  • תבניות של API

    52
    3 הצבעות
    52 פוסטים
    1k צפיות
    מנצפךמ

    @davidnead
    לא!

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

    הSAILS משתמש בכל מיני ספריות לא מעודכנות. כמו waterLine שזה ה ORM הכי מזעזע שפגשתי.

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

    לאחר מעשה, זה היה לי טוב בשביל להעלות מהר (ובלי ניסיון) פרוייקט.
    היום אני מצטער שאני שם.
    אני ממליץ לך בחום, קח תבנית מוכנה, שזה אומר מבחינתי, מבנה תיקיות ברור.
    controllers
    models
    DAL
    ועוד. אני בעצמי לא מומחה גדול למבנה פרוייקטים.
    תחליט על איזה ORM שאתה רוצה (objectiveJS או sequlizeJS)
    וצא לדרך.
    מסד נתונים, זה לא קשור לכאן. אני אישית אוהב PG.
    תשמור על הפרדה בין ה ORM לבין בcontrollers ע"י ה DAL (אני לא סגור שזה מה שה DAL אמור לעשות. אבל תעשה שכבה כזאת).
    ואז תהיה חופשי מבחינת ORM.

    שרת תשתמש ב EXPRESS

    אל תבנה על איזה CLI שיבנה לך. זה סתם מסרבל ולא נותן כלום בהיקפים של צוות קטן. (1 +-...)

    תפריד את הצד לקוח (SPA) לפרוייקט נפרד. לדעתי. וודאי שירוץ על שרת (סטטי) נפרד על Port אחר.

    בהצלחה.

  • שליחת ערכי טופס לאחר אימות

    הועבר
    2
    0 הצבעות
    2 פוסטים
    85 צפיות
    I

    @ass https://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php

  • עזרה עם הרצת פרוייקט פייתון

    6
    0 הצבעות
    6 פוסטים
    127 צפיות
    D

    @chv אמר בעזרה עם הרצת פרוייקט פייתון:

    @davidnead השאלה שלך יותר מידי כללית, בזמן שאתה כן נותן שגיאות ספציפיות.
    תפרט יותר באיזו גרסת פייתון אתה משתמש (לא מספיק להגיד '3', איזה תת גרסה)

    +3.9.2' אבל חלק מהענין אמור להיות שאם אני משתמש בסביבה וירטואלית זה משתמש בגרסה שמי שיצר את הסביבה השתמש, לא?

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

    נכון, בינתיים גיליתי את זה והתקנתי בדרך המומלצת לWIN (אגב לא מסובכת כ"כ)

    אני מנחש שזה django + GIS. אני טועה?

    סינית בשבילי.

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

  • עזרה | סקריפט להעתקת / מחיקת קבצים לפי תאריך שינוי

    הועבר
    3
    0 הצבעות
    3 פוסטים
    161 צפיות
    ASSA

    @איש-ימיני
    אני בניתי פרוייקט ממש דומה.
    תוכל לראות את השירשור כאן.

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

    אחרי שאני ידע את זה אני יחשוב איך להתאים את מה שעשיתי למה שאתה צריך.

  • getTime אינו פונקציה

    הועבר
    23
    0 הצבעות
    23 פוסטים
    638 צפיות
    רפאלר

    TypeScript עדיין נחשבת לאופציה היחידה עבור פרוייקטים בינוניים ומעלה, בהם הפיתוח בJS b נחשב לקשה במיוחד\על גבול הבלתי אפשרי, מטרת המאמר שהזכרתי איננה לשלול את השימוש בTypeScript אלא לציין את מגבלותיה.

    אני מצרף את הDesign Goals מתוך הWIki של TypeScript (שים לב להדגשות):
     

    המטרות Statically identify constructs that are likely to be errors Provide a structuring mechanism for larger pieces of code Impose no runtime overhead on emitted programs

    Emit clean, idiomatic, recognizable JavaScript code

    Produce a language that is composable and easy to reason about

    Align with current and future ECMAScript proposals

    Preserve runtime behavior of all JavaScript code

    Avoid adding expression-level syntax

    Use a consistent, fully erasable, structural type system

    Be a cross-platform development tool

    Do not cause substantial breaking changes from TypeScript 1.0
     

    אינן המטרות

    Exactly mimic the design of existing languages. Instead, use the behavior of JavaScript and the intentions of program authors as a guide for what makes the most sense in the language.

    Aggressively optimize the runtime performance of programs. Instead, emit idiomatic JavaScript code that plays well with the performance characteristics of runtime platforms.

    Apply a sound or "provably correct" type system. Instead, strike a balance between correctness and productivity.

    Provide an end-to-end build pipeline. Instead, make the system extensible so that external tools can use the compiler for more complex build workflows.

    Add or rely on run-time type information in programs, or emit different code based on the results of the type system. Instead, encourage programming patterns that do not require run-time metadata.

    Provide additional runtime functionality or libraries. Instead, use TypeScript to describe existing libraries.

    Introduce behavior that is likely to surprise users. Instead have due consideration for patterns adopted by other commonly-used languages.

  • קוד מקור ב PHP סגור

    הועבר
    18
    0 הצבעות
    18 פוסטים
    518 צפיות
    sh774S

    @nigun אמר בקוד מקור ב PHP סגור:

    @sh774
    אין לי כח להפוך את השרשור לדיון על וירטאליזציה

    רק לצורך סגירת הנושא

    ותבדוק האם אפשר להריץ דוקר על VPS (אני יחסוך לך ויגלה לך שכן אפילו שאי אפשר להריץ VM)

    טעות שלי ההבדל ככל הנראה היה בגלל docker.io ו docker ce

  • חיפוש ( {{טקסט}} ) במחרוזת והחלפתם.

    12
    2 הצבעות
    12 פוסטים
    200 צפיות
    רפאלר

    @ש-ב-ח אמר בחיפוש ( {{טקסט}} ) במחרוזת והחלפתם.:

    היינו הך.

    כנראה הושפעתי מתשובתו החדה של @dovid

  • יצירת תווים/צלילים בC#

    הועבר
    2
    0 הצבעות
    2 פוסטים
    149 צפיות
    רפאלר

    @נ-נח

    DryWetMIDI NAudio MIDI Toolkiti

    הספרייה DryWetMIDI לדוגמא חושפת Fluent Api עם יכולות מדהימות:

    var pattern = new PatternBuilder() .Note(MusicTheory.Octave.Get(3).ASharp, length: MusicalTimeSpan.Quarter) .Note(MusicTheory.Octave.Get(3).C, length: MusicalTimeSpan.Eighth) .Build(); using (var outputDevice = OutputDevice.GetByName("Microsoft GS Wavetable Synth")) { pattern.Play(TempoMap.Default, (FourBitNumber)10, outputDevice); }

    עוד על הספרייה DryWetMIDI: Working with MIDI Devices

  • קו SIP זול בישראל

    הועבר
    22
    2 הצבעות
    22 פוסטים
    923 צפיות
    chocolateC

    @shraga אמר בקו SIP זול בישראל:

    @chocolate וכמה עולה לדקה?

    https://telnyx.com/pricing/elastic-sip/il

  • אסימון רענון ב API של יוטיוב ב PHP

    הועבר
    7
    0 הצבעות
    7 פוסטים
    231 צפיות
    yossizY

    @ass לא צריך

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