Macro per celle selezionate



  • Macro per celle selezionate
    di Riccardo (utente non iscritto) data: 23/11/2008

    Salve a tutti, desidero proporre un quesito che per alcuni sarà banale, tuttavia potrebbe essere utile a molti.
    ho creato una semplice macro che genera il carattere alternativamente maiuscolo/minuscolo sul testo di una qualsiasi cella di un foglio di excel. cioè, col mouse su una cella qualsiasi che contiene del testo, battendo ctrl-m ottengo la variazione del carattere da maiuscolo a minuscolo o viceversa.
    la mia domanda è: come è possibile, se è possibile, fare funzionare la macro su una selezione di diverse celle? ad esempio, io vorrei selezionare con il mouse l'intervallo "d3:g7" e poi lanciare la mia macro ed avere il risultato del cambio carattere (maiuscolo/minuscolo) per tutte le celle selezionate.
    forse è già stato affrontato questo argomento, mi sapete indicare dove, per favore, oppure (meglio ancora) replicare la soluzione?
    grazie a tutti gli interessati a questo argomento.
    riccardo

     
    Sub Maiu_minu() ' Scelta rapida da tastiera: Ctrl-m
    '
     With Selection
      Valor$ = ActiveCell.Value
      If Valor$ = UCase(Valor$) Then
       ActiveCell.Value = LCase(Valor$)
       Valor$ = ActiveCell.Value
      Else
       ActiveCell.Value = UCase(Valor$)
      End If
      End With
    End Sub
    



  • di Baz (utente non iscritto) data: 24/11/2008

    Ciao,
    prova così....
     
    Sub Maiu_minu2()
    
    Set area = Range("d3:g7")
    
    For Each cl In area
        If cl.Value <> "" Then
            If cl.Value = UCase(cl.Value) Then
                cl.Value = LCase(cl.Value)
            Else
                cl.Value = UCase(cl.Value)
            End If
        End If
    Next
    
    End Sub



  • di Riccardo (utente non iscritto) data: 24/11/2008

    Grazie baz, è perfetto il suggerimento che mi hai dato. ma, a beneficio di tutti gli interessati, desidero precisare che ho avuto un suggerimento ancora più generale che funziona con qualsiasi selezione del mouse ed è la seguente soluzione

    dim cella as range
    for each cella in selection
    ........... segue il codice della macro
    next ...

    grazie ancora
    riccardo