Funzione di unione celle excel



  • Funzione personalizzata
    di Enzo (utente non iscritto) data: 11/03/2009

    Ciao a tutti, avrei bisogno di una spiegazione in merito al
    comportamento di una funzione costruita da me.
    faccio un esempio
    la funzione qui sotto, molto molto banale mi unisce il contenuto di
    due celle nella cella della funzione "tua funzione"
    volevo sapere cosa devo fare o come posso fare per far si che una
    volta che la funzione e' stata richiamata si puo' passare ad
    istruzione successive ossia
    1 richiamo la funzione
    2 mi viene restituito il valore nella casella
    ora banalmente vorrei che mi si spostasse la cella di una posizione
    oppure vorrei che il contenuto della cella fosse in grassetto
    ho constatato che tutti comandi che inserisco lui non me li considera
    esempio
    activecell.offset(1).select o altre cose
     
    Function TUAFUNZIONE(TESTO1 As String, TESTO2 As String) As String 
    TUAFUNZIONE = TESTO1 & " " & TESTO2 
    End Function 



  • di R (utente non iscritto) data: 11/03/2009

    Una udf si comporta come una funzione standard di excel ne più ne meno ... ovvero restituisce un valore, non puoi far fare alla udf altre cose ... in verità esistono delle eccezioni normalmente sconsigliate ... io per es. ho scritto una udf che fa scrivere nei commenti di altra cella ... è possibile per es far unire delle celle ... ma ripeto non è mai consigliabile e queste sono eccezioni forse scappate alla microsoft
    saluti
    r
     
    Public Function FormulaCommento(testo As String, d As Excel.Range) As String 
    'aggiunge un commento ad una o più celle 
    Dim rnG As Excel.Range 
    Application.Volatile (False) 
    
    
    For Each rnG In d 
        rnG.ClearComments 
        rnG.AddComment 
        rnG.Comment.Visible = False 
        rnG.Comment.Text Text:=testo 
    Next 
    FormulaCommento = "Commento range " & d.Address & ":" & testo 
    End Function 
    
    
    Public Function CancellaCommento(d As Excel.Range) As String 
    'cancella i commenti di celle 
    Dim rnG As Excel.Range 
    Application.Volatile (False) 
    
    
    For Each rnG In d 
        rnG.ClearComments 
    Next 
    CancellaCommento = "Nessun commento in: " & d.Address 
    End Function