نمایش نتایج: از شماره 1 تا 3 , از مجموع 3

موضوع: تغییر سطر به ستون با vba

  1. #1


    آخرین بازدید
    2023/01/18
    تاریخ عضویت
    November 2016
    نوشته ها
    31
    امتیاز
    12
    سپاس
    35
    سپاس شده
    2 در 2 پست
    تعیین سطح نشده است

    Icon16 تغییر سطر به ستون با vba

    با سلام

    سوالی رو در قسمت پرسش و پاسخ مطرح کردم.
    دوستان گفتند که با vba میشه انجامش داد.
    جدولی دارم که در ستون ها سال و روز قرار گرفته و در سطر اسامی ماه ها.(فایل پیوست)
    در حال حاضر سال و روز در ستون هستند و ماه در سطر ... مثلا روز اول سال 135152 فقط در ماه خرداد مقدار داره ولی در روز دوم همون سال در ماه های فروردین و اسفند داده داره.

    می خوام اسامی ماه ها رو هم در ستون ها داشته باشم، یعنی گزارش گیری به این صورت باشه که هم سال هم ماه و هم روز در ستون ها قرار بگیرند و مقدار هم روبه روشون باشه. ولی برای انجام این کار جدول به کلی تغییر خواهد کرد.(چون اسامی ماه ها و روزها و سال ها تکرار بیشتری پیدا می کنند.)

    میشه دوستی لطف کنه و کدی بنویسیه که این کار رو انجام بده؟

    اخطار: این یک موضوع قدیمی است
    به دلیل قدیمی بودن موضوع، ممکن است برخی فایل های ضمیمه به درستی کار نکنند. لطفا در صورت عدم ضرورت، از بالا آوردن موضوعات قدیمی خودداری نمایید.
    فايل هاي پيوست شده فايل هاي پيوست شده
    • نوع فایل: xlsx exp2.xlsx اطلاعات (35.1 کیلو بایت, 10 نمایش)
    پاسخ مورد نظر براي اين تاپيك ارسال شده است.
    ویرایش توسط Cookie : 2017/04/14 در ساعت 12:47

  2.  

  3. #2


    آخرین بازدید
    2023/12/18
    تاریخ عضویت
    August 2014
    نوشته ها
    524
    امتیاز
    504
    سپاس
    1
    سپاس شده
    468 در 301 پست
    سطح اکسل
    94.67 %

    سلام
    کد زیر رو در یک Module کپی و اجرا کنید!

    چک کنید اطلاع بدید!

    کد:
    Sub hey_you()
    Application.ScreenUpdating = False
    Dim N As Integer
    
    ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)
    N = Sheets.Count
    cnt = 1
    For i = 2 To Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
        For m = 3 To 14
            If Application.WorksheetFunction.Count(Sheets(1).Range("C" & i & ":N" & i)) = 0 Then
                Sheets(N).Range("A" & cnt).Value = Sheets(1).Cells(i, 1)
                Sheets(N).Range("B" & cnt).Value = Sheets(1).Cells(i, 2)
                cnt = cnt + 1
            ElseIf Sheets(1).Cells(i, m) <> "" Then
                Sheets(N).Range("A" & cnt).Value = Sheets(1).Cells(i, 1)
                Sheets(N).Range("B" & cnt).Value = Sheets(1).Cells(i, 2)
                Sheets(N).Range("C" & cnt).Value = Sheets(1).Cells(i, m)
                Sheets(N).Range("D" & cnt).Value = Sheets(1).Cells(1, m)
                cnt = cnt + 1
            End If
        Next m
    Next
    
    Application.ScreenUpdating = True
    
    End Sub
    بخش امضاء :

    کد:
    Sub Macro()
    ActiveCell = "IY" & Right(Application.Name, 5)
    With ActiveCell.Characters(Start:=2, Length:=1).Font
    .Name = "Webdings"
    .Color = 255
    End With
    End Sub

  4. سپاس ها (1)


  5. #3


    آخرین بازدید
    2023/01/18
    تاریخ عضویت
    November 2016
    نوشته ها
    31
    امتیاز
    12
    سپاس
    35
    سپاس شده
    2 در 2 پست
    تعیین سطح نشده است

    نقل قول نوشته اصلی توسط rahi_feri نمایش پست ها
    سلام
    کد زیر رو در یک Module کپی و اجرا کنید!

    چک کنید اطلاع بدید!

    کد:
    Sub hey_you()
    Application.ScreenUpdating = False
    Dim N As Integer
    
    ActiveWorkbook.Sheets.Add after:=Sheets(Sheets.Count)
    N = Sheets.Count
    cnt = 1
    For i = 2 To Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row
        For m = 3 To 14
            If Application.WorksheetFunction.Count(Sheets(1).Range("C" & i & ":N" & i)) = 0 Then
                Sheets(N).Range("A" & cnt).Value = Sheets(1).Cells(i, 1)
                Sheets(N).Range("B" & cnt).Value = Sheets(1).Cells(i, 2)
                cnt = cnt + 1
            ElseIf Sheets(1).Cells(i, m) <> "" Then
                Sheets(N).Range("A" & cnt).Value = Sheets(1).Cells(i, 1)
                Sheets(N).Range("B" & cnt).Value = Sheets(1).Cells(i, 2)
                Sheets(N).Range("C" & cnt).Value = Sheets(1).Cells(i, m)
                Sheets(N).Range("D" & cnt).Value = Sheets(1).Cells(1, m)
                cnt = cnt + 1
            End If
        Next m
    Next
    
    Application.ScreenUpdating = True
    
    End Sub
    سلام ..
    عالیییی، دقیقا همون که میخواستم ..
    خیلی خیلی ممنون ..🌹🌹🌹


اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. تغییر ادرس با اضافه شدن سطر یا ستون
    توسط Mohammad Acc در انجمن سوالات پیرامون ويژوال بيسيك - VBA Questions
    پاسخ ها: 0
    آخرين نوشته: 2016/12/11, 00:30
  2. پاسخ ها: 3
    آخرين نوشته: 2015/11/08, 12:05
  3. تغییر خودکار ضریب ستون ها با تغییر دادن لیست ...
    توسط shahab47 در انجمن سوالات اكسل - Excel Questions
    پاسخ ها: 5
    آخرين نوشته: 2015/07/21, 21:23
  4. تغییر درصدی داده های یک ستون
    توسط lejeuner در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 8
    آخرين نوشته: 2015/03/22, 12:17
  5. چگونگی تغییر ستون های اکسل به ستون دیگر ؟؟؟
    توسط infojob در انجمن توابع اکسل - Excel Functions
    پاسخ ها: 2
    آخرين نوشته: 2014/09/22, 06:17

بازدید کنندگان با جستجو های زیر این صفحه را پیدا کرده اند

انجمن اكسل ايران , اكسل , اكسس , سوال و جواب اكسل , سوال اكسس , انجمن اكسل ايران , توابع اكسل, آموزش اكسل, آموزش اكسس, VBA, ويژوال بيسيك

علاقه مندی ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  
  • BB code ها فعال هستند
  • شکلک ها فعال هستند
  • کد [IMG] فعال است
  • کد [VIDEO] فعال است
  • کد HTML غیر فعال است