Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao ad entrambi!
Grazie mille! Si, sembra funzionare.
Ora se volessi, però, fare questo check..questo controllo su diverse caselle spaiate? Devo fare un elenco infinito di ELSE IF ?
Scusate ma io di VBA proprio non so nulla. Avete da consigliarmi qualche guida di base per cominciare?
Non è così difficile. Sempre da copia/incollare nel modulo del foglio dove vuoi questa cosa:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range
On Error GoTo RigaErrore
Set rng = Me.Range("A1:A5,B5,C10,F4:F8")
If Not Intersect(Target, rng) Is Nothing Then
If Target.Cells.Count = 1 Then
Application.EnableEvents = False
If LCase(Target.Value) = "carlo" Then
Target.Value = "Carlo"
ElseIf LCase(Target.Value) = "cost." Then
Target.Value = "Costantino"
End If
End If
End If
RigaChiusura:
Set rng = Nothing
Application.EnableEvents = True
Exit Sub
RigaErrore:
Resume RigaChiusura
End Sub
Concentrati, per favore, su questa riga di codice:
Set rng = Me.Range("A1:A5,B5,C10,F4:F8")
che è la riga che determina su quali celle andrai ad applicare quanto richiesto. I riferimenti ai Range da controllare sono all'interno delle parentesi, racchiusi fra doppi apici e separati da una virgola. Come vedi posso utilizzare intervalli(A1:A5, F4:F8) e/o singole celle(B5,C10). Modificherai quei riferimenti per il tuo contesto. Credo sia abbastanza chiaro(lo spero). Fai sapere se risolvi e se hai bisogno siamo(quasi) sempre qui. Grazie per l'attenzione.
--
La soluzione, il codice ed i files sono forniti *così come sono* e l’autore declina ogni responsabilità per eventuali problemi causati dalla soluzione proposta se usata impropriamente. Create e utilizzate una copia del file per le vostre prove, *prima* di utilizzare la soluzione in files importanti.
--
Mauro Gamberini - Microsoft© MVP(Excel)