اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

عبدالله بشير عبدالله

الخبراء
  • Posts

    816
  • تاريخ الانضمام

  • تاريخ اخر زياره

  • Days Won

    54

كل منشورات العضو عبدالله بشير عبدالله

  1. وعليكم السلام ورحمة الله وبركاته سبب الخطا عدم وجود رابط بين اللست والشيت في الكود يوجد عمود مخفى في ListBox وهو الرابط بين الاختيار من اللست والشيت يعنى الاعمدة 10 للشيت +عمود مخفي في اللست =11 تم التعديل والغاء العمود المخفي في اللستبكس واستخذام مصفوفة تربط كل صف في الـ ListBox برقم الصف الحقيقي في الشيت. اليك الملف ليست بوكس 4.xlsm
  2. وعليكم السلام ورحمة الله وبركاته هل يمكنك التوضيح أكثر: ما هي القيم أو مصدر البيانات للقائمة؟ في انتظار توضيحك المفصل
  3. وعليكم السلام ورحمة الله وبركاته ليست هناك اي مشكلة ComboBox المزايا: يعرض قائمة جاهزة من القيم (مثل التواريخ الفريدة من العمود B). يمنع الأخطاء الإملائية أو إدخال صيغة خاطئة للتاريخ. المستخدم يختار فقط من القائمة → أسرع وأدق. عملي جدًا إذا كانت البيانات محدودة أو متكررة (تواريخ، أسماء، أصناف) TextBox عرضة للأخطاء (مثلاً كتابة التاريخ بصيغة خاطئة). يحتاج تحقق إضافي بالكود للتأكد أن القيمة صحيحة الملف المرفق به الخياران التكستبكس والكمبوبكس لك الخيار ما يتاسب عملك تحياتي ليست بوكس2.xlsm
  4. حسب التجربة المشكلة بالمنتدى شكرا لمتابعتك واهتمامك الافاضل حسونة حسين Foksh
  5. السلام عليكم ورحمة الله وبركاته تم استبدال TextBox1 بـ COMOBOX1 يتم فيه تجميع التواريخ من العمود B التواريخ في العمود B بالنظام الفرنسى جعلتها بالنظام dd/mm/yyyy عند التعديل استخدم زر خفظ التعديل اليك الملف ليست بوكس1.xlsm
  6. وعليكم السلام ورحمة الله وبركاته الى جانب الحلول التي ارفقها استاذنا الفاضل hegazee اليك حل اخر بالكود في حدث الورقة Private Sub Worksheet_Change(ByVal Target As Range) Dim rngF As Range, rngG As Range Dim rngB As Range, rngC As Range Dim pos As Variant Set rngF = Me.Range("F2") ' Set rngG = Me.Range("G2") Set rngB = Me.Range("B2:B1000") Set rngC = Me.Range("C2:C1000") If Not Intersect(Target, rngF) Is Nothing Then Application.EnableEvents = False pos = Application.Match(rngF.Value, rngB, 0) If Not IsError(pos) Then rngG.Value = Application.Index(rngC, pos) Else rngG.Value = "" End If Application.EnableEvents = True End If rngG.Select End Sub data.xlsb
  7. عذرا لم انتبه ان قي طلبك طباعة متعددة الطريقة الاولى زر print all اكتب كود الشركة بداية الطباعة في الخلية P2 ونهاية الطباعة في Q2 الطريقة السابقة لطباعة الارقام المتسلسلة وراء بعضها الطريقة الثانية عن طريق فورم زر طباعة خسب الاختيار وهي تغنيك عن كل الازرار وعن الطريقة الاولى حيث يمكن الطباعة لموظف واخد او الطباعة للكل او الطباعة المتعددة خسب الاختيار سواء الارقام متصلة ام منفصلة اختر ما تراه متاسب لطلبك مرتبات شركة نقل البضائع فنيين عن شهر نوفمبر 2025 (1).xlsm
  8. وعليكم السلام ورحمة الله وبركاتة كود طباعة الكل Sub PrintAll() Dim ws As Worksheet Dim dropdownCell As Range Dim validationFormula As String Dim optionsRange As Range Dim cell As Range Dim originalValue As Variant Dim counter As Integer Set ws = ActiveSheet Set dropdownCell = ws.Range("D4") originalValue = dropdownCell.Value If dropdownCell.Validation.Type = 3 Then validationFormula = dropdownCell.Validation.Formula1 If Left(validationFormula, 1) = "=" Then validationFormula = Mid(validationFormula, 2) End If Set optionsRange = ws.Range(validationFormula) counter = 0 For Each cell In optionsRange If cell.Value <> "" Then dropdownCell.Value = cell.Value Application.Calculate DoEvents ws.PageSetup.PrintArea = "C3:J54" ws.PrintOut counter = counter + 1 Application.StatusBar = "تم طباعة " & counter & " من " & optionsRange.Cells.Count End If Next cell dropdownCell.Value = originalValue Application.StatusBar = "" MsgBox "تمت طباعة " & counter & " عنصر بنجاح!", vbInformation Else End If End Sub مرتبات شركة نقل البضائع فنيين عن شهر نوفمبر 2025.xlsm
  9. اخي العزيز نعم يمكن ذلك ولكن بالنسبة لى بواسطة كود اما بالمعادلات حاولت ولم اتمكن ربما الزملاء الافاضل بالمنتدى لديهم ما يقدمونه لحل الامر بالمعادلات ECOODD (1) (1) (1).xlsb لك وافر التقدير والاحترام
  10. السلام عليكم ورحمة الله وبركاته حبيبنا الغالي اعذرني لم استوعب طلبك الاخير بعد اي جدول تعنى , الجداول في ملفك فمثلا جدول الغياب كل اسم امامه خلية واحدة للتاريخ كما في الصورة والغياب 4 ايام بتواريخ محتلفة فاشرح لي فكرتك لادراج 4 تواريخ في خلية واحدة
  11. السلام عليكم نعم الان اتضح المطلوب بارك الله فيك الحل تم حذف النطاق من ادارة الاسماء فصل شيفت'!$A$8:$R$283 من ادارة الاسماء وجعلنا النطاق مباشرة في الكود فاصبح الكود بهذا Sub filter_D() Dim Q1 As String Dim rng As Range Set rng = Sheets("فصل شيفت").Range("$A$8:$R$283") Q1 = Sheets("فصل شيفت").Range("A7").Value If Q1 = "" Then rng.AutoFilter Else Q1 = "*" & Q1 & "*" rng.AutoFilter Field:=1, Criteria1:=Q1, Operator:=xlOr, Criteria2:="=" End If End Sub نموذج حركة جرديوميه 15-11.xlsm
  12. ولك بالمثل وأكثر، جزاك الله كل خير على هذه الدعوة الطيبة تم الحذف خسب طلبك
  13. اخي الفاضل 1- في ملفك الاول ظهرت كلمة TABLE 5 في الشيت وطلبت ازالتها وكان ملفك بدون اكواد وبه ورقة واحدة فاجبتك بحذف الارتباط 2- في ملفك الاخير المتكامل اتضحت الصورة وعرفنا ان الجدول 5 مرتبط بكود عليه لا تقم بحذف الارتباط واتركه كما هو 3- ملفك الاخير المتكامل لا تظهر كلمة TABLE5 في الشيت مع وجود الارتباط ولهذا سألتك ما المشكلة اذا كانت الكلمة اختفت من الشيت ام ان هناك شئ غاب عنى ولم استوعبة فارجو ايضاحه
  14. مبدئيا ساعطيك ملف نفس طلبك الاول بدل VBA معادلات صفيف اليك الملف بالمعادلات وهي معادلات صفيف تحتاج الى Ctrl + Shift + Enter اذا عدلتها او تقلتها ECOO (1).xlsb
  15. نعم وضحت الصورة بعد ارسال ملفك الاخير ولم تظهر كلمة table 5 عكس ملفك الاول بمعنى الملف الذي ارفقته الاخير لا يوجد به كلمة table 5 في شيت فصل شيفت وللمرة الثانية اسال ما المشكلة
  16. اطلعت على الملف لا وجود لكلمة TABLE5 في فصل شيفت حسب طلبك الاول والكود لا يظهر اي خطا فما المشكلة اذا
  17. نعم يمكن ذلك السؤال اذا كان الغياب في اكثر من تاريح بمعنى غاب الموظف يوم 14 ويوم 22 اي تاريخ سيتم احضارة
  18. طلبك الاساسي اخي الفاضل ازالة الجملة TABLE5 وقدمت لك الحل وكان ردك الملف الذي ارفقته انت ليس به كود ارفق الملف كاملا لنرى الامر
  19. وعليكم السلام ورحمة الله وبركاته لم توضح تصفيه البيانات باستخدام الاعمدة BN:BS ام من اعمدة اخرى على كل حال افترضت ان الاعمدة BN:BS هي المعنية بالتصفية وهو الاقرب لقهم الطلب ملاحظة / عدد صفوف جدول الحضور والانصراف غير كافية لعدد الموظفين فقمت بزيادة الصفوف اذا كان هذا طلبك فبها وان كان غير ذلك ارجو كتابة بعض النتائج في الجداول لقهم الطلب تحياتي اليك الحل يكود مراعاة لحجم الملف ECOO (1).xlsb
  20. الأسباب المحتملة: وجود ارتباط خارجي (External Link) داخل الملف يشير إلى ملف اسمه table5.xlsx أو مشابه. صيغة أو دالة مثل VLOOKUP أو INDIRECT أو GETPIVOTDATA تحاول جلب بيانات من ملف خارجي باسم "table5". تم نسخ جدول من ملف آخر وكان مرتبطًا به، والآن Excel يبحث عن الأصل.
  21. السلام عليكم الملف مرتبط بملف اخر اسمه TABLE5 من الشريط العلوي للعناوين انقر على صيغ ثم ادارة الاسماء ستجد TABLE5 احذفها ثم وافق وتنتهى المشكلة
  22. اولا شكرا لدعاؤك لي ثانيا الكود في الملف السابق يقوم بترتيب الصفحات ذات الارقام وبالتالي ستجد الصفحات الاخرى ذات الحروف وليس الارقام مستثناة وتجدها بجانب بعضها ولكن هناك احتمال الرغبة في استثناء صفخة او صفحات رقمية مثلا تريد استثناء صفخة 4 من الترتيب . هنا سيتم التعديل على الكود باظافة مصفوفة لتجميع الصفخات المستثناة كل ما عليك فعلة هو التعديل في هذا الجزء من الكود حيث اضفت لك صفحات افتراضية في الكود وليس في المصتف مثل "ملخص", "إعدادات", "تعليمات يمكنك تعديلها باي اسم او اظافة صفحات اخرى باي عدد تشاء excludedSheets = Array("الرييييسية", "تجميع", "ملخص", "إعدادات", "تعليمات") اليك الملف بالتعديل ترتيب الصفحات1.xlsm تحياتي
  23. وعليكم السلام ورخمة الله وبركاته اليك الكود Sub ترتيب_الصفخات() Application.ScreenUpdating = False Application.DisplayAlerts = False On Error GoTo ErrorHandler Dim ws As Worksheet Dim dict As Object Dim key As Variant Dim sortedKeys() As Variant Dim i As Long, j As Long Dim temp As Variant Dim excludedSheets As Collection Dim mainSheet As String mainSheet = "الرييييسية" Set excludedSheets = New Collection excludedSheets.Add mainSheet excludedSheets.Add "تجميع" Set dict = CreateObject("Scripting.Dictionary") For Each ws In ThisWorkbook.Worksheets If Not IsInCollection(excludedSheets, ws.Name) Then If IsNumeric(ws.Name) Then dict.Add CLng(ws.Name), ws.Name End If End If Next ws sortedKeys = dict.Keys For i = LBound(sortedKeys) To UBound(sortedKeys) - 1 For j = i + 1 To UBound(sortedKeys) If sortedKeys(i) > sortedKeys(j) Then temp = sortedKeys(i) sortedKeys(i) = sortedKeys(j) sortedKeys(j) = temp End If Next j Next i For i = LBound(sortedKeys) To UBound(sortedKeys) Worksheets(dict(sortedKeys(i))).Move After:=Worksheets(Worksheets.Count) Next i Worksheets(mainSheet).Activate Application.ScreenUpdating = True Application.DisplayAlerts = True ' MsgBox "تم ترتيب " & dict.Count & " ورقة رقمية بنجاح! ", vbInformation Exit Sub ErrorHandler: Application.ScreenUpdating = True Application.DisplayAlerts = True MsgBox "حدث خطأ: " & Err.Description, vbCritical End Sub Function IsInCollection(col As Collection, item As String) As Boolean Dim obj As Variant On Error GoTo NotInCollection IsInCollection = True obj = col(item) Exit Function NotInCollection: IsInCollection = False End Function ترتيب الصفحات.xlsm
  24. السلام عليكم اليك التعديل المصنف2.xlsm
  25. وعليكم السلام ورحمة الله وبركاتة لم امر بهذه التجربة سابقا فوجهت السؤال الى chatgpt فكانت الاجابة الرابط الذي أرسلته 👇 🔗 https://www.microsoft.com/fr-fr/download/details.aspx?id=10019 هو الرابط الرسمي والآمن من موقع Microsoft لتحميل: Microsoft Visual Basic 6.0 Common Controls (SP6) ويحتوي على ملفات: MSCOMCTL.OCX COMCTL32.OCX وهما المسؤولان عن أدوات مثل ListView، TreeView، ImageList، ProgressBar …إلخ 🧩 الخطوات بالتفصيل (بالفرنسية + توضيح بالعربية) 🪄 1. Télécharger le fichier بعد تحميل الملف من الرابط الرسمي: سيكون اسمه تقريبًا: VisualBasic6-KB896559-v1-FRA.exe 📂 2. Créer un dossier de travail أنشئ مجلدًا مؤقتًا لتضع فيه الملفات المستخرجة من الملف السابق، ⚙️ 3. Extraire le contenu sans installation افتح موجه الاوامر Invite de commandes كمسؤول (Démarrer → cmd → clic droit → Exécuter en tant qu’administrateur) ثم اكتب الأمر التالي (كلّه في سطر واحد 👇): VB6.0-KB896559-v6.1.98.46-FRA.exe /T:C:\VB6Controls /C 📁 4. Vérifier le contenu du dossier اذهب إلى المجلد الذي أنشأته: ستجد بداخله عدة ملفات من بينها: MSCOMCTL.OCX COMCTL32.OCX 🚀 5. Copier les fichiers vers le dossier système حسب نوع نظامك: نوع النظام المجلد الذي تنسخ إليه Windows 32 bits C:\Windows\System32\ Windows 64 bits C:\Windows\SysWOW64\ انسخ الملفين MSCOMCTL.OCX و COMCTL32.OCX إلى المجلد المناسب. 🔧 6. Enregistrer les contrôles (Regsvr32) افتح Invite de commandes كمسؤول مجددًا، ثم نفّذ الأوامر التالية: 👉 على Windows 64 bits: regsvr32 C:\Windows\SysWOW64\MSCOMCTL.OCX regsvr32 C:\Windows\SysWOW64\COMCTL32.OCX 👉 على Windows 32 bits: regsvr32 C:\Windows\System32\MSCOMCTL.OCX regsvr32 C:\Windows\System32\COMCTL32.OCX ستظهر رسالة: DllRegisterServer dans MSCOMCTL.OCX réussi. وهذا يعني أن التثبيت تم بنجاح ✅ 🧰 7. Vérifier dans Excel 2013 افتح Excel اضغط Alt + F11 لفتح محرر VBA اختر Outils → Contrôles supplémentaires... فعّل الخيار: ✅ Microsoft Windows Common Controls 6.0 (SP6) اضغط OK الآن يمكنك استخدام ListView, TreeView, ImageList, إلخ.
×
×
  • اضف...

Important Information