Workbook Data Into One Single Sheet,Sort Alphabetically ,Row column height width manipulation -MS Excel
Workbook Data Into One Single Sheet using MS Excel
If you have 10 workbook each workbook have single sheet of data (tab name should be anything)
if you need consolidation sheet into all 10 workbook into one then you can do this with code use below mention code and your work will done .
To Sort Alphabetically in Tab Order for Worksheets in Excel you can try following vba code in your macro code editor.
Row column height width manipulation in Excel by macro code
Row column height width manipulation in Excel by macro code you can take help by following code
Support function in excel micro
If you have 10 workbook each workbook have single sheet of data (tab name should be anything)
if you need consolidation sheet into all 10 workbook into one then you can do this with code use below mention code and your work will done .
Sub test()
Dim FS, Fle, FLDR, fles
Dim Fletype As Variant
Set FS = CreateObject("scripting.filesystemobject" ;)
Dim intLstrow As Integer
Dim intLstcol As Integer
Dim dlgDialoge As FileDialog
Dim srcsheet As Worksheet
Dim wk As Workbook
'Set dlgDialoge = Application.FileDialog(msoFileDialogFolderPicker)
Set wk = ThisWorkbook
Set FLDR = FS.getfolder(BrowseFolder)
Set fles = FLDR.Files
For Each Fle In fles
Fletype = Split(Fle.Name, ".")
If (Fletype(UBound(Fletype)) = "xls" Or Fletype(UBound(Fletype)) =
"xlsx") Then
Set srcsheet = Workbooks.Open(Fle.path).Worksheets(1)
intLstrow = srcsheet.Range("a" &
Application.Rows.Count).End(xlUp).Row
intLstcol = srcsheet.Range("a" &
Application.Columns.Count).End(xlUp).Column
srcsheet.Range((Cells(1, 1)), Cells(intLstrow,
intLstcol)).Copy
wk.Worksheets("BrowseFileFolders").Range ("a" &
wk.Worksheets("BrowseFileFolders").Range ("a" &
Application.Rows.Count).End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues
srcsheet.Parent.Close
End If
Next
End Sub
Public Function BrowseFolder(Optional initialPath As String = "") As String
Dim dialog As FileDialog
Set dialog = Application.FileDialog(msoFileDialogFolderPicker)
dialog.InitialFileName = initialPath
dialog.Show
If dialog.SelectedItems.Count > 0 Then
BrowseFolder = dialog.SelectedItems(1)
End If
End Function
Sort Alphabetically in Tab Order for WorksheetsTo Sort Alphabetically in Tab Order for Worksheets in Excel you can try following vba code in your macro code editor.
Dim nameOfSheet As String
Dim newNameOfSheet As String
Dim haveName As Boolean
Dim extension As Integer
haveName = False
Do While (Not haveName)
nameOfSheet = InputBox("Enter a sheet name")
If checksheet(nameOfSheet) Then
extension = 0
If MsgBox("That name is already in use. Do you want a duplicate name?", vbYesNo) Then
Do While (Not haveName)
newNameOfSheet = nameOfSheet & " (" & extension & ")"
If checksheet(newNameOfSheet) Then
extension = extension + 1
Else
haveName = True
End If
Loop
End If
Else
haveName = True
End If
Loop
Row column height width manipulation in Excel by macro code
Row column height width manipulation in Excel by macro code you can take help by following code
Dim wb As Workbook
Dim ws As Worksheet
Dim c As Range
Dim r As Range
Dim strDescription As String
' Suppress screen updating
Application.ScreenUpdating = False
' Set workbook object
Set wb = Excel.ActiveWorkbook
' Set worksheet object
Set ws = wb.ActiveSheet
' Loop through each row
For Each r In ws.Rows.Range("1:" & xlLastCell)
' Concatenate values from cells C-L into cell M
strDescription = ""
For Each c In ws.Range("C" & r.Row & ":" & "L" & r.Row)
strDescription = strDescription + c.Value
Next c
ws.Range("M" & r.Row).Value = strDescription
Next r
' Format column M
With ws.Range("M:M")
.ColumnWidth = "60"
.WrapText = True
End With
' Clear values in columns C-L
With ws.Range("C:L")
.ColumnWidth = "1"
.WrapText = False
.Value = ""
End With
Support function in excel micro
Function ColumnRange(ByVal Filename As String, ByVal Rangehead As String) As String
Dim r As Range
Dim ic As Integer
Dim rt As String
Dim CN As String
Set r = Worksheets(Filename).Range("A1:" & LastCol(Filename) & "1")
For i = 1 To r.Count
If Rangehead = r(1, i) Then
ic = i
i = r.Count
End If
Next
If ic = 0 Then
rt = ""
Else
CN = ConvertToLetter(ic)
rt = CN & "2:" & CN & LastRow(Filename)
End If
ColumnRange = rt
End Function
Function ColumnAddress(ByVal Filename As String, ByVal Rangehead As String) As String
Dim r As Range
Dim ic As Integer
Dim rt As String
Set r = Worksheets(Filename).Range("A1:" & LastCol(Filename) & "1")
For i = 1 To r.Count
If Rangehead = r(1, i) Then
ic = i
i = r.Count
End If
Next
If ic = 0 Then
rt = ""
Else
rt = ConvertToLetter(ic)
End If
ColumnAddress = rt
End Function
Function SVlookup(ByVal destflnm As String, ByVal DestRg As String, ByVal srcflnm As String, ByVal SrcRg As String) As String
Dim RgVal As Range
'Set Value Range using filename and cell range
Set RgVal = Worksheets(destflnm).Range(DestRg)
Dim RgVlookup As Range
'Set Value Range using filename and cell range
Set RgVlookup = Worksheets(srcflnm).Range(SrcRg)
'return lookup value
SVlookup = WorksheetFunction.VLookup(RgVal, RgVlookup, 2, False)
End Function
Function secondarySVlookup(ByVal destflnm As String, ByVal primaryRG As String, ByVal secondaryRG As String, ByVal srcflnm As String) As String
Dim Rg As Range
'Set Detection range
Set Rg = Worksheets(srcflnm).Range("$A$2:$" & LastCol(srcflnm) & LastRow(srcflnm))
Dim RgPrimary As Range
'Set Primary Column Range
Set RgPrimary = Worksheets(destflnm).Range(primaryRG)
Dim RgSecondary As Range
'Set Secondary ID Range
Set RgSecondary = Worksheets(destflnm).Range(secondaryRG)
'set return string
Dim rtnstr As String
rtnstr = ""
'check each row in source worksheet
For q = 1 To LastRow(srcflnm) + 1
'if Primary Value and Secondary Value matched break
If (Rg(q, 1) = RgPrimary(1, 1) And Rg(q, 2) = RgSecondary(1, 1)) Then
'Put Value achived in return string
rtnstr = Rg(q, 3)
'break search
q = LastRow(srcflnm) + 1
End If
Next q
secondarySVlookup = rtnstr
End Function
Function LastRow(ByVal Filename As String) As Long
Dim ix As Long
ix = Worksheets(Filename).UsedRange.Row - 1 + Worksheets(Filename).UsedRange.Rows.Count
' ix = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
LastRow = ix
End Function
Function LastCol(ByVal Filename As String) As String
Dim ix As Integer
ix = Worksheets(Filename).UsedRange.Column - 1 + Worksheets(Filename).UsedRange.Columns.Count
LastCol = ConvertToLetter(ix)
End Function