I run following code on my machine, which runs perfectly. Although an another machine i get following error:
Runtime error 1004 - Excel cannot insert the sheets into the destination workbook, because it contains fewer rows and columns than the source workbook.
can someone help out? has this to do with language settings of pc/excel???
Here's my code
Private Sub CommandButton10_Click()
Dim workbookTarget As Workbook
Dim MappingData As Worksheet
Dim importWB As Workbook
Dim xlsname
Dim csvName
Dim sheetname As String
Dim suggest_sheet_name As String
Dim cl As Range
Dim fileName As String
Dim MaxCols As Integer
' save as csv Dim wbkExport As Workbook
' save as csv Dim shtToExport As Worksheet
If Not IsNull(ListBox1.Value) Then
Set workbookTarget = Application.Workbooks(ListBox1.Value)
' toolWB.Worksheets("Start").Cells(17, 3).Value = ListBox1.Value
toolWB.Sheets("FlatReportTemplate").Copy after:=workbookTarget.Sheets(workbookTarget.Sheets.Count)
workbookTarget.Colors = toolWB.Colors
sheetname = InputBox("Enter sheetname :", sheetname, suggest_sheet_name)
For Each sht In workbookTarget.Sheets
Debug.Print sht.CodeName
Next
If sheetname <> "" Then
workbookTarget.Sheets("FlatReportTemplate").Name = sheetname
ElseIf suggest_sheet_name <> "" Then
workbookTarget.Sheets("FlatReportTemplate").Name = suggest_sheet_name
Else
workbookTarget.Sheets("FlatReportTemplate").Name = "RenameSheet"
End If
Else
Unload Me
End If
For Each ws In workbookTarget.Worksheets
'Step 3: Check each worksheet name
If ws.Name <> workbookTarget.ActiveSheet.Name Then
'Step 4: Turn off warnings and delete
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next ws
'copy data into new/existing workbook
With toolWB.Sheets("MappingData")
LastRowA = .Range("A" & .Rows.Count).End(xlUp).Row
End With
toolWB.Sheets("MappingData").Range("AI2:AI" & LastRowA).EntireColumn.AutoFit
'toolWB.Sheets("MappingData").Range("AI2:AI" & LastRowA).NumberFormat = "'#"
toolWB.Sheets("MappingData").Range("AI2:AI" & LastRowA).NumberFormat = "@"
toolWB.Sheets("MappingData").Range("AI2:AI" & LastRowA).ColumnWidth = 50
toolWB.Sheets("MappingData").Range("C2:C" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("A2:A" & LastRowA)
toolWB.Sheets("MappingData").Range("E2:E" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("B2:B" & LastRowA)
toolWB.Sheets("MappingData").Range("F2:F" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("C2:C" & LastRowA)
toolWB.Sheets("MappingData").Range("H2:H" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("D2:D" & LastRowA)
toolWB.Sheets("MappingData").Range("H2:H" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("E2:E" & LastRowA)
toolWB.Sheets("MappingData").Range("K2:K" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("F2:F" & LastRowA)
toolWB.Sheets("MappingData").Range("J2:J" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("G2:G" & LastRowA)
toolWB.Sheets("MappingData").Range("AJ2:AJ" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("H2:H" & LastRowA)
toolWB.Sheets("MappingData").Range("Q2:Q" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("I2:I" & LastRowA)
toolWB.Sheets("MappingData").Range("AD2:AD" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("J2:J" & LastRowA)
toolWB.Sheets("MappingData").Range("S2:S" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("K2:K" & LastRowA)
toolWB.Sheets("MappingData").Range("U2:U" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("L2:L" & LastRowA)
toolWB.Sheets("MappingData").Range("V2:V" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("M2:M" & LastRowA)
toolWB.Sheets("MappingData").Range("Y2:Y" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("N2:N" & LastRowA)
toolWB.Sheets("MappingData").Range("Z2:Z" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("O2:O" & LastRowA)
toolWB.Sheets("MappingData").Range("AG2:AG" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("P2:P" & LastRowA)
toolWB.Sheets("MappingData").Range("AH2:AH" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("Q2:Q" & LastRowA)
toolWB.Sheets("MappingData").Range("AA2:AA" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("R2:R" & LastRowA)
toolWB.Sheets("MappingData").Range("AI2:AI" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("S2:S" & LastRowA)
toolWB.Sheets("MappingData").Range("W2:W" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("T2:T" & LastRowA)
toolWB.Sheets("MappingData").Range("X2:X" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("U2:U" & LastRowA)
toolWB.Sheets("MappingData").Range("AC2:AC" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("V2:V" & LastRowA)
toolWB.Sheets("MappingData").Range("AU2:AU" & LastRowA).Copy Destination:=workbookTarget.Sheets(sheetname).Range("W2:W" & LastRowA)
ActiveSheet.Range("S2:S" & LastRowA).EntireColumn.AutoFit
'ActiveSheet.Range("S2:S" & LastRowA).NumberFormat = "'#"
ActiveSheet.Range("S2:S" & LastRowA).NumberFormat = "@"
ActiveSheet.Range("S2:S" & LastRowA).ColumnWidth = 50
ActiveSheet.UsedRange.Replace what:=",", replacement:=" -", Lookat:=xlPart
For Each cl In ActiveSheet.UsedRange
cl.Value = Application.Clean(cl.Value)
Next
Rows(1).EntireRow.Delete
'Option Explicit
' Save as XLSX
xlsname = Application.GetSaveAsFilename & "xlsx"
Application.DisplayAlerts = False
Application.DisplayAlerts = True
ActiveWorkbook.SaveAs fileName:=xlsname, FileFormat:=xlOpenXMLWorkbook, ConflictResolution:=xlLocalSessionChanges
ActiveWorkbook.Save
'Save as CSV
'ActiveWorkbook.SaveAs fileName:=csvName, FileFormat:=42, ConflictResolution:=xlLocalSessionChanges
Set wkb = ActiveSheet
'csvName = Application.GetSaveAsFilename("", "CSV File (*.csv), *.csv")
fileName1 = Left(xlsname, InStr(1, xlsname, ".")) & "csv" ' ("", "CSV File (*.csv), *.csv")
If fileName1 = "False" Then
End
End If
Const adTypeText = 2
Const adSaveCreateOverWrite = 2
Const adTypeBinary = 1
Dim BinaryStream
Dim BinaryStreamNoBOM
Set BinaryStream = CreateObject("ADODB.Stream")
Set BinaryStreamNoBOM = CreateObject("ADODB.Stream")
BinaryStream.Charset = "UTF-8"
BinaryStream.Type = adTypeText
BinaryStream.Open
For r = 1 To wkb.UsedRange.Rows.Count
S = ""
sep = ""
For c = 1 To wkb.UsedRange.Columns.Count
S = S + sep
sep = ","
If Not IsEmpty(wkb.Cells(r, c).Value) Then
S = S & "" & wkb.Cells(r, c).Value & ""
End If
Next
BinaryStream.WriteText S, 1
Next r
BinaryStream.Position = 3 'skip BOM
With BinaryStreamNoBOM
.Type = adTypeBinary
.Open
BinaryStream.CopyTo BinaryStreamNoBOM
.SaveToFile fileName1, adSaveCreateOverWrite
.Close
End With
BinaryStream.Close
ActiveWorkbook.Close
MsgBox "export file .xls & .csv generated successfully"
Unload Me
End Sub
Bookmarks