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

تعديل كود


Eid Mostafa

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

الأخوة الأعزاء

=======

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

الملف المرفق يوجد به كود من قبل

وأردت أن أضيف له كود محاذاة الأرقام بالمنتصف ، ولكنه لم يتقبل الإضافة.

فأرجو منكم التكرم بتعديل (تصحيح) الخلل فى الكود

كما أرجو منكم التكرم بإفادتى بسبب الخلل حتى أتفاداه مستقبلاً.

أرجو أن أكون وفقت فى شرح ما أقصدة.

============

خالص شكرى وتقديرى

أخوكم

عيد مصطفى

Code Modify.rar

post-56134-0-82430500-1353696928_thumb.j

رابط هذا التعليق
شارك

السلام عليكم

أخي الحبيب

لايجوز عمل كودين بنفس الإسم في ملف واحد

وإذا كان الموضوع خاص بأكواد حدث الورقة (مثل هذا الخاص بالتغيير في الورقة)

فالأفضل دمجهما

إليك الكودين مدمجين


Private Sub Worksheet_Change(ByVal Target As Range)


Dim myRange As Range

Set myRange = Union([B4:N4], [B6:N18])

If Intersect(Target, myRange) Is Nothing Then

    If Target.Address <> "$O$1" And Target.Address <> "$P$1" Then Exit Sub

End If

c = Chr(65 + Month([O1]))

cc = Chr(65 + Month([P1]))


Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual


        With Charts("Revenues")

                .SeriesCollection(1).Values = "=Breakdown!$B$4:$" & c & "$4"

                .SeriesCollection(2).Values = "=Breakdown!$B$6:$" & cc & "$6"

        End With

        With Charts("G&A")

                .SeriesCollection(1).Values = "=Breakdown!$B$8:$" & c & "$8"

                .SeriesCollection(2).Values = "=Breakdown!$B$10:$" & cc & "$10"

        End With


  For Each ce In myRange

    If IsNumeric(ce) = False Then GoTo 1

    ce.NumberFormat = "_(#,##0.00_);[Red]_((#,##0.00);_(--_);_(@_)"

    If ce.Value = 0 Then

                    With ce

                                    .HorizontalAlignment = xlCenter

                                    .VerticalAlignment = xlCenter

                    End With

    Else

                    With ce

                                    .HorizontalAlignment = xlRight

                                    .VerticalAlignment = xlCenter

                    End With


    End If

1 Next ce

Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic


End Sub

لكني لم أستطع التأكد لأنك لم ترسل الملف كاملا (بما فيه الشارتات المذكورة بالكود)

رابط هذا التعليق
شارك

أخى الحبيب / طارق

============

أخى أشكرك على إهتمامك بالرد وتفاعلك مع الموضوع

وعلى تعديلك الأكثر من رائع

كما أشكرك على ملاحظتك القيمة

:fff::fff::signthankspin::fff::fff:

============

خالص شكرى وتقديرى

أخوك

عيد مصطفى

رابط هذا التعليق
شارك

أخى الحبيب / طارق

============

إقتباس :

[لايجوز عمل كودين بنفس الإسم في ملف واحد ، وإذا كان الموضوع خاص بأكواد حدث الورقة (مثل هذا الخاص بالتغيير في الورقة) فالأفضل دمجهما]

أخى كيف يمكننى تلافى عمل الكودين بنفس الإسم فى ملف واحد وبالطبع لا أقصد أنى لا أستطيع تسميتة بإسم أخر ، ولكن ما أقصدة ماذا سيكون الإسم الآخر

فى حالة الإضطرار لذلك.

ما أقصدة أن الدمج يشترط أن يكون المدى (RANGE) متطابق ، فما العمل فى حالة عدم التطابق ... ؟؟

أرفق لك ملف أعتقد أو على الأقل بالنسبة لى أنه أصعب من الملف المرسل فى المرة السابقة

وأرجو منك التكرم بإضافة كود محاذاة الأرقام بالمنتصف التالى :-

Private Sub Worksheet_Change(ByVal Target As Range)

Dim myRange As Range

Set myRange = Union([b12:C408], [D12:D408])

If Intersect(Target, myRange) Is Nothing Then Exit Sub

Application.ScreenUpdating = False

Application.Calculation = xlCalculationManual

For Each ce In myRange

If IsNumeric(ce) = False Then GoTo 1

ce.NumberFormat = "_(#,##0.00_);[Red]_((#,##0.00);_(--_);_(@_)"

If ce.Value = 0 Then

With ce

.HorizontalAlignment = xlCenter

.VerticalAlignment = xlCenter

End With

Else

With ce

.HorizontalAlignment = xlRight

.VerticalAlignment = xlCenter

End With

End If

1 Next ce

Application.ScreenUpdating = True

Application.Calculation = xlCalculationAutomatic

End Sub

============

خالص شكرى وتقديرى

أخوك

عيد مصطفى

Code Modify 2.rar

رابط هذا التعليق
شارك

السلام عليكم

أخي الكريم ، بدون الدخول في تفاصيل الكود الذي أرسلته سأشرح لك الفكرة ببساطة

أعني بـ

دمجهما

أن تدمج فكرة الكودين (وليس الكودين حرفيا)

بمعني

(1) إذا ان الكود في حدث التغيير مثلا فإن الوضع العادي يكون عندك مدي واحد يتم تفعيل الكود إن كان به تغيير مثلا

وبهذا نضع شرط في أول الكود مثل هذا (إذا كان التغيير في غير مدي كذا فلتخرج من الكود ولاتفعل شيئا)

(2) فإن كان عندك أكثر من مدي

فيكون الشرط في أول الكود مركبا مثل هذا

إذا كان التغيير في مدي-1 فلتفعل الخطوة-1

وإلا فلنسال

إذا لم يكن التغيير في مدي-2 فلتخرج من الكود ولاتفعل شيئا

أو (إذا كان التغيير في مدي-2) فلتفعل الخطوة-2

رابط هذا التعليق
شارك

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.

×
×
  • اضف...

Important Information