Domanda.

nome=FILIPPO
cognome=SAPONARO
versione=2000
conosco2=medio
vba=SI
macro=SI
email=fsaponaro@virgilio.it
chr=333
problema=Ciao Ennius,
Il mio problema che ho provato a risolvere cercando nel tuo bellissimo e utilissimo sito è il seguente:
Dovrei verificare se nel range D2:D100 esistono celle vuote e nel caso copiare il contenuto della cella precedente.
Esempio: la cella D2 contiene "filippo" la cella D3 non contiene nulla e quindi vorrei copiarci dentro il contenuto della cella D2 e se la cella D4 a sua volta non contiene nulla vorrei copiarci dentro il contenuto della cella D3 che è diventato "filippo". Se ci fosse nel tuo sito la risposta al mio quesito ti chiedo scusa per la mia disattenzione e ti prego di indicarmela. Ti ringrazio anticipatamente e attendo tue notizie.
 

Risposta.

ciao Filippo, eccoti la soluzione; funziona sul range da te indicato. Se hai necessità potrai variare sia la riga di partenza sia la colonna sulla quale intervenire. Le istruzioni dovresti capirle:

Sub alimenta()
Dim iRow As Integer
iRow = 2
'si imposta il numero riga dal quale
'iniziare il controllo, quindi iRow ora è uguale a 2
Do While Cells(iRow, 4).Value <> ""
'Fino a che la cella
'(ora la2, colonna 4) è diversa da vuoto, si passa
'con iRow = iRow + 1 alla riga successiva

iRow = iRow + 1
'ora si controlla se questa nuova cella è vuota
If Cells(iRow, 4).Value = "" Then
'in caso sia vuota ci si copia il valore della cella
'sovrastante, stessa colonna

Cells(iRow, 4).Value = Cells(iRow, 4).Offset(-1, 0).Value

End If
'finisce la condizione.
'sotto si controlla il numero di riga e alla 200
'si interrompe e si esce dal ciclo

If iRow = 200 Then Exit Do
'altrimenti si continua
Loop
End Sub

Guarda che almeno un valore nella cella iniziale (la D2) ci sia, altrimenti non funziona.
un saluto, fammi sapere, ennius