دوستان فایل اکسلی دارم که در آن نام و نام خانوادگی دانش آموزان در یک ستون توسط آموزگار باید وارد بشود.دوستان عزیز دستوری می خواهم که با آن دستور بشود شیتهایی به نام دانش آموزان که آموزگار نام آنها را وارد کرده است ،درست کرد.به عنوان مثال آموزگار بعد از اینکه نام دانش آموز اول را وارد کرد نرم افزار به طور اتومات یک شیت به نام ان دانش آموز ایجاد کند.(در ضمن این شیتی هم که نرم افزار ایجاد می کند باید یک کپی از شیت 1 که قبلا ایجاد کرده ایم باشد.)
دستور اضافه شدن یک شیت خاص با اضافه شدن یک سطر
Collapse
X
-
دستور اضافه شدن یک شیت خاص با اضافه شدن یک سطر
سلام مجدد به دوستان و اساتید
دوستان فایل اکسلی دارم که در آن نام و نام خانوادگی دانش آموزان در یک ستون توسط آموزگار باید وارد بشود.دوستان عزیز دستوری می خواهم که با آن دستور بشود شیتهایی به نام دانش آموزان که آموزگار نام آنها را وارد کرده است ،درست کرد.به عنوان مثال آموزگار بعد از اینکه نام دانش آموز اول را وارد کرد نرم افزار به طور اتومات یک شیت به نام ان دانش آموز ایجاد کند.(در ضمن این شیتی هم که نرم افزار ایجاد می کند باید یک کپی از شیت 1 که قبلا ایجاد کرده ایم باشد.) -
سلام مجدد به دوستان و اساتید
دوستان فایل اکسلی دارم که در آن نام و نام خانوادگی دانش آموزان در یک ستون توسط آموزگار باید وارد بشود.دوستان عزیز دستوری می خواهم که با آن دستور بشود شیتهایی به نام دانش آموزان که آموزگار نام آنها را وارد کرده است ،درست کرد.به عنوان مثال آموزگار بعد از اینکه نام دانش آموز اول را وارد کرد نرم افزار به طور اتومات یک شیت به نام ان دانش آموز ایجاد کند.(در ضمن این شیتی هم که نرم افزار ایجاد می کند باید یک کپی از شیت 1 که قبلا ایجاد کرده ایم باشد.)
با عرض سلام مجدد خدمت دوست عزيز
شما بايد از vba استفاده كنيد.
يك نمونه ساده خدمت شما. شخصي سازيش با خودتون
کد:Sub sheetnaming() Name = Range("A1").Value Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(Worksheets.Count) ActiveSheet.Name = Name End Sub
-
سلام مجدد خدمت دوست عزیزم
امیر جان تابعی که زحمت کشیده بودی برای سلول a1 کاملا درست عمل می کنه ولی برای سایر آیتمهای ستون a عمل نداره. برای مثلا سلول a2 چه تغیراتی باید توو مارکو بدم؟فایلشو پیوست می کنم خدمتتون .اگه امکان داره روو همین فایل اصلاح کنید برام بفرستید.متشکرمفایل های پیوست شدهکامنت
-
من دقيق متوجه منظورتون نشدم. ولي فكر كنم همچين چيزي مد نظرتون باشه.
شما در سلول B1 مقداري رو وارد ميكنيد كه در واقع نشان دهنده شماره سطر خواهد بود. مثلا اگه بخواهيد سلول A4 رو به عنوان نام استفاده كنيد بايد سلول B1 رو برابر 4 قرار بدين
کد:Sub sheetnaming() C = Range("B1").Value Name = Range("A" & C).Value Range("B1").Value = C + 1 Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(Worksheets.Count) ActiveSheet.Name = Name End Subکامنت
-
سلام مجدد
امیر جان گویا منظورمو خوب نتونستم برسونم.امیر جان واسه اینکه منظورمو بهتر برسونم دو تا فایل ضمیمه می کنم که توضیحات لازمو تووش دادم.ممنونفایل های پیوست شدهکامنت
-
سلام دوست عزيز
خب الان كامل متوجه شدم
شما در سلول B1 اين فرمول رو بنويسيد
در vba هم اين دستورات رو قرار بدينکد:=COUNTIF(A:A;"*")-1
کد:Sub sheetnaming() c = Range("B1").Value For e = 2 To c Sheets("Sheet2").Select Name = Range("A" & e).Value Sheets("Sheet1").Select Sheets("Sheet1").Copy After:=Sheets(Worksheets.Count) ActiveSheet.Name = Name Next e End Sub
کامنت
-
با اجازه جناب قاسمیان
دوست عزیز.اون خط کد آخر میاد اسم یک سلول از شیت اول رو به عنوان نام شیت در نظر می گیره.
شما یک خط کد مشابه همین اضافه کنید ولی بجای اینکه activesheet.name رو مساوی متغیر name بذارید. activesheet.range("a1")i رو مساوی متغیر مورد نظر قرار بدید.
سوالی بود در خدمتم[CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:
[URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
[URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
:wcom:
[B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
[EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
[/CENTER]کامنت
-
سلام دوست عزیز
خانم خاکزاد این تغییری که شما زحمت کشیده بودید گفتید،تقریبا درست عمل می کنه ولی مشکلی که داره اینه نام شیت هایی که ایجاد می شوند دیگر برابر با نام دانش آموزان نمی شود .
متن ماکرویی که اعمال شده این است
Sub sheetnaming()
Sheets("Sheet2").Select
c = Range("I11").Value
For e = 2 To c + 1
Name = Range("G" & e).Value
Sheets("Sheet20").Select
Sheets("Sheet20").Copy After:=Sheets(Worksheets.Count)
ActiveSheet.Range("a1") = Name
Sheets("Sheet2").Select
ActiveSheet.Hyperlinks.Add Anchor:=Range("G" & e), Address:="", SubAddress:=Name & "!A1", TextToDisplay:=Name
Range("G2:G40").Select
With Selection.Font
.Name = "B Nazanin"
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Selection.Font.Underline = xlUnderlineStyleNone
With Selection.Font
.Color = -10477568
.TintAndShade = 0
End With
With Selection.Font
.Color = -10477568
.TintAndShade = 0
End With
Next e
End SubLast edited by ali65e; 2013/12/23, 12:07.کامنت
-
کد قبلی رو حذف نکینید
اینو زیرش اضافه کنید
شما activesheet.name رو حذف کردید![CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:
[URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
[URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
:wcom:
[B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
[EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
[/CENTER]کامنت
-
خودتون که کدشو در ادامه گذاشتینحالا رنج رو همون a1 بذارید.البته این قسمتی از کدتون هست.خواستم یادآوری کنم که خودتون بلدیدکد:[RIGHT][COLOR=#333333]Range("G2:G40").Select[/COLOR] [COLOR=#333333]With Selection.Font[/COLOR] [COLOR=#333333].Name = "B Nazanin"[/COLOR][/RIGHT]
[CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:
[URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
[URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
:wcom:
[B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
[EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
[/CENTER]کامنت
-
خب همینه!
مشابه این کد رو داخل حلقه for که قبلا نوشتید، بعد از اون خط کدی که اضافه می کنید بنویسید.activesheet.range("a1")i رو select کنید.بقیش مشابه کد خودتون
(هدف این هست که شما مسلط بشید به کدها و . . . برای همین مستقیم نمی نویسم.سعی می کنم راهنمایی کنم
)
موفق باشیدLast edited by khakzad; 2013/12/23, 15:20.[CENTER][B][COLOR=#008000][SIZE=3]محصولات و جزوات آموزش تخصصی [URL="https://excelpedia.net/"]اکسل[/URL] در:
[URL="https://excelpedia.net/category/excel-functions/"]برترین مرجع تخصصی پارسی اکسل[/URL]
[URL="http://www.exceliran.com/shop/"]جامعه اكسل ايرانيان: فروشگاه[/URL][/SIZE][/COLOR][/B]
:wcom:
[B][URL="https://excelpedia.net/"]آموزش اکسل تخصصی[/URL] و [URL="https://excelpedia.net/excel-ninja/"]پیشرفته[/URL] - [URL="https://excelpedia.net/"]تهران[/URL][/B]
[EMAIL="h.khakzad@yahoo.com"]h.khakzad@yahoo.com[/EMAIL]
[/CENTER]کامنت




کامنت