Aiutoooo



  • Aiutoooo !
    di Sal (utente non iscritto) data: 17/05/2012

    Ciao a tutti
    avrei da risolvere un problemino (da solo non ci sono riuscito)

    io ho una cella (es. a1) dove si verificano determinate condizioni, esempio:
    se a2 = 1 allora a1 = x
    se a2 = 2 allora a1 = y
    se a2 = 3 allora a1 = z
    e così via

    preciso che su questa cella non ci clicco con il mouse!

    io vorrei, se è possibile, che si verificasse un msgbox ad una determinata condizione,
    mi spiego meglio
    quando nella cella a1 si verifica la mia condizione (es. = z) allora mi appare in automatico un msgbox che mi segnala qualcosa (tipo: attenzione, . . . . . )
    spero di essermi spiegato.

    grazie a tutti.
    ciao



  • di Xxx (utente non iscritto) data: 18/05/2012

    Ciao

    non hai detto se i numeri in a2 li inserisci tu??
    comunque partendo dal presupposto che il numero lo metti tu metti la macro nel foglio che devi utizzare, non nel modulo

    ciao da xxx
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Valore As Long
    If Intersect(Target, Range("A2")) Is Nothing Then Exit Sub
    Valore = Target
    Select Case Valore
    Case 1
      Range("a1") = "X"
      MsgBox ("E' uscito X")
    Case 2
      Range("a1") = "Y"
      MsgBox ("E' uscito Y")
    Case 3
      Range("a1") = "Z"
      MsgBox ("E' uscito Z")
    Case Is > MaxNumber
      Range("a1") = ""
      MsgBox ("Numero Maggiore di 3")
    End Select
    End Sub



  • di Sal (utente non iscritto) data: 18/05/2012

    Ciao xxx,
    si, la cella a2 la compilo io,

    comunque ho inserito la tua macro e funziona tutto perfettamente, è quello che volevo!

    sei un grande, grazie mille

    probabilmente avrò nel futuro bisogno di altri aiuti, spero possa ancora approfittare della tua bravura e disponibilità.

    ciao
    sal



  • di Sal (utente non iscritto) data: 18/05/2012

    Ciao xxx
    aiutoooo !

    come non detto !

    ho inserito la tua macro in un file di prova e funziona tutto bene

    ma quando sono andato ad inserire la macro nel mio file modificando le celle a1 e a2 con le celle che mi interessano, mi da un errore di questo tipo:

    errore di run-time 13

    tipo non corrispondente


    quando clicco su debug, mi appare la macro con la riga:
    valore = target in giallo

    cosa c'è che non va?

    preciso che la cella dove io scrivo è una cella unita : "j23:n23"

    ciao grazie

    p.s.: nel mio file in quel foglio c'è già inserito una macro del tipo
    worksheet activate

    puo' essere per quello?




  • di Sal (utente non iscritto) data: 18/05/2012

    Cioa xxx, scusa se ti disturbo ancora,
    credo di aver capito, forse, qual'è il problema

    il fatto è che tu la macro me l'hai creata, giustamente (in base al mio esempio), con dei valori, quelli che io vado ad inserire, numerici (es. 1 - 2 - 3 ...)
    invece quello che io devo inserire nella cella da compilare (in a2) affinchè si avveri la condizione in a1, sono delle parole
    es. proprietà - usufrutto - nuda proprietà - ecc...)

    quindi, credo, che al posto di

    valore = target

    ci debba andare qualcos'altro, del tipo:

    testo = target

    ho capito bene o ho detto una cazzata?

    scusa la parolaccia
    ciao e grazie




  • di Sal (utente non iscritto) data: 18/05/2012

    Ciao xxx
    ho cipollato un po' nella tua macro, dopo vari tentativi sono riuscito a far funzionare tutto in questa maniera

    fa quello che volevo

    ancora grazie mille

    senza la tua macro non ci sarei riuscito mai.
    ciao
    sal
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Valore As Long
    If Intersect(Target, Range("b1")) Is Nothing Then Exit Sub
    
    If Range("a1") = "x"  Then
      MsgBox ("Attenzione: a a a a   ")
    End If
    
    If  Range("a1") = "z"  Then
      MsgBox ("Attenzione: b b b b  ")
    End If
    
    End Sub
    



  • di Xxx (utente non iscritto) data: 18/05/2012

    Ciao sal

    se davi subito chiarimento in base al valore non numerico ma un qualsiasi valore stringa ti avrei posto subito la macro giusta
    vedi quella sotto di esempio,dato che tu devi fare , dal tuo esempio alcune varifiche

    ciao da xxx

     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Valore As Variant
    If Intersect(Target, Range("A2")) Is Nothing Then Exit Sub
    Valore = Target
    Select Case Valore
    Case "Tizio"
      Range("a1") = "X"
      MsgBox ("E' uscito X")
    Case "Caio"
      Range("a1") = "Y"
      MsgBox ("E' uscito Y")
    Case "Pippo"
      Range("a1") = "Z"
      MsgBox ("E' uscito Z")
    Case Else
      Range("a1") = ""
      MsgBox ("Non e' stato inserito nessun RIFERIMENTO")
    End Select
    End Sub
    



  • di Sal (utente non iscritto) data: 21/05/2012

    Ciao xxx

    si lo so, è stata una mia mancanza!

    ho provato la tua macro e funziona!

    grazie mille

    ciao
    sal