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

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

قام بنشر

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

اساتذتي المشرفين ، هل من الممكن جعل هذا النص متحرك

ارجوا التكرم بالتعديل على الملف .

ولكم مني عظيم الشكر والتقدير

قام بنشر

السلام عليكم ...

انسخ الكود التالي ، مع الانتباه إلى مراعاة تغيير الأحداث حسبما تريد :

Sub Move()
  Dim Title As String
  Dim i As Integer
  Dim Start As Double
  Title = "الميزانية العمومية" & Space(145)
  With Sheets("ورقة1")
    Do
      For i = 1 To Len(Title)
        .Range("A3").Value = Left(Title, i)
        Start = Timer
        Do While Timer < Start + 0.2
          DoEvents
        Loop
      Next i
    Loop
  End With
End Sub
لمزيد من الشرح راجع الروابط التالية : http://www.officena.net/ib/index.php?showtopic=4624 http://www.officena.net/ib/index.php?showtopic=7987 الآن تأكد من تعديل اسم الورقة الموجودة في الكود من ورقة1 إلى ماتريد ، و الخلية صاحبة النص المتحرك من A3 إلى ما تريد ، و النص المخصص من الميزانية العمومية إلى ما تريد. الأن غير الرقم الدال على عدد الفراغات الموجودة في الخلية A3 (الرقم 145) إلى الرقم الحقيقي الذي تستطيع استنتاجه من الصيغة التالية :
=LEN(A3)

بالتوفيق :fff:

:fff:

قام بنشر

الأخ محمد حجازي وفقكم الله

لي ملاحظة على الكود أعلاه حيث لم أستطيع تغيير العبارة المكتوبة ( الميزانية العمومية) حيث يصدر صوت يشير الى أن الكود محمي .

في حين استطعت تغيير رقم الصفحة .

هل مطلوب إعادة كتابة الكود أم هناك طريقة أخرى ؟

وهل احتاج الى الضغط على الزر المجاور ليبدأ النص في الحركة ( أقصد لماذا لا يبدأ النص في الحركة تلقائياً بمجرد الدخول في الصفحة ويستمر في الحركة أثناء العمل )

مع الشكر والتقدير على كل ما تبذلونه في هذا المنتدى الرائع .

قام بنشر
لم أستطيع تغيير العبارة المكتوبة ( الميزانية العمومية) حيث يصدر صوت يشير الى أن الكود محمي .

حاول تغيير العبارة قبل تشغيل الكود.

هل احتاج الى الضغط على الزر المجاور ليبدأ النص في الحركة ( أقصد لماذا لا يبدأ النص في الحركة تلقائياً بمجرد الدخول في الصفحة ويستمر في الحركة أثناء العمل )

بالنسبة للشق الأول من السؤال :

يمكنك ذلك طبعاً عن طريق تغيير الحدث الذي يشغل الكود ، راجع الرابط التالي :

http://www.officena.net/ib/index.php?showtopic=7987

بالنسبة للشق الثاني من السؤال :

بالفعل يا أخي ، حاولت كثيراً لجعل الكود السابق يستمر في العمل بالتزامن عمل المستخدم (ادخال بيانات و ما شابه) ، ولم أصل إلى نتيجة إلا بعد معاينة المرفق الموجود في مشاركة الأخ LoveCandle :

http://www.officena.net/ib/index.php?showtopic=8103

و الكود بعد التعديل :

Private Title As String
Private i As Integer
Private RunWhen As Double
Public Sub RunMove()
  Title = "الميزانية العمومية" & Space(145)
  RunWhen = Now + TimeSerial(0, 0, 1)
  Application.OnTime RunWhen, "RunMove", , True
  i = i + 1
  Sheets("ورقة1").Range("A3").Value = Left(Title, i)
  If i >= Len(Title) Then i = 0
End Sub
Public Sub StopMove()
  On Error Resume Next
  Application.OnTime RunWhen, "RunMove", , False
  RunWhen = 0
End Sub

مرفق المثال المعدل:

TextMove.rar

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

الأخ العزيز محمد حجازي ..

السلام عليكم ..

بالنسبة لاستفساري فقد تفضّلت بالاجابة فشكرا .. مع ملاحظة :

-ان الحركة اصبحت بطيئة في الماكرو المعدّل !!

