Macro e Procedure varie riferite alle Celle
=> Trovare la prima cella vuota
Codice:
Sub cellaV()
If Range("A1").Value = "" Then
Range("A1").Select
Else
If Range("A1").Value <> "" And Range("A2").Value = "" Then
Range("A2").Select
Else:
Worksheets("Foglio1").Range("A1").End(xlDown).Offset(1, 0).Select
End If
End If
End Sub
=> Identificare il tipo di dati contenuto nelle celle
Codice:
Public Sub IdentificaCel()
Dim RigheT As Long, conT As Long
conT = 1
Range("A1").Select
Selection.End(xlDown).Select
RigheT = Cells(Rows.count, 1).End(xlUp).Row + 1
While RigheT > conT
If Left(Cells(conT, 1).Formula, 1) = "=" Then
Cells(conT, 2).Value = "Formula: " & Cells(conT, 1).Formula
Else
If IsNumeric(Cells(conT, 1)) Then
Cells(conT, 2).Value = "Numerico"
Else
Cells(conT, 2).Value = "Testo"
End If
End If
conT = conT + 1
Wend
End Sub
=> Aggiunge del testo in una cella in cui è presente altro testo
Nota: Aggiunge il testo presente in una cella alle celle dell’intervallo
Codice:
Sub Testo()
Dim cel1 As String, cel2 As String, cel As Range, testo1 As String
Range("A1:A10").Select
testo1 = Range("B4").Value
Application.ScreenUpdating = False
cel1 = ActiveCell.Address
cel2 = ActiveCell.End(xlDown).Address
Range(cel1 & ":" & cel2).Select
For Each cel In Selection
cel.Value = cel.Value & " " & testo1
Next cel
Range(cel1).Select
End Sub
=> Selezionare un intervallo
Nota: Inserire nella finestrella di Input l’intervallo da selezionare, digita ad esempio C3:E10 oppure A1:C10,J9:J12
Codice:
Sub Selezionare()
Dim tit As String, Mess As String, cont As Variant
tit = "Forum di VBA per Excel"
Mess = "Digita l'intervallo di celle"
cont = Application.InputBox(Mess, tit)
Range(cont).Select
End Sub
=> Funzione somma in un range
Codice:
Sub Somma()
Set zona = Range([B3], [B3].End(xlDown))
[B3].End(xlDown).Select
ActiveCell.Offset(1, -1) = "Totale"
ActiveCell.Offset(1, 0) = WorksheetFunction.Sum(zona)
End Sub
=> Eseguire una macro quando la cella A10 è selezionata
Codice:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$10" Then pippo
End Sub
=> Allineamento contenuto delle celle
Codice:
ActiveCell.HorizontalAlignment = xlRight ' a destra
ActiveCell.HorizontalAlignment = xlLeft ' a sinistra
ActiveCell.HorizontalAlignment = xlCenter ' al centro
=> Inserire una formula nella cella
Note: Se viene usata la proprietà Formula, la formula deve esser in inglese, se invece si usa la
proprietà FormulaLocal, la formula deve essere nella lingua del vostro Excel. Autore : Tiziano Marmiroli
Codice:
Worksheets("Foglio1").Range("C3").Formula=("=SUM(A1:A10)")
'oppure
Worksheets("Foglio2").Range("C3").FormulaLocal=("=SOMMA(A1:A10)")
=> Far lampeggiare una cella
Codice:
Sub Lampeggiacella()
Const testo1 As String = "Lampeggio"
Dim i As Integer
For i = 1 To 10
Cells(1, 1) = testo1
Call Lamp_cell
Next i
End Sub
Private Sub Lamp_cell()
Dim n As Byte, Start As Variant
For n = 1 To 10
Start = Timer
Do While Timer < Start + 1 / 100
Loop
If n Mod 5 = 0 Then Cells(1, 1) = ""
Next n
End Sub
=> Sapere se le celle di una zona sono vuote
Codice:
Sub vuote1()
With [A1:A10]
n = Application.CountBlank(.Cells)
If .Cells.count = n Then
MsgBox "La cella e vuota"
ElseIf n = 0 Then
MsgBox "Le Celle sono piene"
Else
MsgBox "Solo alcune celle sono vuote"
End If
End With
End Sub
=> Trasformare la prima lettera in maiuscolo
Nota : Metodo per convertire la prima lettera di una frase in maiuscolo
Codice:
Sub Test1()
MsgBox Frase("benvenuto, al corso VBA")
End Sub
Public Function Frase(Stc As String)
Frase = UCase(Left(Stc, 1)) & Right(Stc, Len(Stc) - 1)
End Function