inserisci riga vuota con formule....

Salve a tutti eccomi ancora quì...

Ed ecco il mio problema.

Da userform quando premo il pulsante nuovo richiamo una sub che mi deve copiare l'ultima riga vuota con celle contenenti formule

ed inserirla come nuova ultima riga ,e dopo compilazione tramite textbox alla pressione del pulsante inserisci deve inserire i dati nella prima riga vuota che trova e così facendo dovrebbe esserci sempre una riga vuota con formule presenti nelle varie celle.

nella sub NUOVO richiamo la sub CopiaVUOTE

'===== Pulsanti frame Esegui =====

Private Sub cmdNuovo_Click()

Call CopiaVUOTE

----------------------------------- e poi faccio le operazioni di copia.....

Sub CopiaVUOTE()

Dim UR1 As String
Dim RR1 As Long

UR1 = Foglio5.Range("A" & Rows.Count).End(xlUp).Row
For RR1 = UR1 To 1 Step -1
If UCase(Foglio5.Range("A" & RR1).Value) = "" Then
Foglio5.Rows(RR1).Copy Destination:=Foglio5.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
Next RR1
   
End Sub

Ma non funziona ....dove sbaglio????

Grazie anticipato a chi mi aiuterà....

 

Informazioni domanda


Ultimo aggiornamento febbraio 27, 2018 Visualizzazioni 1.226 Si applica a:
Risposta

...

Ma non funziona ....dove sbaglio????

Grazie anticipato a chi mi aiuterà....

Pessima la spiegazione, altrettanto pessimo il codice. Pazienza per il codice, ma almeno la spiegazione ...

La macro qualcosa fa: copia tutte le righe (con celle in A vuote) nella medesima riga. Può darsi che vada bene o forse no o forse si tratta solo di modificare la colonna da utilizzare nella verifica dell'ultima riga.

Ecco come farei io per aggiungere una riga nuova alla fine di una tabella dati.

...

  Dim lUltimaRiga As Long
  With Foglio5
    '--- ultima riga occupata (colonna A)
    lUltimaRiga = .Cells(Rows.Count, 1).End(xlUp).Row

    '--- duplico ultima riga mantenendo formati e formule
    .Rows(lUltimaRiga).Copy .Rows(lUltimaRiga + 1)
    .Rows(lUltimaRiga + 1).EntireRow.SpecialCells(xlConstants).ClearContents
  End With

...

[Edit]

Ad integrazione dei commenti già presenti nel codice ...

L'ultima riga (lUltimaRiga) presente nel Foglio5 - che si presume formattata e compilata correttamente con valori costanti e formule - è copiata nella riga seguente (lUltimaRiga +1).

A questo punto, il metodo SpecialCells dell'oggetto Range permette di selezionare/cancellare solamente le celle contenenti valori costanti, lasciando inalterato il resto.

La riga (lUltimaRiga +1) sarà ora pronta per ricevere i dati dalla userform o da altra sorgente.

Questo metodo, secondo me, ha il vantaggio di non lasciare alla fine della mia tabella una riga, apparentemente vuota, ma che in realtà contiene delle formule, e che potrebbe essere motivo di qualche errore (ad esempio nel calcolo dell'ultima riga del foglio).

Andrea

Il problema è stato risolto?

Siamo spiacenti che questo non sia stato d'aiuto.

Fantastico! Grazie per aver scelto questa risposta.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento, ci aiuta a migliorare il sito.

Sei soddisfatto di questa risposta?

Grazie per il tuo commento.