Condividi:        

Intersect: eseguire macro in relazione all'indirizzo target

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Intersect: eseguire macro in relazione all'indirizzo target

Postdi alfrimpa » 24/11/15 15:32

Ciao a tutti

Avrei bisogno di un piccolo aiuto.

Ho scritto la sottostante macro che dovrebbe far apparire un msgbox con "hello" se il target è incluso in A1:A10 e "ciao" se il target è in B1:B10.

Se il target appartiene all'intervallo A1:A10 tutto funziona regolarmente; se invece è in B1:B10 il codice va in debug con l'errore di run-time 91 "Variabile oggetto o variabile del blocco With non impostata". Dove sbaglio?

Tempo fa ero riuscito a farlo ma non ricordo assolutamente come

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("a1:a10","b1:b10"), Target) Is Nothing Then
    If Intersect(Range("a1:a10"), Target) Then
        MsgBox "hello"
        ElseIf Intersect(Range("b1:b10"), Target) Then
        MsgBox "ciao"
    End If
End If
End Sub


Grazie a chi vorrà rispondere.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Sponsor
 

Re: Intersect: eseguire macro in relazione all'indirizzo tar

Postdi Anthony47 » 24/11/15 15:52

Intersect restituisce un Range, la If richiede una Espressione...
Continua con If Intersect(...) Is Nothing e funzionera'; ad esempio:
Codice: Seleziona tutto
    If Intersect(Range("a1:a10"), Target) Is Nothing Then
            MsgBox "Ciao"
        ElseIf Intersect(Range("b1:b10"), Target) Is Nothing Then
            MsgBox "Hello"
    End If

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19480
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Intersect: eseguire macro in relazione all'indirizzo tar

Postdi alfrimpa » 24/11/15 15:59

Grazie mille Anthony.

Ma, solo a scopo didattico, ti chiedo: questo è l'unico modo per farlo?
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: Intersect: eseguire macro in relazione all'indirizzo tar

Postdi scossa » 24/11/15 16:04

alfrimpa ha scritto:
Codice: Seleziona tutto
If Not Intersect(Range("a1:a10","b1:b10"), Target) Is Nothing Then



Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Range("a1:a10, b1:b10"), Target) Is Nothing Then
      If Intersect(Range("a1:a10"), Target) Is Nothing Then
          MsgBox "ciao"
      Else
          MsgBox "hello"
      End If
  End If
End Sub
Bye!
scossa

Se tu hai una mela, e 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)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Intersect: eseguire macro in relazione all'indirizzo tar

Postdi Anthony47 » 24/11/15 16:05

Vedi il msg di scossa, sopra...

Non c'e' mai un' unica ricetta per la pasta al ragu'; ad esempio:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Range("a1:b10"), Target) Is Nothing Then
    If Target.Column = 1 Then
        MsgBox ("Hello")
    Else
        MsgBox ("Ciao")
    End If
End If
End Sub

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19480
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Intersect: eseguire macro in relazione all'indirizzo target":


Chi c’è in linea

Visitano il forum: Nessuno e 21 ospiti