بعد از انتشار مقاله مربوط به مجموع فروش به تفکیک استان، دوستان زیادی پیام دادند و نحوه نمایش دادهها را بر روی نقشه پرسیده بودند. با توجه به تعداد پیامها تصمیم گرفتم که در این مقاله و چند مقاله بعدی بر روی این موضوع کار کنم.
برای نمایش دادهها بر روی نقشه دو روش اصلی وجود دارد استفاده از قابلیت Shape در اکسل و قابلیت Power Map . در روش Shape یک تصویر به اکسل اضافه میشود و سپس با کمک ابزار FreeForm شکل تصویر کشیده میشود و در روش Power Map از نقشه سایت Bing استفاده میشود. در این مقاله روش اول بررسی میشود.
فرض کنید که جدولی از مقدار فروش در هر استان دارید و میخواهید مقدار فروش هر استان را بر روی نقشه نمایش دهید. برای انجام این کار، ابتدا باید شکل نقشه ایران را به اکسل اضافه کنید. من شکل نقشه ایران را نداشتم بنابراین مثل همیشه دست به دامن گوگل شدم و نقشه ایران را تو گوگل سرچ کردم. یکی از نقشهها را انتخاب کردم و با کلیک راست روی عکس و انتخاب گزینه Copy Image (البته اگر مثل من از کروم استفاده میکنید) عکس را کپی کردم.
بعد هم یک فایل اکسل باز کردم و نقشه را در آن past کردم. با کمک ابزار FreeForm دور هر استان خط کشیدم و مرز آن را مشخص کردم. در نهایت هم اسم استان را به انگلیسی مشخص کردم.
در مرحله بعد هم تصویر نقشه را که از اینترنت پیدا کرده بودم را با دکمه Delete روی کیبورد حذف کردم. با کلیدهای Ctrl + A تمام Shapeهایی که کشیده بودم را انتخاب کردم، سپس کلیک راست و گزینه Group. حالا یک Shape دارم که به شکل نقشه ایران است.
جدولی مشابه تصویر زیر آماده کردم که مقدار فروش در هر استان را نشان میدهد. نام استان هم به انگلیسی و هم به فارسی درج شده است. اسم انگلیسی برای نمایش روی نقشه الزامی است و باید دقیقا مشابه همان اسامی باشد که هنگام ساخت شکل نقشه استفاده کردیم.
کنار نقشه رده بندی فروش و رنگ آن را مشخص کردم. در صورتی که فروش هر استان بین ۱ تا ۲۰ باشد، استان به رنگ قرمز نمایش داده شود. در صورتی که فروش استان بین ۲۰ تا ۷۰ باشد به رنگ زرد نمایش داده شود و در صورتی که بیشتر از ۷۰ باشد، به رنگ سبز نمایش دارد.
برای اعمال این رنگ بندی باید سراغ ماکروها بروم. قبل از آن، ابتدا یک ستون به جدول اضافه میکنم و مینویسم که مقدار فروش به کدام رده بندی تعلق دارد. از تابع Match() در اکسل استفاده کردم.
سپس با کمک ماکروها و اضافه کردن کد زیر ، رنگ رده بندی را به نقشه اضافه کردم.
Sub Macro1()
For i = 1 To 30
Ostan = Cells(i + 1, 3)
Colors = Cells(i + 1, 5)
ActiveSheet.Shapes.Range(
Selection.ShapeRange.Fill.
Next i
End Sub
نتیجه نهایی به شکل زیر شد.
قسمت انتهایی ماکرو مشخص نیست. می توانید کمک کنید؟
به مقاله اضافه شد.
سلام
میشه فایلشو برام بفرستید
کد vba نداشته باشی چه فایده ای؟
میشه لطفا کدشو برامون ارسال کنید
سلام
بله
به مقاله اضافه شد.
سلام و سپاس از آموزش ارایه شده که بسیار عالی و مفید توضیح داده اید.
فقط در فیلم آخری، مطلب را دنبال کردم تا به عبارت زیر رسید:
Selection.ShapeRange.Fill.ForeColor.RGB = Cells(2
در اینجا چون سایز پنجره کوچک است، ادامه مطلب خوانده نمی شود، و بنابراین نمی توانم عملیات را تا انتها به نتیجه برسانم. اگر امکانش هست، عبارت کامل را برایم ایمیل بفرمایید.
بسیار ممنون
سلام
ممنون از دقت تون
به مقاله اضافه شد
سلام. کدی که توی ماکرو می نویسید چیه؟؟؟
به مقاله اضافه شد
سلام جناب
بنده این آموزش را برای یک شهر طراحی کردم ولی فایل VBA کار نمیکنه و من هم vba بلد نیستم اگه امکانش هست راهنمایی کنین لطفا.
متشکرم
سلام وقت شما بخیر
بسیار تشکر میکنم از آموزشی که قرار دادید
من به یک مشکل برخوردم در قسمت vba از خط چهارم ActiveSheet.Shapes.Range(Array(Ostan)).Select ایراد میگیره و ران نمیشه ، ایراد کار من کجاست؟
با تشکر
سلام. منم به همین مشکل خوردم. از خط ۴ دیگه ران نمیشه لطفا راهنمایی کنید
سلام ممنون از توضیحاتتون من اگر بخواهم نقشه ایران را د راکسل بنحوی قرار دهیم که با کلیک بر روی هر استان مشخصات جمعیتی آنرا ببینم چگونه میسر میشود؟ممنون
سلام امکان ارسال فایل برای اینجانب به ایمیلم می باشد؟
در صورت امکان ارسال نمایید
با سپاس
باسلام. ممنون از مطالب مفیدتون. متأسفانه ماکرو خط ۴ کلمه ostan را ایراد می گیرد. لطفاً توضیح دهید. ممنون
با سلام
من به خطا شما دسترسی ندارم که بتونم راهنمایی کنم.
اما فایل درست و بدون خطا در انتهای مقاله قرار داده شده است.
لطفا فایل را دانلود نمایید و با ماکرو خودتون مقایسه کنید.
در صورتی که فایل برای شما ایمیل نشد، حتما اسپم را بررسی فرمایید.
سلام کلمه Ostan داخل ماکرو به کدوم شئ مربوط میشه؟؟؟
به ستون سوم با نام “Name_En” مربوط می شود. که در آن نام استان ها ها به زبان انگلیسی آورده شده است.
باسلام، ممنون از اشتراک گذاری
سپاس
سلام ممنون اززحمات جنابعالی
چرا بعد از تغییر اعداد وزدن کلید نمایش دور بعضی از شیت استانها وکل نقشه کادر میفته
با سلام و عرض ادب و ارادت دوست عزیزم
امیدوارم حالتون عالی باشه
مشکل خاصی ندارد. بر روی یک سلول کلیک فرمایید، کادر از بین می رود.
سلام وعرض ادب
یک سوال دارم بعضی از فایلهای اکسل خصوصا داشبوردی به محض کلیک برروی فایل بصورت فول اسکرین دیده میشوند و غیر قابل ویرایش لطفا اگه برنامه ماکرو دارند میشه راهنمایی کنید.
سلام وقت بخیر. چرا نمیشه فایل را دانلود کرد؟
ممنون از بازخورد مفیدتون. تصحیح شد.