طارق_نادر قام بنشر فبراير 10, 2015 قام بنشر فبراير 10, 2015 السلام عليكم اريد منكم لطفا ان استفسر عن الثوابت التي لا تتغير في اي كود والمتغيرات التي تختلف بأختلاف المطلوب من الكود وسأرفق كود ارجو التوضيح عليه ماهو الثابت فيه وماهو المتغير اذا تكرمتم فهذه طريقة استاطيع من خلالها ان افهم الاكواد بشكل اعمق Private Sub CmdNew_Click() Dim ws As Worksheet Dim lr As Long Set ws = ThisWorkbook.Sheets("البيانات") If Me.txtid = "" Or Me.txtname = "" Or Me.cbos = "" Or Me.txtplace = "" Or Me.cboy = "" Or Me.txtbdate = "" Then MsgBox "من فضلك قم بإستكمال البيانات الأساسية أولاً قبل الترحيل", vbCritical + vbOKOnly, "حقول فارغة" Exit Sub End If lr = ws.Cells(Rows.Count, "K").End(xlUp).Row + 1 Application.ScreenUpdating = False ws.Range("AB1:AG1").Copy ws.Range("D" & lr + 1).PasteSpecial , Transpose:=True ws.Range("AB2:AH2").Copy ws.Range("F" & lr).PasteSpecial , Transpose:=True ws.Range("AB3:AI3").Copy ws.Range("K" & lr).PasteSpecial , Transpose:=True Application.CutCopyMode = False With ws .Cells(lr, "C") = Me.txtname .Cells(lr, "D") = lbly.Caption .Cells(lr + 1, "E") = Me.txtid .Cells(lr + 2, "E") = Me.cbos .Cells(lr + 3, "E") = Me.txtplace .Cells(lr + 4, "E") = Me.cboy .Cells(lr + 5, "E") = Me.txtbdate .Cells(lr + 6, "E") = Me.lbldate .Cells(lr, "G") = Me.TextBoxA For i = 1 To 6 .Cells(lr + i, "G") = Me.Controls("TextBoxA" & i).Value Next i .Cells(lr, "H") = Me.TextBoxB For i = 1 To 6 .Cells(lr + i, "H") = Me.Controls("TextBoxB" & i).Value Next i .Cells(lr, "I") = Me.TextBoxC For i = 1 To 6 .Cells(lr + i, "I") = Me.Controls("TextBoxC" & i).Value Next i .Cells(lr, "J") = Me.TextBoxD For i = 1 To 5 .Cells(lr + i, "J") = Me.Controls("TextBoxD" & i).Value Next i .Cells(lr, "L") = Me.TextBoxE For i = 1 To 7 .Cells(lr + i, "L") = Me.Controls("TextBoxE" & i).Value Next i End With ws.Cells(lr, 3).Select Application.ScreenUpdating = True End Sub Private Sub CmdPrint_Click() ' Display "Printer Setup" dialog box Application.Dialogs(xlDialogPrinterSetup).Show ' Option Explicit ' Sub SelectSheets() Dim i As Integer Dim TopPos As Integer Dim SheetCount As Integer Dim PrintDlg As DialogSheet Dim CurrentSheet As Worksheet Dim cb As CheckBox Dim Numcop As Long Application.ScreenUpdating = False ' Check for protected workbook If ActiveWorkbook.ProtectStructure Then MsgBox "Workbook is protected.", vbCritical Exit Sub End If
ibn_egypt قام بنشر فبراير 10, 2015 قام بنشر فبراير 10, 2015 أخى الفاضل أ.طارق شاهد هذا الفيديو الرائع للأستاذ القدير أ.محمد صالح، وستعلم الفرق بين المتغيرات والثوابت وكيفية الاعلان عنها وكيفية التحويل بينها وستتضح لك الصورة كاملة... في الأكواد المرفقة لا توجد ثوابت كلها متغيرات تحياتي
ياسر خليل أبو البراء قام بنشر فبراير 10, 2015 قام بنشر فبراير 10, 2015 أخي الحبيب ابن مصر ..ممكن تعديل على معلومة بسيطة داخل الفيديو انظر لهذا الكود Sub Test() Dim a1, a2, a3 As Integer a1 = 12.5 a2 = 10.1 a3 = 25.3 MsgBox a1 & Space(5) & a2 & Space(5) & a3 End Sub تم الإعلان داخل سطر واحد عن 3 متغيرات ، ولكن هذا لا يعني أن المتغيرات الثلاثة من نفس النوع والدليل هذا الكود فناتج المتغير a3 يساوي 25 فقط لأننا قمنا بالإعلان عنه من النوع Integer أما المتغيرين a1 و a2 فتم الإعلان عنهم من النوع Variant .. وليس كما ورد بالفيديو أن المتغيرات الثلاثة من نفس النوع .. 1
ibn_egypt قام بنشر فبراير 10, 2015 قام بنشر فبراير 10, 2015 تم الإعلان داخل سطر واحد عن 3 متغيرات ، ولكن هذا لا يعني أن المتغيرات الثلاثة من نفس النوع والدليل هذا الكود فناتج المتغير a3 يساوي 25 فقط لأننا قمنا بالإعلان عنه من النوع Integer أما المتغيرين a1 و a2 فتم الإعلان عنهم من النوع Variant .. وليس كما ورد بالفيديو أن المتغيرات الثلاثة من نفس النوع .. استاذي القدير انا لم اشاهد الفيديو بشكل كامل، مررت عليه مرور الكرام وهو فيديو مفيد وهام وادعوا الله أن يجازى أستاذنا الكريم أ.محمد صالح كل خير وأن يجعل عمله في ميزان حسناته لكن بالفعل كلام حضرتك صحيح 100% فتعريف جميع المتغيرات بهذا الشكل غير مفضلة لانها تظهر وكأنها نفس النوع لكن دائما المتغير الاخير قبل كلمة As هو الذي يأخذ النوع المحدد بينما الباقي يتم تعريفهم ك Variant فلو كتبنا Dim L,K,M As Long هنا M فقط هو ال Long بينما L,K من نوع Variant جزاك الله كل خير على التوضيح أبو البراء تحياتي 2
الردود الموصى بها
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.