do until matrice celle



  • do until matrice celle
    di martina (utente non iscritto) data: 26/11/2012 14:28:59

    ok grazie,ho risolto con un Until+funzione count



  • di Vecchio Frac data: 26/11/2012 15:13:50

    Non dovevi cominciare una nuova discussione, ma fare una "nuova risposta" a quella precedente.
    Riporto qui per comodità la soluzione che ritengo migliore:

    if worksheetfunction.CountA(Range("a194:e218")) = 0 Then msgbox "Il range desiderato è vuoto!"

    Come vedi, non c'è nessun bisogno di utilizzare Do...Until, basta un'istruzione sola.




  • do until matrice celle
    di martina (utente non iscritto) data: 26/11/2012 12:37:07

    Salve ho un problema...ho impostato un ciclo do-loop che però si deve fermare quando tutte le celle di una matrice siano vuote...per scrivere questo ho provato
    do until range("a194:e218")=""
    o range("a194:e218").value=""
    ma niente...ho sempre un errore di sintassi :(( Qualche aiuto?
    Grazie



  • di Vecchio Frac data: 26/11/2012 14:02:00

    Un Range non ha un valore.
    Hanno un valore le singole celle di quel Range.
    Devi quindi ciclare con For Each e verificare che le celle siano vuote:

    Function e_vuoto(r As Range)
    Dim cella As Range
    For Each cella In r
    If Trim(cella) <> "" Then
    e_vuoto = False
    Exit Function
    End If
    Next
    e_vuoto = True
    End Function

    E la richiami così:
    if e_vuoto( Range("a194:e218") ) then msgbox "Il range desiderato è vuoto!"

    Ma io ti consiglio di spazzare via questo codice e di utilizzare una comoda funzione del foglio di lavoro:
    if worksheetfunction.CountA(Range("a194:e218")) = 0 Then msgbox "Il range desiderato è vuoto!"