Excel :: codino2
Pubblicato da Alexsandra su Novembre 15, 2007
sezione riservata a Codino2 prego gli altri utenti di postare quì consigli, suggerimenti esempi ma non altre problematiche…. Grazie ••• Ritorna alla pagina precedente •••
Questo è il quesito posto:
ciao Alexandra
Premetto che sono nuovo di questo forum e sono anche un neofita e avrei un piccolo problema da risolvere spero potrai essermi di aiuto.
Dunque, per prima cosa ti dico che cercando un aiutino in rete su un progettino che sto creando con excel, sono capitato nel tuo blog e ti faccio subito i complimenti in quanto ho trovato molto utili gli esempi illustrati.
Ora ti dico in sintesi cosa sto facendo: in sostanza sto creando una macro che consenta di salvare dei dati (compresi i commenti) immessi in un foglio di excel.Il programma in pratica è un archiviatore di dati che tramite un foglio (maschera)di excel mi consente di archiviare e richiamare i dati salvati nello stesso foglio.
Purtroppo però non riesco a salvare i commenti che a volte inserisco nelle celle; come posso fare?.
Puoi darmi un aiutino?Il progettino che sto costruendo in sintesi è questo:
Sub Macro1()
‘riga = 30 ‘ i dati salvati
For j = 1 To 5
For k = 1 To 10
Cells(riga + j, 2 + k) = Cells(10 + j, 2 + k) ‘ colonna 2 riga 10 celle con dati comprendenti i commenti
Next k
Next j
MsgBox (”Foglio Archiviato!”)
End Sub



Alexsandra detto
@Codino2
lasciami fare qualche prova, non ho mai provato a fare quello che hai bisogno
ciao
codino2 detto
Ciao Bert0 ciao Alex,il codice che ti avevo inviato l’avevo ridotto all’osso perche pensavo fosse ininfluente al quesito che ti ponevo, scusatemi.
Allora in cella 1A metti il mese (1), in cella 1b metti l’anno (2007).
Nelle righe 11:15 metti dati con note (commenti).
Ora esegui la Sub Macro1.
Adesso varia il mese, cella 1A metti (2).
Riesegui esegui la Sub Macro1.
Adesso fai la verifica e sotto ti ritrovi gli altri dati; sempre senza commenti.
Sub Macro1()
‘
riga = 24 + 0 * (Cells(1, 2) – 2007) + 6 * (Cells(1, 1)) ‘inizio dati salvati
Cells(riga + 1, 2) = Cells(1, 2)
Cells(riga + 1, 1) = Cells(1, 1)
For j = 1 To 5
For k = 1 To 10
Cells(riga + j, 2 + k) = Cells(10 + j, 2 + k)’ colonna 2 riga 10 celle con dati comprendenti i commenti
Next k
Next j
MsgBox (”Foglio Archiviato!”)
fine:
End Sub
scusatemi ancora
adesso spero di essere stato più chiaro,
a presto,
Ciao a tutti.
codino2 detto
Alexandra, ho seguito la lezione sul comando CELLS ed il ciclo di WITH; e mi sono reso conto che sono molto simili alla rountine che ti ho inviato.Ma anche questa funzione ricopia i dati delle celle ma non i commenti in esse contenuti.
salutoni
Alexsandra detto
faccio delle prove, non ho mai pensato di copiare anche i commenti, stasera mi faccio viva con del codice
ciao
bert01980 detto
prova questo se va bene:
Sub Macrocopia()
Rows(”1:5″).Select
Selection.Copy
Rows(”30:30″).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
copia le righe dalla 1 alla 5 e le incolla alla 30 se diverso modifica questi valori…
fammi sapere subito che ti posto eventuali modifiche altrimenti io sono via fino a mercoledì
bert01980 detto
Il tuo codice non fa altro che copiare le righe 11:15 in 31:35… e se modifichi una cella ne range 11:15 viene riscritta in 31:35… ora se il tuo codice funziona tranne che per i commenti allora il mio fa lo stesso ma in più copia anche i commenti… altrimenti per favore rispiega che mi son perso….
ciao
codino2 detto
Ciao Alexandra
Ho appena provato il codice che mi hai suggerito, però come ti ho spiegato precedentemente voglio usarlo per archiviare dei dati:più o meno 20 righe al giorno(lunedì,martedì etc.).
Pertanto ho impostato il tutto tramite il comando cells e i cicli for – nexst per evitare di sovrapporre i dati archiviati per poi richiamarli per data e giorno.
Ho provato un pò a pasticciare nel codice che ti ho inviato precedentemente inserendo i tuoi suggerimenti ma per il momento non è uscito ancora nulla di buono.
grazie comunque della tua solleccita risposta.
a presto, stammi bene.
bert01980 detto
Ciao…
ma a te basta che a variare del mese si sposti solo in riga la copia, e che non sovrascriva i “mesi” precedenti???
bert01980 detto
ciao…
non posso provarlo (non ho excel su questo PC) ma vedi se va bene:
Sub Macro1()
Application.ScreenUpdating = False
riga = 24 + 0 * (Cells(1, 2) – 2007) + 6 * (Cells(1, 1)) ‘inizio dati salvati
Cells(riga + 1, 2) = Cells(1, 2)
Cells(riga + 1, 1) = Cells(1, 1)
For j = 1 To 5
For k = 1 To 10
Cells(10 + j, 2 + k).Select
Selection.Copy
Cells(riga + j, 2 + k).Select
ActiveSheet.Paste
Next k
Next j
MsgBox (”Foglio Archiviato!”)
fine:
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Alexsandra detto
@Bert0
Mi piace …. il codice e anche la partecipazione
bert01980 detto
non avendo a disposizione excel (sono allestero) non posso fare un codice come si deve e provarlo… quindi ho dovuto “appoggiarmi” sul tuo che funziona…
ma lo sfarfallio non dovrebbe esserci dato che con—> Application.ScreenUpdating = False
non dovresti vedere nulla…
per curiosità fai una prova cancellando quella riga e dimmi che succede
bert01980 detto
Ciao Codino…
ricordati a fine codice (prima dell’ end sub) di mettere—> Application.ScreenUpdating = True
giusto per completezza…
ciao ciao e alla prossima
codino2 detto
Ciao,Gentilissimo Bert0
Siii!!! proprio come dici tu;impostando Application.ScreenUpdating = False
il codice va che è una bellezza.
non ho parole per ringraziarti abbastana
ciao mitico.
grazie tantissime.
codino2 detto
ciao Bert0
Grazie tante ancora, alla prossima.
Ciao.