Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Germano2283,
Prova qualcosa del genere:
'========>>
Option Explicit
Dim Data As String
Dim company As String
Dim code As Variant
Dim destinatario As String
Dim via As String
Dim cap As String
Dim città As String
Dim stato As String
Dim ncolli As String
Dim peso As String
'vari bancali
Dim misure1 As String
Dim misure2 As String
Dim misure3 As String
Dim misure4 As String
Dim misure5 As String
Dim misure6 As String
Dim misure7 As String
Dim quantità1 As Long
Dim quantità2 As Long
Dim quantità3 As Long
Dim quantità4 As Long
Dim quantità5 As Long
Dim quantità6 As Long
Dim quantità7 As Long
Dim tipo_trasporto As String
Dim n_ordine As Long
Dim compilatore As String
Dim n_mandato As String
'-------->>
Public Sub Cattura()
Dim srcWB As Workbook
Dim srcSH As Worksheet
Set srcWB = ThisWorkbook
Set srcSH = srcWB.Sheets(1)
With srcSH
Data = .Range("c18").Value
company = .Range("c15").Value
destinatario = .Range("d32").Value
code = .Range("h31").Value
via = .Range("c33").Value
cap = .Range("d34").Value
città = .Range("h34").Value
stato = .Range("f35").Value
ncolli = .Range("c28").Value
peso = .Range("c30").Value
misure1 = .Range("c36").Value
misure2 = .Range("c37").Value
misure3 = .Range("c38").Value
misure4 = .Range("c39").Value
misure5 = .Range("c40").Value
misure6 = .Range("c41").Value
misure7 = .Range("c42").Value
quantità1 = .Range("d36").Value
quantità2 = .Range("d37").Value
quantità3 = .Range("d38").Value
quantità4 = .Range("d39").Value
quantità5 = .Range("d40").Value
quantità6 = .Range("d41").Value
quantità7 = .Range("d42").Value
tipo\_trasporto = .Range("c4").Value
n\_ordine = .Range("c3").Value
compilatore = .Range("c17").Value
n\_mandato = .Range("i4").Value + 1
End With
MsgBox ("Dati Catturati")
Call Trascivere\_Dati
End Sub
'-------->>
Public Sub Trascivere_Dati()
Dim destWB As Workbook
Dim destSH As Worksheet
Dim destRng As Range
Dim arrDati As Variant
Dim FD As FileDialog
Dim sFile As String
Dim LRow As Long
Const sColonne\_di\_Destinazione As String = "A:AD"
Set FD = Application.FileDialog(msoFileDialogFilePicker)
With FD
.Filters.Clear
.Filters.Add "Excel Files", "\*.xlsx?", 1
.Title = "Choose an Excel file"
.AllowMultiSelect = False
.InitialFileName = ThisWorkbook.Path
If .Show = True Then
sFile = .SelectedItems(1)
Else
Call MsgBox(Prompt:="Non hai selezionato il file di destinazione!", \_
Buttons:=vbCritical, \_
Title:="REPORT")
Exit Sub
End If
End With
Set destWB = Workbooks.Open(sFile)
Set destSH = destWB.Sheets(1)
With destSH
LRow = LastRow(destSH)
Set destRng = Intersect(.Range(sColonne\_di\_Destinazione), .Rows(LRow + 1))
End With
arrDati = VBA.Array(Data, company, destinatario, code, via, cap, città, stato, \_
ncolli, peso, misure1, misure2, misure3, misure4, misure5, misure6, misure7, \_
quantità1, quantità2, quantità3, quantità4, quantità5, quantità6, quantità7, \_
tipo\_trasporto, n\_ordine, compilatore, n\_mandato)
destRng.Value = arrDati
destWB.Close SaveChanges:=True
End Sub
'--------->>
Public Function LastRow(SH As Worksheet, _
Optional rng As Range, \_
Optional minRow As Long = 1)
If rng Is Nothing Then
Set rng = SH.Cells
End If
On Error Resume Next
LastRow = rng.Find(What:="\*", \_
After:=rng.Cells(1), \_
Lookat:=xlPart, \_
LookIn:=xlFormulas, \_
SearchOrder:=xlByRows, \_
SearchDirection:=xlPrevious, \_
MatchCase:=False).Row
On Error GoTo 0
If LastRow < minRow Then
LastRow = minRow
End If
End Function
'<<========
===
Regards,
Norman