Newsgroup: it.comp.lang.visual-basic
Titolo: range in vba excel

Ciao a tutti, avrei bisogno di un aiuto sul come usare i range in vba excel
Esempio:
Sub RiempiCelle(Dove as Excel.Range)
    Dim I as Integer
    For I=1 to 3
        Dove(1,I) = "Ciao" oppure Dove(1,I).value="Ciao"
    Next I
End Sub
La chiamata da una cella qualsiasi č (per esempio)  =RiempiCelle(C7:H7)
Dovrebbe essere semplice ma non funziona.
Io credo che il problema sia in Dove(1,I)... ma non ne sono venuto a capo.
Cercando in giro ho trovato molti esempi con For each Cella in Range... ma
io ho bisogno di leggere, scrivere ed impostare il colore di sfondo su una
singola cella.
Potete aiutarmi?
Grazie a tutti
Roberto Guernelli

 singola cella.
Hai provato a fare ciò che dici registrandoti una macro?
dopo ti vai a vedere il codice e lo modifichi secondo le tue esigenze....
Ciao
Fabio

> "Roberto Guernelli" news:aq6q1d$6nm$
1...@newsreader.mailgate.org
:

    Spiega... Parli di una singola cella ma alla funzione passi un
intervallo di celle. Come stanno in realta' le cose? Descrivi meglio cio'
che vuoi ottenere, per favore.
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

Esattamente come le ho descritte. Gli passo un intervallo e poi ho bisogno
di maneggiare le celle una ad una.
Io credo che il parametro "Dove" non sia propriamente un Range, oppure che
venga passato in copia (anche se non dovrebbe), oppure più semplicemente, lo
sto usando male.


 lo sto usando male.
    Ok. Allora consulta la guida a proposito di:
        Property Cells As Range
            sola lettura
            Membro di Excel.Range
che potresti usare per esempio cosi':
        Sub RiempiCelle(ByVal Dove As Excel.Range)
            Dim oXLRng As Excel.Range
            For Each oXLRng In Dove.Cells
            ' ecc...
            Next
            Set oXlRng = Nothing
        End Sub
ma considera anche che questo esempio non e' molto esemplare in quanto la
stessa operazione la si puo' fare... una botta e via:
' ------------------------------------------------------------
  Option Base 0
  Option Compare Text
  Option Explicit
' ------------------------------------------------------------
  Const mc_sMyName$ = "mbM1"
' ------------------------------------------------------------
' ============================================================
  Public Sub RiempiCelle_Test()
' ------------------------------------------------------------
  Dim oXlApp  As Excel.Application
  Dim oXlWks  As Excel.Worksheet
  Dim oXlRng  As Excel.Range
' ------------------------------------------------------------
  Set oXlApp = Excel.Application
  Set oXlWks = oXlApp.ActiveSheet
  Set oXlRng = oXlWks.Range("A1:D4")
  RiempiCelle1 oXlRng
  Set oXlRng = oXlWks.Range("F1:I4")
  RiempiCelle2 oXlRng
  Set oXlRng = Nothing
  Set oXlWks = Nothing
  Set oXlApp = Nothing
  End Sub
' ============================================================
' ============================================================
  Public Sub RiempiCelle1( _
    ByVal Dove As Excel.Range)
' ------------------------------------------------------------
  Dim oXlRng As Excel.Range
' ------------------------------------------------------------
  For Each oXlRng In Dove.Cells
      With oXlRng
          .Value = "Ciao"
      End With
  Next
  Set oXlRng = Nothing
  End Sub
' ============================================================
' ============================================================
  Public Sub RiempiCelle2( _
    ByVal Dove As Excel.Range)
' ------------------------------------------------------------
  Dove.Value = "Ciao"
  End Sub
' ============================================================