- كما انني ارغب ان استخدم الماكرو في الصفحة ( من اليمين الى اليسار- عربية - ) ، حيث لم يعمل لدي الا بتغيير نمط الصفحة ( من اليسار الى اليمين )

هناك سؤال مازال يحيرني حول كيفية تصميم الكود لانشاء ماكرو !

بمعنى اوضح (كيف ابرمج الكود) ! أي كيف افهم الرموز التي استخدمتها لكي احاول انشاء ماكرو ما معتمدا على ذاتي وفقا لما ارغب دون الاستعانة باختيار ماكرو جاهز او كود جاهز !!

اتمنى ان يكون سؤالي واضحا ..

اعذرني فمازالت بالنسبة لي الرموز والاكواد التي اقرأها طلاسم لاأفهمها !

فهل هناك دراسة موجودة في هذا الموقع لفهمها ! وان لم يكن فانني اتمنى ان تكون دراسة مستقلة عن هذا الموضوع !!

تم تعديل بواسطه ramez
قام بنشر
ان الحركة اصبحت بطيئة في الماكرو المعدّل !!

للأسف يا أخي ، بالنسبة للطريقة الجديدة لم أستطع تخفيض مدة الانتظار إلى أقل من ثانية واحدة. :)

كما انني ارغب ان استخدم الماكرو في الصفحة ( من اليمين الى اليسار- عربية - ) ، حيث لم يعمل لدي الا بتغيير نمط الصفحة ( من اليسار الى اليمين )

بسيطة ، فقط غير محاذات الخلية A3 إلى اليمين ، راجع المرفق الموجود في هذا الرد.

هناك سؤال مازال يحيرني حول كيفية تصميم الكود لانشاء ماكرو !

بمعنى اوضح (كيف ابرمج الكود) ! أي كيف افهم الرموز التي استخدمتها لكي احاول انشاء ماكرو ما معتمدا على ذاتي وفقا لما ارغب دون الاستعانة باختيار ماكرو جاهز او كود جاهز !!

في الروابط التالية بعض الكتب الخاصة بالـ VBa:

http://www.officena.net/ib/index.php?showtopic=206

http://www.officena.net/ib/index.php?showtopic=7914

و في الرابط التالي سلسلة للأخ هنداوي قد بدأ بها من فترة وجيزة ، تابعها :

http://www.officena.net/ib/index.php?showtopic=7987

ومن ثم اقرأ الموضوعات التالية بالإضافة لقراءة النصوص التي يوفرها لك نظام المساعدة الموجود في محرر الفيجوال :

http://www.officena.net/ib/index.php?showtopic=5827

http://www.officena.net/ib/index.php?showtopic=7653

بالتوفيق :fff:

TextMove1.rar

قام بنشر

شكرا يا اخ محمد

الكود قبل التعديل يعمل معي بشكل رائع وظهرت لي ملاحظة أخرى إذا سمحتم لي بعرضها للفائدة وهي أن النص المتحرك لا يعمل عندما تكون الخلايا محمية وعند تركه بدون حماية يستطيع أي شخص تغيير النص وبالتالي يتوقف النص عن الحركة .

الخلاصة - هل من الممكن جعل النص يتحرك في خلايا محمية؟؟؟

تحياتي وتقديري لكم ولجميع الاخوة في هذا المنتدى الرائع :fff::fff:

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

السلام عليكم ...

الحل لهذه المشكلة يكمن في حماية الورقة و إزالة الحماية عند تحريك النص فقط ومن ثم حمايتها مرة أخرى .

و بالتالي فإنك ستحتاج لإضافة السطرين التاليين للكود :

ActiveSheet.Unprotect Password:="123"
    
ActiveSheet.Protect Password:="123"
لاحظ أخي أن كلمة السر هي 123. و بذلك فإنك ستضيف هذين السطرين للكودين السابقين على النحو التالي : الكود الأول :
.Unprotect Password:="123"
.Range("A3").Value = Left(Title, i)
.Protect Password:="123"
الكود الثاني :
With Sheets("ورقة1")
  .Unprotect Password:="123"
  .Range("A3").Value = Left(Title, i)
  .Protect Password:="123"
End With

بالتوفيق :fff:

تم تعديل بواسطه محمد حجازي
زائر
هذا الموضوع مغلق.
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information