PDA

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



amator
2010/08/02, 09:42
سلام دوستان
همونوطور که تو فایل پیوست می بینید توی ستون A کد انتخاب شده در سلول G2 شمرده میشه. تعداد رکوردهای من به 50000 رسیده و باعث شده فایلم خیلی کند بشه.
میخوام درج شماره ها رو توسط VB داشته باشم. چطور میتونم این کار رو انجام بدم.
سپاسگذارم

دانلود فایل (http://www.xlpar.com/rhcw1lltn9x6/counter.xls.html)

shamsololama
2010/08/07, 14:13
با دردود فراوان
من فایل رو نگاه کردم با این دو ماکرو میشه کاری که خواسته اید رو انجام داد
ولی فکر می کنم نیازی به این کار نباشد و می توان کاری کرد که سریع به هدف اصلی رسید
اگر هدف اصلی خود را از این کار بگوئید میشه راه حل بهتری را ارئه داد

اگر هدف اصلی شما این است که با انتخاب هر واحد اداری نفرات زیر مجموعه آن بصورت یک لیست در اختیار شما قرار گیرد می توان مستقیما این کار رو انجام داد چرا که با شماره گذاری کردن و سپس با استفاده از شماره ها و فورمول این لیست را تهیه کردن باز هم زمان بر خواهد بود

البته من هدف اصلی شما را از این کار نمیدانم و حدس زدم که چنین است
در هر صورت برای اگر این جواب پاسخگوی نیاز شما نبود بازهم درخدمتم

در دو روش زیر نمونه کار هم آماده کردم که اگر نیاز بود می فرستم

اول:


Sub Macro1()
'
' Macro1 Macro
' Macro recorded 2010/08/07 by security
'
Sheet1.Range("a:a") = ""
With Sheet1.Range("B:B")
Set c = .Find(Sheet1.Range("g2").Text, LookIn:=xlValues, LookAt:=xlPart)
If Not c Is Nothing Then
firstAddress = c.Address
Do
If c <> "" Then
n = n + 1
c.Offset(0, -1).Value = n
End If
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
'
End Sub

دوم:


Sub Macro2()
'
' Macro1 Macro
' Macro recorded 2010/08/07 by security
'
Sheet1.Range("a:a") = ""
For Each c In Sheet1.Range("a:a")

If c.Offset(0, 1) = Sheet1.Range("g2") Then
n = n + 1
c.Value = n
End If

Next
'
End Sub

amator
2010/08/07, 18:03
ممنونم دوست خوبم
این کد رو چطور باید استفاده کنم. میشه کد رو تو فایل اعمال کنید که راهش را یاد بگیرم.
درمورد فایل اصلی باید بگم دسترسی بهش ندارم ولی ساختارش همین هست منتهی این واحدها کدکالا هستند ، بعلاوه اینکه بعد از انتخاب کد موردنظر علاوه بر نام ، ده فیلد هم ردیف دیگه هم باید لیست بشن. من اینکارو باشماره گذاری و بعداز اون ره گیری شماره ها با vlookup انجام دادم. اگه راه بهتری وجود داره ممنون میشم راهنمایی کنین.

بازم ممنونم

shamsololama
2010/08/08, 08:53
با درود فراوان
اگر درست متوجه شده باشم می خواهید با انتخاب یک کد کالا تمام کالاها با کد مورد نظر را یافته و هر کدام را با فیلدهای جلوی آن ده فیلد و یا بیشتر را که مشخص می کنیم بصورت یک لیست به ما نشان دهد

1-حالا این لیست میخواهید جایی ثبت شود
2-آیاروی لیست یافته شده میخواهید ویرایش انجام دهید یا نه
3-آیا پرینت و یا خروجی خاصی از این لیست نیاز خواهید داشت
4-و یا فقط برای مشاهد کردن لیست خواهد بود
5-تعداد کدهای که سرچ میکنیم حد اکثر چه تعداد خواهد بود
6-آیا کدهای شبیه به هم خواهیم داشت

با توجه به موارد بالا می توان طوری عمل کرد که رکورد ها هر چقدر هم که باشد سرعت خوبی داشته و همچنین باعث سنگین شدن صفحه نشود چرا که اگر قرار باشد با فورمول انجام دهیم به تعداد کدهای یافته شده سطرهای حاوی فورمول نیاز خواهیم داشت و همچنین برای هر کد ده فیلد روبرو نیز نیاز به فورمول خواهند داشت و یک مشکل عمده این است که اگر کدهای که یافت میشوند تعداد مشخصی نداشته باشند نمی دانیم چند سطر را باید فرومول نویسی کنید که کم نیاد.
و این فمورمولها باعث سنگین شدن صفحه خواهند شد

پیشنهاد من با توجه به پرشهایی که برایم مطرح شده و در بالا عرض کردم می توانید این جستجو را در یک یوزر فرم انجام داده تا لیست مورد نظر شما که جستجو می کنید در یک لیست باکس به شما نشان دهد و در صورت نیاز آن را در صفحه مورد نظر خود ثبت کنید و یا پرینت کنیدو یا ...
بعداز این که شش سئوال بالا را مشخص کردید که به چه صورت مدنظر شماست یک نمونه فایل را حاضر می کنم و خدمت شما ارسال خواهم کرد

بدرود

amator
2010/08/08, 10:34
سلام
مرسی از وقتی که گذاشتین.
1- بعضی مواقع لازمه جای دیگه ثبت بشه
2- خیر
3- بلی
4- بلی
5- درهربار جستجو فقط یک کد. منتهی باوجود 50000 رکورد من میدونم که نتایجم بیشتر از 200 مورد نخواهد بود. بنابراین تعداد فرمولهای مورداستفاده ام 200*10 تا هستن
6- بلی. درحقیقت همین کدهای شبیه به هم هستن که شمرده میشن.

بازم ممنونم

shamsololama
2010/08/08, 11:21
با درود فراوان

یه نمونه درست میکنم می فرستم