Condividi:        

Creare uno storico dati su un foglio

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

Creare uno storico dati su un foglio

Postdi Alea » 09/01/12 15:10

Buon giorno a tutti e innanzitutto Buon 2012

Ho la necessità di creare uno storico: questa è l'immagine del file in questione
Immagine

Le celle da considerare sono:
DATA: in cella (purtroppo unita) da N5 a P5
PREZZI: da GH18 a GH23 (purtroppo unite anche queste)

Come nella figura allegata in cella S15 c'è la data riportata nella cella NP5 e da S18 a S23 i prezzi di GH18 a GH23. Premendo il tasto "Aggiorna STORICO" si dovrebbe creare una nuova "lista" nella colonna T. Premendo di nuovo il tasto creare la lista in U e così via.

Spero di aver spiegato bene il mio problema.
Se c'è necessità di ulteriori spiegazioni fatemi sapere.

Grazie intanto
Ivan
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Sponsor
 

Re: Creare uno storico dati su un foglio

Postdi Flash30005 » 09/01/12 18:36

Prova questa macro
Codice: Seleziona tutto
Sub AggStorico()
UC = Range("IV15").End(xlToLeft).Column + 1
If UC < 19 Then UC = 19
For CC = 19 To UC
    If Cells(15, CC).Value = [N5] Then
        MsgBox "data già esistente"
        Exit Sub
    End If
Next CC
Cells(15, UC).Value = [N5]
Cells(15, UC).NumberFormat = "dd/mm/yyyy"
Cells(15, UC).Font.Bold = True
For Riga = 18 To 23
    Cells(Riga, UC).Value = Cells(Riga, 7).Value
    Cells(Riga, UC).NumberFormat = "0.00"
Next Riga
End Sub


Ho inserito un controllo date da S15 verso destra
se la data è esistente non vengono trascritti i dati e avvisa con un messaggio

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Creare uno storico dati su un foglio

Postdi Alea » 10/01/12 07:42

Ti ringrazio tantissimo flash è perfetta come sempre
Ciao Ivan
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Re: Creare uno storico dati su un foglio

Postdi Alea » 10/01/12 08:28

Avrei una piccola aggiunta da fare se possibile.
Si può far scrivere, quando viene creato lo storico, nella riga 16,quindi sotto la data, questo testo:
€/(kg ; pz) =========>>(scritto in grassetto)

Grazie
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Re: Creare uno storico dati su un foglio

Postdi Flash30005 » 10/01/12 09:18

Ho apportato la modifica richiesta e modificato la macro togliendo il ciclo For..next (semplificando la macro)
per avere i valori di N18:N23 formattati anche nell'archivio

Codice: Seleziona tutto
Sub AggStorico2()
UC = Range("IV15").End(xlToLeft).Column + 1
If UC < 19 Then UC = 19
For CC = 19 To UC
    If Cells(15, CC).Value = [N5] Then
        MsgBox "data già esistente"
        Exit Sub
    End If
Next CC
Cells(15, UC).Value = [N5]
Cells(16, UC).FormulaR1C1 = "€/(Kg ; pz)"
Cells(15, UC).NumberFormat = "dd/mm/yyyy"
Range(Cells(15, UC), Cells(16, UC)).Font.Bold = True
Range(Cells(18, 7), Cells(23, 7)).Copy Destination:=Cells(18, UC)
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Creare uno storico dati su un foglio

Postdi Alea » 10/01/12 09:33

Ottimissimo. Grazie
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Re: Creare uno storico dati su un foglio

Postdi Alea » 12/01/12 16:12

Ho provato a ripetere questa macro per un'altro foglio e per altre celle.
Purtroppo però mi sono un po' incasinato.
Puoi aiutarmi per favore?
Questa è quella che ho modificato:

Codice: Seleziona tutto
Sub AggDatiOfferta()
'copia anche la formattazione delle celle copiate
UC = Range("IV2").End(xlToLeft).Column + 1
If UC < 4 Then UC = 4
For CC = 4 To UC
    If Cells(2, CC).Value = (G1) Then
        MsgBox "data già esistente"
        Exit Sub
    End If
Next CC
Cells(2, UC).Value = ("G1")
Cells(2, UC).NumberFormat = "dd/mm/yyyy"
Cells(2, UC).Font.Bold = True
Range(Cells(3, 11), Cells(7, 11)).Copy Destination:=Cells(3, UC)
End Sub


Allego una immagine delle celle da copiare:
Immagine

Praticamente il Range da copiare è K2:K7 in Range L2:L7 e così via aggiungendo nella riga da L2 la data che c'è in G2 (condizione se è già esistente).

Grazie mille
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12

Re: Creare uno storico dati su un foglio

Postdi Flash30005 » 12/01/12 19:24

Forse così?

Codice: Seleziona tutto
Sub AggDatiOfferta()
'copia anche la formattazione delle celle copiate
UC = Range("IV2").End(xlToLeft).Column + 1
If UC < 12 Then UC = 12
For CC = 12 To UC
    If Cells(2, CC).Value = Range("G1").Value Then
        MsgBox "data già esistente"
        Exit Sub
    End If
Next CC
Range("G1").Copy Destination:=Cells(2, UC)
Range(Cells(3, 11), Cells(7, 11)).Copy Destination:=Cells(3, UC)
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Creare uno storico dati su un foglio

Postdi Alea » 13/01/12 08:21

Perfetto grazie mille
Ciao
Alea
Utente Senior
 
Post: 145
Iscritto il: 24/07/06 14:12


Torna a Applicazioni Office Windows


Topic correlati a "Creare uno storico dati su un foglio":


Chi c’è in linea

Visitano il forum: Nessuno e 143 ospiti