بروز رسانی شماره سطر در اکسل
Collapse
X
-
بروز رسانی شماره سطر در اکسل
سلام
اگر به عنوان مثال 10 تا ردیف داشته باشم و مثلا ردیف 8 رو پاک کنم شماره ردیف ها اتوماتیک بروز رسانی میشه یا اگر بین ردیفها سطری و اضاف کنم باز هم اتوماتیک شماره سطرها بروز رسانی میشه که کدش در ستون a2 نوشته شده اما همین کارو با زبان برنامه نویسی میخواستم امکانش هست؟؟؟؟ ممنونمبرچسب ها: هیچکدام -
سلامسلام
اگر به عنوان مثال 10 تا ردیف داشته باشم و مثلا ردیف 8 رو پاک کنم شماره ردیف ها اتوماتیک بروز رسانی میشه یا اگر بین ردیفها سطری و اضاف کنم باز هم اتوماتیک شماره سطرها بروز رسانی میشه که کدش در ستون a2 نوشته شده اما همین کارو با زبان برنامه نویسی میخواستم امکانش هست؟؟؟؟ ممنونم
فایل اکسلکد:[COLOR=#000000][FONT="]Sub Worksheet_Change(ByVal Target As Range)[/FONT][/COLOR] [COLOR=#000000][FONT="]Application. EnableEvents = False[/FONT][/COLOR] [COLOR=#000000][FONT="]On Error Resume Next If Target.Column = 2 And Target.Offset(0, -1).Value = "" Then Target.Offset(0, -1).FormulaR1C1 = "=ROW()-1" ElseIf Target.Column = 2 And Target.Offset(0, -1).IsEmpty = "TRUE" Then Target.Offset(0, -1).ClearContents End If[/FONT][/COLOR] [COLOR=#000000][FONT="]Application.EnableEvents = True[/FONT][/COLOR] [COLOR=#000000][FONT="]End Sub[/FONT][/COLOR][CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
[/CENTER] -
به نظر مياد كدتون ناقص باشه دوست عزيزسلام
فایل اکسلکد:[COLOR=#000000][FONT=&]Sub Worksheet_Change(ByVal Target As Range)[/FONT][/COLOR] [COLOR=#000000][FONT=&]Application. EnableEvents = False[/FONT][/COLOR] [COLOR=#000000][FONT=&]On Error Resume Next If Target.Column = 2 And Target.Offset(0, -1).Value = "" Then Target.Offset(0, -1).FormulaR1C1 = "=ROW()-1" ElseIf Target.Column = 2 And Target.Offset(0, -1).IsEmpty = "TRUE" Then Target.Offset(0, -1).ClearContents End If[/FONT][/COLOR] [COLOR=#000000][FONT=&]Application.EnableEvents = True[/FONT][/COLOR] [COLOR=#000000][FONT=&]End Sub[/FONT][/COLOR]
نياز به يك حلقه هست كه همه ستون رو بررسي كنهکامنت
-
[CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
[/CENTER]کامنت
-
این کدی هست که من پیشنهاد میکنم دوست عزیز
هرچند که پیشنهاد میکنم کارهایی که با توابع اکسل میشه انجام داد رو با کدنویسی انجام ندید. در حجم بالا روی سرعت کار بسیار موثر هست
کد:Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False On Error Resume Next If Target.Column = 2 Then Lrow = Range("B" & Rows.Count).End(xlUp).Row For i = 2 To Lrow s = Cells(i, 2).Value If Cells(i, 2).Value <> "" Then Cells(i, 2).Offset(0, -1) = Application.WorksheetFunction.Max(Range(Cells(1, 1), Cells(i - 1, 1))) + 1 Else: Cells(i, 2).Offset(0, -1) = "" End If Next i End If Application.EnableEvents = True End Subکامنت
-
سلاماین کدی هست که من پیشنهاد میکنم دوست عزیز
هرچند که پیشنهاد میکنم کارهایی که با توابع اکسل میشه انجام داد رو با کدنویسی انجام ندید. در حجم بالا روی سرعت کار بسیار موثر هست
کد:Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False On Error Resume Next If Target.Column = 2 Then Lrow = Range("B" & Rows.Count).End(xlUp).Row For i = 2 To Lrow s = Cells(i, 2).Value If Cells(i, 2).Value <> "" Then Cells(i, 2).Offset(0, -1) = Application.WorksheetFunction.Max(Range(Cells(1, 1), Cells(i - 1, 1))) + 1 Else: Cells(i, 2).Offset(0, -1) = "" End If Next i End If Application.EnableEvents = True End Sub
این کد هم که قرار دادید در واقع بر مبنای ستون دوم کار میکنه، و در صورتی که مقادیر در ستون های دیگری وارد شوند شماره ردیف قرار نمیده.
یک نمونه دیگر :
کد:Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("B2:B1000")) Is Nothing Then Exit Sub On Error Resume Next Dim nProg As Long, i As Long nProg = 1 Range("A2:A1000").ClearContents For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(i, 2) <> "" Then Cells(i, 1) = nProg nProg = nProg + 1 End If Next i End Sub[CENTER]Telegram Channel : [url]https://t.me/UltraOfficeSkills[/url]
[/CENTER]کامنت
-
بله ولی کد قبلی شما فقط همون ردیف رو ویرایش میکرد. این کد که الان گذاشتین صحیح هست. کل ستون باید آپدیت بشنسلام
این کد هم که قرار دادید در واقع بر مبنای ستون دوم کار میکنه، و در صورتی که مقادیر در ستون های دیگری وارد شوند شماره ردیف قرار نمیده.
یک نمونه دیگر :
کد:Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("B2:B1000")) Is Nothing Then Exit Sub On Error Resume Next Dim nProg As Long, i As Long nProg = 1 Range("A2:A1000").ClearContents For i = 2 To Cells(Rows.Count, 2).End(xlUp).Row If Cells(i, 2) <> "" Then Cells(i, 1) = nProg nProg = nProg + 1 End If Next i End Subکامنت




کامنت