اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر (معدل)

سلام عليكم

تحية طيبة الى جميع الاخوة الاعضاء المساهمين بنجاح هذا المنتدى 

اخوتي عندي حقل بالنموذج به رابط ملف pdf اريد كود يقوم بحفظ هذا الملف من خلال الرابط مباشرتا بدون قوائم تاكيد الى سطح المكتب في فولدر b باسم ( ياخذ اسم الملف من حقل a الموجود في النموذج ) واذا كان الملف موجود بالفولدر فيعمل انتباه وهكذا .

تم تعديل بواسطه m.r
قام بنشر (معدل)

وعليكم السلام ورحمة الله وبركاته ..

تفضل أخي العزيز 🙂 

Sub CopyFile()
'Requires reference:    :لابد من التأكد من وجود المكتبة الاتية
'Add this reference >>---> Microsoft Scripting Runtime
    Dim fs
    Set fs = CreateObject("Scripting.FileSystemObject")
    
    Dim sPathDeskTop As String
    Dim oWSH As Object
    Set oWSH = CreateObject("WScript.Shell")
    sPathDeskTop = oWSH.SpecialFolders("Desktop") & "\b\" ' هنا اسم المجلد الذي سيتم انشاؤه في سطح المكتب

    Dim CopyFrom As String, CopyTo As String
    
    CopyFrom = Me.a    ' هذا اسم الحقل الذي به رابط الملف المراد نسخه
    CopyTo = sPathDeskTop & Dir(CopyFrom)

    If Len(Dir(sPathDeskTop, vbDirectory)) = 0 Then MkDir (sPathDeskTop)

    If Len(Dir(CopyTo, vbDirectory)) = 0 Then
        fs.CopyFile CopyFrom, CopyTo, True
    Else
        MsgBox "هذا الملف موجود مسبقا على سطح المكتب", vbOKOnly
        Exit Sub
    End If

Set fs = Nothing
Set oWSH = Nothing
End Sub

فقط انتبه للملاحظات المكتوبة في الكود ..

تم تعديل بواسطه Moosak
  • Like 4
  • Thanks 1
قام بنشر

وعليكم السلام 🙂

 

كود اخوي موسى ، ولكن بطريقتي 🙂 

Sub CopyFile()
    
    Dim sPathDeskTop As String
    sPathDeskTop = Environ("USERPROFILE") & "\Desktop" & "\b\" ' هنا اسم المجلد الذي سيتم انشاؤه في سطح المكتب

    Dim CopyFrom As String, CopyTo As String
    
    CopyFrom = Me.a    ' هذا اسم الحقل الذي به رابط الملف المراد نسخه
    CopyTo = sPathDeskTop & Dir(CopyFrom)

    If Len(Dir(sPathDeskTop, vbDirectory)) = 0 Then MkDir (sPathDeskTop)

    If Len(Dir(CopyTo, vbDirectory)) = 0 Then
        FileCopy CopyFrom, CopyTo
    Else
        MsgBox "هذا الملف موجود مسبقا على سطح المكتب", vbOKOnly
        Exit Sub
    End If

End Sub

 

جعفر

  • Like 5
  • Thanks 1
قام بنشر

رحم الله والديكم موفقين على هاي المساعدة 

بقى شي واحد انه ان ياخذ اسم الملف من اسم مكتوب داخل حقل ضمن الحقول الموجودة وليس نفس اسم الملف الاصلي 

جزاكم الله خيراً 

قام بنشر
5 ساعات مضت, m.r said:

ياخذ اسم الملف من اسم مكتوب داخل حقل ضمن الحقول الموجودة

العفو أخي العزيز 🙂

معلمومة : لكي تتم عملية النسخ الكود يحتاج إلى اسم الملف كاملا مع الامتداد هكذا مثلا (fileName.pdf)

سؤال : في حقل اسم الملف هل سيتم كتابة الاسم كاملا مع الامتداد (pdf.) أم الاسم لوحده فقط (fileName) ؟

سؤال آخر :وهل جميع الملفات pdf أم ستكون مختلفة ؟

  • Like 2
قام بنشر

سلام عليكم

1- اسم الملف يكون وحده في الحقل بدون امتداد

2 - نعم جميع الملفات pdf 

  • أفضل إجابة
قام بنشر

تفضل التعديل أخي m.r 🙂 

Sub CopyFile()
    Dim sPathDeskTop As String
    sPathDeskTop = Environ("USERPROFILE") & "\Desktop" & "\b\" ' هنا اسم المجلد الذي سيتم انشاؤه في سطح المكتب

    Dim CopyFrom As String, CopyTo As String
    
    CopyFrom = Me.SourceFilePath     ' هنا تضع اسم الحقل الذي به رابط الملف المراد نسخه
    CopyTo = sPathDeskTop & Me.NewFileName & ".pdf" ' هنا تضع اسم الحقل الذي به اسم الملف الجديد وامتداده

    If Len(Dir(sPathDeskTop, vbDirectory)) = 0 Then MkDir (sPathDeskTop)

    If Len(Dir(CopyTo, vbDirectory)) = 0 Then
        FileCopy CopyFrom, CopyTo
    Else
        MsgBox "هذا الملف موجود مسبقا", vbOKOnly
        Exit Sub
    End If
End Sub

 

  • Like 3
  • Thanks 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information