+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Cambio puntatore mouse

  1. #1
    Eusty non è in linea Scolaretto
    Post
    57

    Cambio puntatore mouse

    Buongiorno,
    Nel mio file Excel ho un elenco di nomi e ho creato una macro che mi apre una userform con caricati tutti i dati di quella persona quando faccio doppio click nella cella con scritto il suo nome, per esempio nella cella A2 ho il nome Rossi Mario e quando clicco su quella casella mi apre la user con nome, cognome, data e luogo di nascita.......

    È possibile trasformare la freccia del mouse nella "manina" quando passo su quelle celle??

    Ci sono riuscito x il passaggio del mouse sopra i commanbutton ma x il passaggio sopra le celle nn riesco a trovare l'opzione

  2. #2
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    240
    Quote Originariamente inviato da Eusty Visualizza il messaggio
    È possibile trasformare la freccia del mouse nella "manina" quando passo su quelle celle??(
    Ciao Eusty,
    io avevo fatto una cosa simile sfruttando la funzione COLLEG.IPERTESTUALE. Avevo formattato la cella in modo che sembrasse un bottone e quando passavo sul testo avevo la manina. Avevo impostato a stringa vuota il link... Così facendo non punta da nessuna parte ma cambia il cursore.
    Se vuoi il Double_Click, ricorda di gestire il [Cancel = True] per evitare di entrare in modifica della cella.

  3. #3
    Eusty non è in linea Scolaretto
    Post
    57
    ciao!!
    Grazie per la risposta.

    Se vuoi il Double_Click, ricorda di gestire il [Cancel = True] per evitare di entrare in modifica della cella.
    Questo lo avevo già inserito nel codice =)

    Avevo impostato a stringa vuota il link... Così facendo non punta da nessuna parte ma cambia il cursore.
    Non ho capito questa parte...ho profato =COLLEG.IPERTESTUALE(UserForm1;Rossi Mario) ma non mi funziona

  4. #4
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    240
    Quote Originariamente inviato da Eusty Visualizza il messaggio
    ho profato =COLLEG.IPERTESTUALE(UserForm1;Rossi Mario) ma non mi funziona
    Imposta la formula così:
    codice:
    =COLLEG.IPERTESTUALE("";"Rossi Mario")
    Poi nella Sub del DoubleClick gestisci l'apertura della form. Il primo parametro specifica l'indirizzo a cui deve puntare il link, e non può puntare ad una Form.

  5. #5
    Eusty non è in linea Scolaretto
    Post
    57
    Perfetto grazie mille funziona!!
    Poi nella Sub del DoubleClick gestisci l'apertura della form
    Ho usato il codice che avevo già scritto x l'evento double click =)

    Giusto x complicare un pochino le cose...se un nome è più lungo della cella (occupa la cella A1 e B1)...quando passo sul nome nella cella A1 mi compare la manina, ma se muovo il mouse verso B1 scompare...c'è una soluzione??
    Nn posso allargare la colonna A purtroppo.

    Ho provato a inserire in B1 =COLL.IPERTESTUALE("";"") e li stesso codice double click della cella A1 (usando xò un offset x poter prendere il valore di A1 e non Valore vuoto) però giustamente excel vede che in B1 c'è un testo quindi il nome in A1 non lo vedo completo.
    Esiste per caso un'altra strada?

  6. #6
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    240
    Quote Originariamente inviato da Eusty Visualizza il messaggio
    Nn posso allargare la colonna A purtroppo
    Dipende dal tuo scenario... Se sei libero di inserire formule nelle celle, ma non di modificarne la larghezza, posso supporre che il tuo vincolo sia un'impaginazione... Potresti:
    - spostare il nome nella colonna B e in A inserire la formula con un nome collegamento generico tipo "Scheda";
    - unire le celle delle colonne A e B;
    - cambiare l'impaginazione;
    - eccetera...

  7. #7
    Eusty non è in linea Scolaretto
    Post
    57
    Il mio primo pensiero è stato di unire le celle delle colonne A e B ma l'evento DoubleClick mi da un errore

    codice:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
        
        If Not Application.Intersect(Target, Range("A1:A24")) Is Nothing Or Then
            
            Cancel = True
            If Target.Value = "" Then
                m = MsgBox("Nessun Allievo Selezionato", vbCritical + vbOKOnly)
                Exit Sub
            End If
    ...il codice poi continua...
    L'errore è nella riga: If Target.Value="" Then

    Mi esce: Errore 13, Tipo non Corrispondente

    Mentre senza celle unite funziona alla perfezione

  8. #8
    Sgrubak non è in linea Scolaretto
    Luogo
    Torrazza Piemonte
    Post
    240
    Quote Originariamente inviato da Eusty Visualizza il messaggio
    L'errore è nella riga: If Target.Value="" Then
    È dovuto al fatto che [Target] adesso è un Range composto da due celle unite. Il Value, nelle celle unite, lo trovi solo nella prima in alto a sinistra. Individua la prima cella del range multiplo cambiando la condizione dell'If con:
    codice:
    If Target.Cells(1,1).Value = "" Then
    Anche se fosse un Target composto da una singola cella non ti darà errore. Se fossero più di due, prende comunque la più in alto a sinistra.

  9. #9
    Eusty non è in linea Scolaretto
    Post
    57
    Ottimo ho risolto!! Grazie mille x l'aiuto

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi