Condividi:        

Accoda dati in colonna

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Accoda dati in colonna

Postdi ikwae » 17/03/18 12:18

Ciao a tutti ... sono ancora qui a chiedere il vostro prezioso aiuto. Vorrei, se possibile, modificare una macro.
La macro legge il valore maggiore di 0(zero) in colonna F e, trovato il valore maggiore di zero, copia le tre celle
a sx incollandoli in colonna H sempre nello stesso range. Tutto bene funziona bene ed è molto veloce. L’aiuto
che cerco è anziché sovrascrivere i dati di accodarli ogni qual volta si esegue la macro. Ho provato a “remmare”
il rigo di codice inerente alla cancellazione del range ma non è servito a nulla. Se non si riesce a modificare la
macro e, se ne suggerisce una nuova con caratteristiche uguali, sarà molto gradita.
Allego anche il file, per non far perdere tempo a chi mi vuole aiutare in caso di prove.
Ringraziando anticipatamente tutti coloro che mi aiuteranno ... 73 ikwae
https://www.dropbox.com/s/a63cdng16tjda ... i.zip?dl=0
Codice: Seleziona tutto
 Sub Maggiore_Di_Zero()
    Dim CL As Range
    Dim Matr()
    Dim Indice As Long
    Dim r As Long
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Indice = 1
    ReDim Matr(1 To Rows.Count, 1 To 4)
    For Each CL In Range("F3:F117482")
    If CL.Value >= 1 Then
    Matr(Indice, 1) = Cells(CL.Row, 3).Value
    Matr(Indice, 2) = Cells(CL.Row, 4).Value
    Matr(Indice, 3) = Cells(CL.Row, 5).Value
    Matr(Indice, 4) = Cells(CL.Row, 6).Value
    Indice = Indice + 1
    End If
    Next
    Range("H2:K" & Rows.Count).ClearContents
    For Indice = 1 To Rows.Count
    If Matr(Indice, 1) = "" Then GoTo Esci
    '
    For r = 8 To 11
    Cells(Indice + 2, r).Value = Matr(Indice, r - 7)
    Next r
    Next Indice
Esci:

    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
 
Set CL = Nothing
End Sub 
 
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 309
Iscritto il: 27/12/17 23:14

Sponsor
 

Re: Accoda dati in colonna

Postdi Anthony47 » 17/03/18 17:20

Tutto bene funziona bene ed è molto veloce
Mah... chissa' quale e' il tuo metro di paragone...
Questa versione e' leggermente piu' veloce:
Codice: Seleziona tutto
Sub Maggiore_Di_Zero()
    Dim CL As Range
    Dim Matr(), mOut()
    Dim I As Long
    Dim R As Long
    Dim LastF As Long
'
I = 1
LastF = Cells(Rows.Count, "F").End(xlUp).Row
ReDim Matr(1 To LastF, 1 To 4)
ReDim mOut(1 To LastF, 1 To 4)
Matr = Range("C3").Resize(LastF, 4).Value
For R = 1 To UBound(Matr)
    If Matr(R, 4) > 0 Then
        mOut(I, 1) = Matr(R, 1)
        mOut(I, 2) = Matr(R, 2)
        mOut(I, 3) = Matr(R, 3)
        mOut(I, 4) = Matr(R, 4)
        I = I + 1
    End If
Next R
Range("H2").Resize(LastF, 5).ClearContents
Range("H3").Resize(I, 4) = mOut
Erase mOut
Erase Matr
End Sub


Se vuoi accodare il risultato del calcolo a un eventuale risultato gia' presente in colonne H:K, allora devi eliminare le righe
Range("H2").Resize(LastF, 5).ClearContents
Range("H3").Resize(I, 4) = mOut

e sostituirle con
Codice: Seleziona tutto
R = Cells(Rows.Count, "H").End(xlUp).Row + 1: If R < 3 Then R = 3
Cells(R, "H").Resize(I, 4) = mOut


Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Accoda dati in colonna

Postdi ikwae » 17/03/18 18:34

Grazie Anthony gentile come sempre... Adesso lo provo subito per il naturale e dovuto riscontro. Cordialmente ikwae
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 309
Iscritto il: 27/12/17 23:14

Re: Accoda dati in colonna

Postdi ikwae » 17/03/18 20:32

Gentilissimo Anthony... il riscontro non può che essere positivo e aggiungo che con la mia macro, proposta per la modifica, il tempo sul mio Pentiun4(che uso per prove), è di andare in cucina bere del caffè e tornare e gira ancora per qualche secondo prima di dare la soluzione. Mentre con la tua macro non riesco neanche ad alzarmi dalla sedia che ha già finito. E rispondendo alla tua domanda per il “metro di paragone” rispondo che è l’unica macro che ho quindi è sicuramente veloce non credi? Quindi che dire la tua macro come velocità e semplicemente stupenda. Per quanto riguarda la precisione, io sul foglio allegato, a partire dalla cella R117482 e seguenti ho inserito le varie somme delle colonne H-I-J-K e i conti tornano poi ho moltiplicato x 2 le varie somme e ho inserito le due righe di codice da te proposte, per accodare i dati e ancora qui i conti tornano. Ho “manomesso” qualche valore in colonna F e i conti ancora tornano. Quindi che dire veloce e precisa. Ringraziandoti mille e mille volte per il gradito aiuto e il tuo prezioso tempo che mi hai dedicato.
Cordialmente ikwae
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 309
Iscritto il: 27/12/17 23:14


Torna a Applicazioni Office Windows


Topic correlati a "Accoda dati in colonna":


Chi c’è in linea

Visitano il forum: Nessuno e 22 ospiti