تفکیک نفرات بر اساس نام شهر

Collapse
این تاپیک قفل است.
X
X
 
  • زمان
  • نمایش
حذف همه
new posts
  • parsaparsnejad
    • 2012/04/17
    • 4

    [حل شده] تفکیک نفرات بر اساس نام شهر

    با سلام
    جدولی شامل لیست اشخاص و شهری که در آن هستند داریم، میخواهم برای هر شهر شیت جداگانه ای بسازم و اسامی مربوط به آن شهر را در آن لیست کنم. چگونه میتوان این کار را انجام داد؟
  • Amir Ghasemiyan

    • 2013/09/20
    • 4598
    • 100.00

    #2
    نوشته اصلی توسط parsaparsnejad
    با سلام
    جدولی شامل لیست اشخاص و شهری که در آن هستند داریم، میخواهم برای هر شهر شیت جداگانه ای بسازم و اسامی مربوط به آن شهر را در آن لیست کنم. چگونه میتوان این کار را انجام داد؟
    سلام دوست عزیز
    دیتابیستون (جدولتون) رو فیلتر کنین. بعد تو هر بار فیلتر کردن یکی از شهر ها رو انتخاب کنین. حالا محدوده فیلتر شده رو انتخاب کنین و کپی کنین ببرین تو شیت دلخواهتون پیست کنین
    اگر بخواین میشه با کدنویسی هم اینکار رو کرد ولی اگه تعداد شهرهاتون زیاد نیست همین روشی که گفتم رو انجام بدین

    کامنت

    • parsaparsnejad
      • 2012/04/17
      • 4

      #3
      مشکل اینجاست که لیست اصلی مدام آپدیت میشه و باید شیتها آپدیت باشه

      کامنت

      • amir_ts

        • 2015/03/17
        • 1247

        #4
        با سلام
        چنانچه نمونه فابل اصلی رو قرار بدید سریعتر به نتیجه میرسید.
        [SIZE=7][B][COLOR=navy][FONT=IranNastaliq]ای برادر تو همه اندیشه ای[/FONT][/COLOR][/B][/SIZE]

        کامنت

        • Amir Ghasemiyan

          • 2013/09/20
          • 4598
          • 100.00

          #5
          نوشته اصلی توسط parsaparsnejad
          مشکل اینجاست که لیست اصلی مدام آپدیت میشه و باید شیتها آپدیت باشه
          لیست چطوری آپدیت میشه؟ ینی از جایی دیتاها فراخوانی میشه؟ مثلا از اینترنت. یا اینکه مثلا داده ها هر روز دستی به لیست اضافه میشن؟

          کامنت

          • iranweld

            • 2015/03/29
            • 3341

            #6
            اولین خواسته شما ایجاد شیت بر اساس نام شهر

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

            کد PHP:
            Private Sub CommandButton1_Click()

            Application.ScreenUpdating False

            Dim i
            Z1 As IntegerblnFound As Booleanxx As String

            Dim list1 
            As New Collection

            Set list1 
            Nothing

            Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row

            On Error Resume Next


            For 2 To y

            xx 
            Range("A" i)

            If 
            Len(xx) > 0 Then

            list1
            .Add xxCStr(xx)

            End If

            Next
             
                 
                With ThisWorkbook
                
                 
            For 1 To list1.Count
                 
                 blnFound 
            False
                 
                    
            For 1 To .Sheets.Count
                  
                        
            If .Sheets(i).Name list1.Item(jThen
                        
                            blnFound 
            True
                           
                        Sheets
            (i).Move Before:=Sheets(1)
                        
            End If
                        
                    
            Next i
                    
                    
                    
            If blnFound False Then
                    
                        
            .Sheets.Add after:=Sheets(Sheets.Count)
                        
            With ActiveSheet
                            
            .Name list1.Item(j)
                        
            End With
                        
                            End 
            If
                    
                    
            Next j
                    
                
                End With
                
                
            '===== sheets sort ==========='
                
                 
            With ThisWorkbook
                
                
            For 2 To .Sheets.Count
                
                
            For 1 To list1.Count
                  
                        
            If .Sheets(i).Name list1.Item(jThen
                        
                                           
                        Sheets
            (i).Move Before:=Sheets(1)
                        
                        
            End If
                        
                        
            Next j
                        
                    Next i
                    
                     End With
                     
              
            '===== sheets sort ==========='
              
              
              
            Application.ScreenUpdating True
                
                Sheet1
            .Select
                
                
                
            End Sub 
            فایل های پیوست شده
            Last edited by iranweld; 2016/07/31, 12:45.

            کامنت

            • parsaparsnejad
              • 2012/04/17
              • 4

              #7
              این فایل نمونه؛ البته اطلاعات نفرات بیشتر هست ولی شهرها ثابت هستند
              لیست نفرات بصورت سی دی به دست ما میرسه
              فایل های پیوست شده

              کامنت

              • iranweld

                • 2015/03/29
                • 3341

                #8
                با سلام

                فایل پیوست را ملاحظه کنید.


                کد PHP:
                Private Sub CommandButton1_Click()

                Application.ScreenUpdating False

                Dim i
                Z1 As IntegerblnFound As Booleanxx As String

                Dim list1 
                As New Collection

                Set list1 
                Nothing

                Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row

                On Error Resume Next


                For 2 To y

                xx 
                Range("C" i)

                If 
                Len(xx) > 0 Then

                list1
                .Add xxCStr(xx)

                End If

                Next
                 
                     
                    With ThisWorkbook
                    
                     
                For 1 To list1.Count
                     
                     blnFound 
                False
                     
                        
                For 1 To .Sheets.Count
                      
                            
                If .Sheets(i).Name list1.Item(JThen
                            
                                blnFound 
                True
                               
                            Sheets
                (i).Move Before:=Sheets(1)
                            
                End If
                            
                        
                Next i
                        
                        
                        
                If blnFound False Then
                        
                            
                .Sheets.Add after:=Sheets(Sheets.Count)
                            
                With ActiveSheet
                                
                .Name list1.Item(J)
                                
                               
                ActiveSheet.DisplayRightToLeft True
                               
                            End With
                            
                                End 
                If
                        
                        
                Next J
                        
                    
                    End With
                    
                    
                '===== sheets sort ==========='
                    
                     
                With ThisWorkbook
                    
                    
                For 1 To .Sheets.Count
                    
                    
                For 1 To list1.Count
                      
                            
                If .Sheets(i).Name list1.Item(JThen
                            
                                blnFound 
                True
                               
                            Sheets
                (i).Move Before:=Sheets(1)
                            
                            
                End If
                            
                            
                Next J
                            
                        Next i
                        
                         End With
                         
                  
                '===== sheets sort END ==========='
                  
                  
                  '==== DATA COPY TO SHEET ============='
                  
                    
                    
                Dim list2 As New Collection

                Sheet1.Cells(Sheet1.Rows.Count"A").End(xlUp).Row


                For 2 To Sheets.Count

                Set list2 
                Nothing

                For 2 To y

                xx 
                Range("C" i)

                If 
                xx Sheets(J).Name Then

                list2
                .Add Range("C" i).Row

                End 
                If

                Next

                2

                YY 
                Sheets(J).Name

                Range
                ("A1:C1").Copy Destination:=Sheets(YY).Range("A1")

                For 
                1 To list1.Count

                Range
                ("A" list2.Item(i) & ":C" list2.Item(i)).Copy Destination:=Sheets(YY).Range("A" K)


                1

                Next


                Next

                Sheet1
                .Select
                    
                   Application
                .ScreenUpdating True
                    
                End Sub 
                فایل های پیوست شده

                کامنت

                چند لحظه..