
Option Explicit
Sub compara()
Dim r As Range, riga As Long, colonna As Long, c1 As String, c2 As String
Dim t1 As Long
t1 = Timer
Set r = Nothing
For colonna = 1 To 26
For riga = 1 To 10000
c1 = Sheets("Foglio1").Cells(riga, colonna)
c2 = Sheets("Foglio2").Cells(riga, colonna)
If c1 <> c2 Then
If r Is Nothing Then
Set r = Sheets("Foglio1").Cells(riga, colonna)
Else
Set r = Union(r, Sheets("Foglio1").Cells(riga, colonna))
End If
End If
Next
Next
MsgBox "Finito. Tempo trascorso (in secondi): " & Timer - t1
If Not (r Is Nothing) Then
MsgBox "Ci sono celle che differiscono. Evidenzio le celle del Foglio1 che risultano diverse."
r.Select
Else
MsgBox "Controllo completato. Nessuna differenza rilevata tra Foglio1 e Foglio2."
End If
End Sub
|
Option Explicit
Sub compara()
Dim r As Range, riga As Long, colonna As Long, c1 As String, c2 As String
Dim t1 As Long, diff As Boolean
t1 = Timer
diff = False
Set r = Nothing
For colonna = 1 To 26
For riga = 1 To 10000
c1 = Sheets("Foglio1").Cells(riga, colonna)
c2 = Sheets("Foglio2").Cells(riga, colonna)
If c1 <> c2 Then
diff = True
GoTo exit_here
End If
Next
Next
exit_here:
MsgBox "Finito. Tempo trascorso (in secondi): " & Timer - t1
If diff Then
MsgBox "Ci sono celle che differiscono. "
Else
MsgBox "Controllo completato. Nessuna differenza rilevata tra Foglio1 e Foglio2."
End If
End Sub |
...
exit_here:
If diff Then
Range("A1") = OK"
Else
Range("A1") ="AGGIORNA"
End If
End Sub |
'e quindi nel tuo caso per confrontare lo sheet attivo con il precedente, 'a condizione che il foglio attivo NON sia il primo: c1 = ActiveSheet.Cells(riga, colonna) c2 = sheets(activesheet.index-1).Cells(riga, colonna) |
Option Explicit
Sub compara()
Dim r As Range, riga As Long, colonna As Long, c1 As String, c2 As String
Dim range1 As Range, range2 As Range
Dim ci_sono_differenze As Boolean
ci_sono_differenze = False
Set r = Nothing
Set range1 = ActiveSheet.Range("K2:R5")
Set range2 = Sheets(ActiveSheet.Index - 1).Range("B2:I5")
For colonna = 1 To range1.Columns.Count
For riga = 1 To range1.Rows.Count
c1 = range1.Cells(riga, colonna)
c2 = range2.Cells(riga, colonna)
If c1 <> c2 Then
ci_sono_differenze = True
GoTo exit_here
End If
Next
Next
exit_here:
If ci_sono_differenze Then
ActiveSheet.Range("S10") = "AGGIORNARE"
Else
ActiveSheet.Range("S10") = "OK"
End If
End Sub |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Sub prova2()
Dim rngA As Range
Dim rngB As Range
Dim sAddrA As String
Dim sAddrB As String
Dim nStart As Single
nStart = Timer
Set rngA = Foglio1.Range("H1:J450000")
Set rngB = Foglio2.Range("A1:C450000")
sAddrA = rngA.Address(external:=1)
sAddrB = rngB.Address(external:=1)
If Evaluate("min(--(" & sAddrA & " = " & sAddrB & "))") Then
MsgBox "le celle sono uguali" & vbCrLf & Timer - nStart
Else
MsgBox "le celle NON sono uguali" & vbCrLf & Timer - nStart
End If
Set rngA = Nothing
Set rngB = Nothing
End Sub
|
'Esempio di Function da inserire in un Modulo.
'(esempio banale ma è... un esempio ^_^)
'questa è la firma della function "quante_celle_in_range"
'accetta un parametro di tipo range
'restituisce il numero di celle di cui il range è composto
'si usa nel foglio di lavoro come una normale formula:
'in A1: =quante_celle_in_range(B1:C10) ---> 20
Function quante_celle_in_range(rng as range) as integer
dim conteggio as integer
conteggio = rng.cells.count
quante_celle_in_range = conteggio
end function |
Public Function pigreco() as Double |
Public Function pigreco() as Double |
Public Sub prova() |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
| scossa's web site |
| Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
Option Explicit
Private Sub Worksheet_Activate()
'se è una subroutine:
mia_sub
'oppure:
'call mia_sub
'se è una function:
(nb! se usi option explicit, dichiarare x a inizio sub mediante dim x as ...)
'x = mia_func()
End Sub |
