PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : حل یک مشکل



reza_1001
2017/06/08, 10:38
با سلام خدمت دوستان
بنده به مشکلی برخوردم در vba و هرچه تلاش کردم نتونستم حلش کنم حالا خواستار کمک شما دوستان هستم.
مشکل بنده اینه که 2 تا ستون دارم یکی ستون A (عدد) و دیگری ستون B (متن)
ستون اعداد یک سری اعداد هستند که 30تایی هستند یعنی از 1تا30 از 30 تا 60 الی....
حالا میخوام زمانی که در 30 تای اول قبل از اولین متن در ستون B ستون c مثلا با عدد1 پر بشه و بعد از اولین متن ستون B چیزی نوشته نشه
وهمچنین در 30 تا اول بعد از آخرین متن در ستون B تا عدد 30 در ستون c مثلا با عدد 2 پر بشه .
ودر بقیه اعداد از 30 تا 60 الی .... همینجوری عمل کنه .
فایل رو ضمیمه کرده ام .
البته یه نکته بگم که اعدادی که در fuction برای a تعریف کردم همیجوری نوشتم چون ممکنه مثلا اولین متن در ستون B در مقابل عدد 5 از ستون A باشد و ممکنه در مقابل عدد 12 از ستونAباشد . .

shamsololama
2017/06/12, 13:06
با درود فراوان
این کار رو با این ماکرو می توانید انجام دهید .
Sub m()
Dim p, n, i, i2, i3
p = 0
n = ""
For i = 1 To 10


For i2 = 1 + p To 30 + p
If Range("b3").Offset(i2, 0).Value <> "" Then

If n = "" Then
n = Range("b3").Offset(i2, 0).Row
End If
n2 = Range("b3").Offset(i2, 0).Row
End If
Next
For i3 = 1 + p To 30 + p
If Range("b3").Offset(i3, -1).Value <> "" And n <> "" Then
If Range("b3").Offset(i3, 0).Row <= n2 Then Range("b3").Offset(i3, 4).Value = 0
If Range("b3").Offset(i3, 0).Row < n Then Range("b3").Offset(i3, 4).Value = 1
If Range("b3").Offset(i3, 0).Row > n2 Then Range("b3").Offset(i3, 4).Value = 2
End If
Next
p = p + 30
n = ""
Next
End Sub

فایل نمونه هم قرا میدم



با سلام خدمت دوستان
بنده به مشکلی برخوردم در vba و هرچه تلاش کردم نتونستم حلش کنم حالا خواستار کمک شما دوستان هستم.
مشکل بنده اینه که 2 تا ستون دارم یکی ستون A (عدد) و دیگری ستون B (متن)
ستون اعداد یک سری اعداد هستند که 30تایی هستند یعنی از 1تا30 از 30 تا 60 الی....
حالا میخوام زمانی که در 30 تای اول قبل از اولین متن در ستون B ستون c مثلا با عدد1 پر بشه و بعد از اولین متن ستون B چیزی نوشته نشه
وهمچنین در 30 تا اول بعد از آخرین متن در ستون B تا عدد 30 در ستون c مثلا با عدد 2 پر بشه .
ودر بقیه اعداد از 30 تا 60 الی .... همینجوری عمل کنه .
فایل رو ضمیمه کرده ام .
البته یه نکته بگم که اعدادی که در fuction برای a تعریف کردم همیجوری نوشتم چون ممکنه مثلا اولین متن در ستون B در مقابل عدد 5 از ستون A باشد و ممکنه در مقابل عدد 12 از ستونAباشد . .

reza_1001
2017/06/27, 19:09
سلام خدمت استاد شمس العلما .....ممنون از اینکه این ماکرو رو برام درست کردید ......خدا خیرتون بده .
فقط یک مشکلی هست که بنده باید اول میگفتم ولی یادم رفت و اون اینه که همیشه اعداد از 1 شروع نمیشوند مثلا ممکنه از 40 شروع بشه یا از 112 و ...
در واقع میخوام جوری این sub عمل کنه که خودش بدونه که از 1تا 30 یک مجموعه است و از 30 تا 60 یک مجموعه دیگر و سپس همون کارهایی که میخوام انجام بده .
و یک خواسته دیگه ای که از شما استاد گرامی داشتم اینه که این ماکرو رو بصورت fuction برام بنویسید البته اگر امکانش هست .