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

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

قام بنشر

اسعد الله اوقاتكم اخواني الاعزاء 

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

كما تعلمون في الترتيب يتغير تلقائي بمجرد تغير النتائج ولاكن الشعار لابد اضعه يدوي في كل  مرة 

سؤال هل توجد طريقة كيف اربط به اسم الفريق بالشعار ويصبح الشعار ينتقل مع الاسم تلقائي اليكم ملف الذي اعمل عليه 

 

انا مبتدئ على الاكسيل ارجو منكم الشرح مفصل 

 

123.JPG

تجريبة.xlsx

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

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

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

1.PNG.557500d47dbd4a51841e5fbc789535ed.PNG

واستخدام الكود التالي في حدث ورقة GroupA لتغيير الشعار تلقائيا بناء على التغيير  في النتيجة 

عندما يتم نقل إسم الفريق في الورقة (أي تغيير موضع الخلية) سيتحرك الشعار إلى الموقع الجديد بشكل تلقائي كما في الصورة أدناه 

ScreenRecorderProject6.gif.7cde0b611edda2e96bd11a97ab34b69e.gif

 

Option Explicit
Private Sub Worksheet_Calculate()
    Dim tmp As Range, n As Shape, OnRng As Range
    Dim crWS As Worksheet: Set crWS = Me
    Dim dest As Worksheet: Set dest = Sheets("Logos")
    
    Application.ScreenUpdating = False
    For Each tmp In crWS.Range("J14:J" & crWS.Cells(crWS.Rows.Count, "J").End(xlUp).Row)
        If tmp.Value <> "" Then
            For Each n In crWS.Shapes
                If n.Type <> 8 And n.TopLeftCell.Address = tmp.Offset(0, -1).Address Then n.Delete
            Next n
            
        Set OnRng = dest.Range("A2:A" & dest.Cells(dest.Rows.Count, _
                    "A").End(xlUp).Row).Find(tmp.Value, LookAt:=xlWhole)
        
        If Not OnRng Is Nothing Then
            For Each n In dest.Shapes
                If n.TopLeftCell.Address = dest.Cells(OnRng.Row, _
                dest.Range("A2:A" & dest.Cells(dest.Rows.Count, "A").End(xlUp).Row).Column + 1).Address Then
                    n.Copy
                    tmp.Offset(0, -1).Select
                    ActiveSheet.Paste
                    With Selection.ShapeRange
                        .LockAspectRatio = msoFalse
                        .Left = tmp.Offset(0, -1).Left + 4: .Top = tmp.Offset(0, -1).Top + 5
                        .Width = tmp.Offset(0, -1).Width - 8: .Height = tmp.Offset(0, -1).Height - 6
                    End With
                    Selection.ShapeRange(1).Select
                    Selection.ShapeRange(1).TopLeftCell.Select
                End If
            Next n
            Else
                For Each n In crWS.Shapes
                    If n.Type <> 8 And n.TopLeftCell.Address = tmp.Offset(0, -1).Address Then n.Delete
                Next n
            End If
        End If
    Next tmp

    Application.CutCopyMode = False
    Application.ScreenUpdating = True
End Sub

 

 

تجريبة v2.xlsb

تم تعديل بواسطه محمد هشام.
  • Like 4

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