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

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

قام بنشر

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

قبل ان اطرح السؤال حاولات مررا وتكررا ولكن دون جدوي لذا ارجو منكم المساعدة ,

ارغب في عمل تنسيق مخصص لعرض الوقت كمايلي

45 12

12 هي الدقائق و45 هي الثواني وفي حالة ادخل المستخدم الدقائق فقط تظهر الثواني اصفار مثل

00 12 والصعوبة تكمن في كون الدقائق رقم بخانة واحدة مثل

00 02 اي ان الوقت هو دقيقتين فقط ,

اي ان المستخدم يدخل الرقم 2 علي اساس انة دقيقتين فيظهر الوقت هاكذا 00 02

واذا ادخل الرقم 2 علي اساس انة دقيقتين والرقم 1 علي اساس انة ثانية واحدة فيظهر الرقم هاكذا 01 02

ارجو منكم المساعدة وانا ان شاء الله احاول واذا توصلت الي نتيجة اعلمكم بها

وشكرا لكم ,,,

قام بنشر

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

إذا كان قصدك جعل التاريخ يظهر كالأرقام العشرية ، فيمكنك ذلك عن طريق تغيير إعدادات الويندوز ، فقط اتبع الخطوات التالية :

Control Panel > Regional and Language Options

في علامة التبويب Regional Options اضغط على الزر Customize ليظهر لك فورم جديد :

تحت لسان التبويب Time :

- في المربع Time format ضع التنسيق التالي :

h:m:s tt

- في المربع Time separator ضع الرمز الذي تريد استخدامه للفصل بين الساعات و الدقائق و الثواني .

الكلام السابق كان تحت نظام الويندوز XP.

بالتوفيق :fff:

قام بنشر

شكرا لك استاذ محمد ,,

ما ارغب فية هو اختصار عملية ادخال الارقام التي تعرض علي شكل وقت ,,

فمثلا .. اذا ادخل المستخدم الرقم التالي 210 يظهر بالشكل التالي 10 02

اي دقيقتين وعشر ثواني . وهذا بدلا من ادخل وكتابة الاصفر

واذا ادخل المستخدم الرقم التالي 308 يظهر بالشكل التالي 08 03

اي ثلاثة دقائق وثماني ثواني

الخلاصة : يقوم الاكسيل بتعبئة الفرغة بالصفار في حالة عدم ادخال المستخدم رقما لتلك الخانة , اي جعل الخلية التي تعرض الوقت تتكون من اربعة خانات ,,

قام بنشر

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

أخي ، يمكن عمل ذلك ، ولكن أخبرني أولاً :

هل ستقوم بإدخال الساعات أيضا؟ ، أم أن عملية الإدخال مقتصرة على الثواني و الدقائق.

قام بنشر

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

جرب الكود المبدئي التالي :

Dim m As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
  If m = True Then
    m = False
    Exit Sub
  End If
  m = True
  Select Case Len(Trim(Target.Text))
    Case Is >= 4
      Target.Value = Mid(Trim(Target.Text), Len(Trim(Target.Text)) - 3, 2) & ":" & Right(Trim(Target.Text), 2)
    Case Is > 2
      Target.Value = "0" & Left(Trim(Target.Text), 1) & ":" & Right(Trim(Target.Text), 2)
    Case Else
      Target.Value = "00:" & Trim(Target.Text)
    End Select
End Sub

و أخبرني في حال كان هذا طلبك حتى نتابع فيه.

قام بنشر

استاذ محمد ,

اذا اردت حصر هذا الكود في عمود واحد او اثنين فماذا فهل يمكن تعديل الكود السابق ,,,

لانة يقوم بتغير الارقام في كل الصفحة ,, والمطلوب هو التغير فقط في العمود الذي يحتوي التوقيت ,,,

فكيف جعل الكود يعمل في اعمدة معينة فقط ,

وشكرا لك ,,,

قام بنشر

السلام عليكم

قرات الموضوع في الرابط السابق . وحاولت ادراج التعليمة Range , ولكن لم انجح

وصدقوني مهاراتي في الفيجوال معدومة جدا , لذا ارجو منكم المساعدة ,

وشكرا ,,,

قام بنشر

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

تفضل الكود :

Dim m As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Column = 5 Then
    If m = True Then
      m = False
      Exit Sub
    End If
    m = True
    Select Case Len(Trim(Target.Text))
      Case Is >= 4
        Target.Value = Mid(Trim(Target.Text), Len(Trim(Target.Text)) - 3, 2) & ":" & Right(Trim(Target.Text), 2)
      Case Is > 2
        Target.Value = "0" & Left(Trim(Target.Text), 1) & ":" & Right(Trim(Target.Text), 2)
      Case Else
        Target.Value = "00:" & Trim(Target.Text)
    End Select
  End If
End Sub

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

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

Important Information