Condividi:        

Macro copia dati su righe vuote

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

Macro copia dati su righe vuote

Postdi Marco75CT » 06/01/15 13:14

Ciao ragazzi,
ho una necessità.
Ho creato una macro con il registratore di Excel 2010 che sostanzialmente mi copia dei valori di 4 differenti fogli, in 4 celle di un altro foglio.
Le 4 celle sono posizionate su una riga contenente anche una cella con il giorno in oggetto e vorrei che l'indomani, lanciando la macro, questa copiasse i valori sulla riga in corrispondenza della data dell'operazione.
Si può fare e, se si, come?
Grazie
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Sponsor
 

Re: Macro copia dati su righe vuote

Postdi Anthony47 » 06/01/15 18:46

Si, credo si possa fare.
Devi individuare la riga contenente la data dell' operazioni, ad esempio usando WorksheetFunction.Match (funzione Confronta), e scrivi su quella riga.

Per altri dettagli servono altri dettagli, come minimo dove si trova la data.

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

Re: Macro copia dati su righe vuote

Postdi Marco75CT » 06/01/15 19:44

Ciao Anthony e grazie per la risposta.
Purtroppo non ho idea di come fare e mi sarebbe davvero utile un esempio e, magari, una spiegazione.
Qui di seguito un esempio:
Immagine
Grazie
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Macro copia dati su righe vuote

Postdi Anthony47 » 07/01/15 11:48

Ho creato una macro con il registratore di Excel 2010 che sostanzialmente mi copia dei valori di 4 differenti fogli, in 4 celle di un altro foglio.
Dalle immagini pubblicate sembra invece che si tratti di informazioni che provengono da 4 file diversi da copiare su un quinto file.
Puoi pubblicare la macro registrata, magari mi aiuta a capire come si chiamano questi file?

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

Re: Macro copia dati su righe vuote

Postdi Marco75CT » 07/01/15 14:48

Ciao Anthony
ecco il codice generato dal registratore di macro:

Codice: Seleziona tutto
Sub Confronto_Produzione_Forecast()
'
' Confronto_Produzione_Forecast Macro
'

'
    Windows("Produzione.xls").Activate
    Range("H3").Select
    Selection.Copy
    Windows("Rev . 01 gennaio 2015.xlsm").Activate
    Range("AP39").Select
    Application.Run "'Rev . 01 gennaio 2015.xlsm'!Incolla_Valori"
    Windows("Forecast.xls").Activate
    Range("P3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Rev . 01 gennaio 2015.xlsm").Activate
    Range("AQ39").Select
    Application.Run "'Rev . 01 gennaio 2015.xlsm'!Incolla_Valori"
    Windows("Produzione1.xls").Activate
    Range("H3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Rev . 01 gennaio 2015.xlsm").Activate
    Range("AR39").Select
    Application.Run "'Rev . 01 gennaio 2015.xlsm'!Incolla_Valori"
    Windows("Forecast1.xls").Activate
    Range("P3").Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows("Rev . 01 gennaio 2015.xlsm").Activate
    Range("AS39").Select
    Application.Run "'Rev . 01 gennaio 2015.xlsm'!Incolla_Valori"
End Sub
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Macro copia dati su righe vuote

Postdi Anthony47 » 08/01/15 11:41

Ancora non so dove vanno incollati i dati che copi, visto che di mezzo c' e' una macro " Incolla_Valori"; quindi ipotizzo che rimangano nelle celle che la tua macro seleziona, come "valori".
In questo caso potrebbe aiutare questa macro:
Codice: Seleziona tutto
Sub macroM()
With Workbooks("Rev . 01 gennaio 2015.xlsm").Sheets("Foglio1")
    .Range("AP39").Value = Workbooks("Produzione.xls").Sheets("Foglio1").Range("H3").Value
    .Range("AQ39").Value = Workbooks("Forecast.xls").Sheets("Foglio1").Range("P3").Value
    .Range("AR39").Value = Workbooks("Produzione1.xls").Sheets("Foglio1").Range("H3").Value
    .Range("AS39").Value = Workbooks("Forecast1.xls").Sheets("Foglio1").Range("P3").Value
End With
End Sub

Nota che i nomi dei Fogli li ho dedotti dalle immagini pubblicate; se non sono corretti aggiustali nelle istruzioni che ti ho dato.

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

Re: Macro copia dati su righe vuote

Postdi Marco75CT » 13/01/15 11:17

Ciao Anthony e grazie per la risposta.
Come faccio a far incollare i dati in corrispondenza della data?
Marco75CT
Utente Senior
 
Post: 146
Iscritto il: 05/08/11 11:54

Re: Macro copia dati su righe vuote

Postdi Anthony47 » 13/01/15 14:18

Mi sembra una discussione abbastanza disordinata...
Nell' ipotesi che la data sia in Workbooks("Rev . 01 gennaio 2015.xlsm").Sheets("Foglio1"), colonna A, in formato Data (non testo, non "Data+Ora"), puoi ottenere il numero di riga che contiene quella data con una Application.Match; il codice diventerebbe
Codice: Seleziona tutto
Sub macroM2()
Dim I
I = Application.Match(Int(Now(), .Range("A1").Resize(Rows.Count,1),0)
With Workbooks("Rev . 01 gennaio 2015.xlsm").Sheets("Foglio1")
    I = Application.Match(Int(Now(), .Range("A1").Resize(.Rows.Count,1),0)
    If IsError(I) then Exit Sub      'Data non trovata
        Msgbox("Data non trovata, procedura abortita") : Exit Sub
    End If
    .Range("AP39").Value = Workbooks("Produzione.xls").Sheets("Foglio1").Range("H" & I).Value
    .Range("AQ39").Value = Workbooks("Forecast.xls").Sheets("Foglio1").Range("P" & I).Value
    .Range("AR39").Value = Workbooks("Produzione1.xls").Sheets("Foglio1").Range("H" & I).Value
    .Range("AS39").Value = Workbooks("Forecast1.xls").Sheets("Foglio1").Range("P" & I).Value
End With
End Sub

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


Torna a Applicazioni Office Windows


Topic correlati a "Macro copia dati su righe vuote":


Chi c’è in linea

Visitano il forum: raimea e 4 ospiti