Hi preeti, This code covers your task, you can run it and enjoy. It was interesting problem to solve. Please tell us does it work for you.
Sub automate() Dim i, j, k, n, myfile, mySheet Call ListWorkSheetNames myfile = ActiveWorkbook.FullName Sheets("main sheet").Select Cells.Select Selection.ClearContents Range("A1").Select Sheets("SheetList").Select Range("A1").Select i = 1 Range("A1:A2").Select Range(Selection, Selection.End(xlDown)).Select j = Range(Selection, Selection.End(xlDown)).Count Range("A1").Select For i = 1 To j Worksheets("SheetList").Cells(i, 1).Select Worksheets("SheetList").Cells(i, 1).Activate If Not (ActiveCell.Value = "main sheet") Then If Not (ActiveCell.Value = "SheetList") Then mySheet = ActiveCell.Value Sheets(mySheet).Select Worksheets(mySheet).Cells(1, 1).Select Range("A1:B1").Select Range(Selection, Selection.End(xlToRight)).Select k = Range(Selection, Selection.End(xlToRight)).Count Range("A1").Select n = 1 While Not (n > k) Worksheets("main sheet").Cells(1, n).Value = Worksheets(mySheet).Cells(1, n).Value n = n + 1 Wend Call mysql(myfile, mySheet, k) End If End If Sheets("SheetList").Select Next i Sheets("SheetList").Select Application.DisplayAlerts = False ActiveWindow.SelectedSheets.Delete Application.DisplayAlerts = True Sheets("main sheet").Select MsgBox ("done!") End Sub Sub ListWorkSheetNames() Dim Sheetnames Sheetnames = Sheets.Count Sheets.Add ActiveSheet.Name = "SheetList" Sheets("SheetList").Move after:=Sheets(Sheetnames + 1) For i = 1 To Sheetnames Range("A" & i) = Sheets(i).Name Next i End Sub Sub mysql(myfile, mySheet, k) Dim m, h, d, r On Error Resume Next Const adOpenStatic = 3 Const adLockOptimistic = 3 Const adCmdText = &H1 Set objConnection = CreateObject("ADODB.Connection") Set objRecordset = CreateObject("ADODB.Recordset") objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & myfile & ";" & _ "Extended Properties=""Excel 8.0;HDR=Yes;"";" objRecordset.Open "Select distinct * FROM [" & mySheet & "$] ", _ objConnection, adOpenStatic, adLockOptimistic, adCmdText Do Until objRecordset.EOF d = 1 Sheets("main sheet").Select Range("A1").Select Range(Selection, Selection.End(xlDown)).Select r = Range(Selection, Selection.End(xlDown)).Count Range("A1").Select If (r = 65536) Then m = 2 Else m = r + 1 End If h = 1 While Not (d > k) ThisWorkbook.Sheets("main sheet").Cells(m, h).Value = objRecordset.Fields.Item(Worksheets("main sheet").Cells(1, d).Value) d = d + 1 h = h + 1 Wend objRecordset.MoveNext Loop End Sub On 21 Лип, 18:40, preeti vora <preeti86v...@gmail.com> wrote: > Hi team > > i have one excel file there is 10 to 15 sheet different but i want to marge > in one sheet is that possible to do??? > > -- > Regards, > > Preeti Vora. > > data.xls -- ---------------------------------------------------------------------------------- Some important links for excel users: 1. Follow us on TWITTER for tips tricks and links : http://twitter.com/exceldailytip 2. Join our LinkedIN group @ http://www.linkedin.com/groups?gid=1871310 3. Excel tutorials at http://www.excel-macros.blogspot.com 4. Learn VBA Macros at http://www.quickvba.blogspot.com 5. Excel Tips and Tricks at http://exceldailytip.blogspot.com To post to this group, send email to excel-macros@googlegroups.com <><><><><><><><><><><><><><><><><><><><><><> HELP US GROW !! We reach over 7000 subscribers worldwide and receive many nice notes about the learning and support from the group.Let friends and co-workers know they can subscribe to group at http://groups.google.com/group/excel-macros/subscribe