inserisci riga vuota con formule....

Anonimo
2014-07-24T18:26:45+00:00

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à....

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2014-07-25T09:57:28+00:00

...

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 t****utte 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).

La risposta è stata utile?

0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2014-07-25T16:09:49+00:00

    Grazie AndyCa64... ti chiedo scusa per la spiegazione..... 

    Ho risolto con il tuo codice........ grazie ancora...

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2014-07-25T09:27:41+00:00

    Salve a tutti eccomi ancora quì...

    Ed ecco il mio problema.

    <cut>

    Grazie anticipato a chi mi aiuterà....

    Capito poco.

    L'esempio che puoi scaricare qui sotto, copia l'ultima riga (An:Cn) della tabella del Foglio1 e la incolla nella riga sotto. Nell'esempio ho una formula in C ed quella colonna che mi restituisce l'ultima riga con valori. Nella UserForm ci sono due TextBox che vanno completate perché i dati vengano copiati sul Foglio1. Non ho corretto l'eventuale presenza o meno di dati errati nelle TextBox (banale implementarlo). Il puldante della UserForm esegue la chiamata alla Sub.

    La risposta è stata utile?

    0 commenti Nessun commento