Moderatori: Anthony47, Flash30005
FName = Application.GetOpenFilename("Excel Files (*.xls*),*.xls*", , "Seleziona il file")
Private Sub ListSheets(WBName As String)
Dim CN As Object 'ADODB.Connection '<=======
Dim RS As Object ' ADODB.Recordset
Dim TableName As String
Set CN = CreateObject("ADODB.Connection")
With CN
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & WBName & ";" & _
"Extended Properties=""Excel 8.0;"""
.Open
Set RS = .OpenSchema(20) 'adSchemaTables
End With
Me.lbxSheets.Clear
Do While Not RS.EOF
TableName = RS.Fields("table_name").Value
If Right$(TableName, 1) = "$" Then
Me.lbxSheets.AddItem Left(TableName, Len(TableName) - 1)
End If
RS.MoveNext
Loop
RS.Close
CN.Close
End Sub
Option Explicit
Private Sub btnBrowse1_Click()
Dim FName1 As Variant
FName1 = Application.GetOpenFilename("Excel Files (*.xls),*.xls")
If FName1 = False Then
Exit Sub
End If
Me.tbxWorkbook1.Text = FName1
ListSheets1 CStr(FName1)
End Sub
Private Sub ListSheets1(WBName1 As String)
Dim CN As Object 'ADODB.Connection '<=======
Dim RS As Object ' ADODB.Recordset
Dim TableName1 As String
Set CN = CreateObject("ADODB.Connection")
With CN
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & WBName1 & ";" & _
"Extended Properties=""Excel 8.0;"""
.Open
Set RS = .OpenSchema(20) 'adSchemaTables
End With
Me.lbxSheets1.Clear
Do While Not RS.EOF
TableName1 = RS.Fields("table_name").Value
If Right$(TableName1, 1) = "$" Then
Me.lbxSheets1.AddItem Left(TableName1, Len(TableName1) - 1)
End If
RS.MoveNext
Loop
RS.Close
CN.Close
End Sub
'------------------------ Seconda finestra
Private Sub btnBrowse2_Click()
Dim FName2 As Variant
FName2 = Application.GetOpenFilename("Excel Files (*.xls),*.xls")
If FName2 = False Then
Exit Sub
End If
Me.tbxWorkbook2.Text = FName2
ListSheets2 CStr(FName2)
End Sub
Private Sub ListSheets2(WBName2 As String)
Dim CN As Object 'ADODB.Connection '<=======
Dim RS As Object ' ADODB.Recordset
Dim TableName2 As String
Set CN = CreateObject("ADODB.Connection")
With CN
.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & WBName2 & ";" & _
"Extended Properties=""Excel 8.0;"""
.Open
Set RS = .OpenSchema(20) 'adSchemaTables
End With
Me.lbxSheets2.Clear
Do While Not RS.EOF
TableName2 = RS.Fields("table_name").Value
If Right$(TableName2, 1) = "$" Then
Me.lbxSheets2.AddItem Left(TableName2, Len(TableName2) - 1)
End If
RS.MoveNext
Loop
RS.Close
CN.Close
End Sub
Private Sub btnCopySheet_Click()
Dim WB As Workbook
Dim WS As Worksheet
'<==== Prima copia
If Me.lbxSheets1.Value = vbNullString Or Me.lbxSheets2.Value = vbNullString Then
MsgBox ("Devi effettuare tutte le scelte necessarie")
Exit Sub
End If
Application.ScreenUpdating = False
Set WB = Application.Workbooks.Open(Me.tbxWorkbook1.Text)
Set WS = WB.Worksheets(Me.lbxSheets1.Value)
With ThisWorkbook.Worksheets
WS.Copy before:=Workbooks("Cartel1.xlsx").Sheets("Foglio1")
ActiveSheet.Name = "Archivio"
End With
WB.Close savechanges:=False
'<==== Seconda copia
If Me.lbxSheets2.Value = vbNullString Then
Exit Sub
End If
Application.ScreenUpdating = False
Set WB = Application.Workbooks.Open(Me.tbxWorkbook2.Text)
Set WS = WB.Worksheets(Me.lbxSheets2.Value)
With ThisWorkbook.Worksheets
WS.Copy after:=Workbooks("Cartel1.xlsx").Sheets("Archivio")
ActiveSheet.Name = "Nuovo"
End With
WB.Close savechanges:=False
'-------------------------------------
Application.ScreenUpdating = True
Unload Me
End Sub
Private Sub btnClose_Click()
Unload Me
End Sub
Come sempre sicuramente migliorabile ,come per esempio poter scegliere piu tipi di estensioni contemporaneamente (.xls - .xlsx - etc etc etc .)
FName = Application.GetOpenFilename("Excel Files (*.xls*),*.xls*", , "Seleziona il file")
Torna a Applicazioni Office Windows
Errore durante la riduzione a icona delle finestre durante l Autore: johnhartman |
Forum: Software Windows Risposte: 1 |
Errore 1004 su macro salva file come mht - mhtml Autore: systemcrack |
Forum: Applicazioni Office Windows Risposte: 4 |
Visitano il forum: Nessuno e 35 ospiti