Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

formula per copiare tutto di una cella

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

formula per copiare tutto di una cella

Postdi matzap » 04/02/16 09:02

ciao,
c'è una formula da inserire in una cella che mi copia esattamento tutto di un altra cella?
Per tutto intendo testo e intera formattazione?
grazie
ciao
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Sponsor
 

Re: formula per copiare tutto di una cella

Postdi ricky53 » 04/02/16 11:49

Ciao,
con una formula puoi ottenere il contenuto di un'altra cella ma NON la formattazione della cella di partenza.

Puoi dare maggior informazioni su quello che ti occorre (descrivi il contesto e la tua necessità effettiva e non una semplificazione, fatta giustamente da te, per esporre il quesito nel forum), potremmo, insieme trovare la soluzione più adatta alla tua esigenza.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: formula per copiare tutto di una cella

Postdi Flash30005 » 04/02/16 11:52

Se per formula intendi la funzione da inserire in una cella non credo sia possbile
con macro sicuramente
Flash
Win7 + Office 2010 Ita
"Fotografica" al servizio dell'immagine

Ottime opportunità di lavoro (part-time o full-time) con guadagni immediati. Info in MP
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: formula per copiare tutto di una cella

Postdi matzap » 04/02/16 17:57

ok hai ragione, mi spiego meglio.
ho 12 fogli, uno per ogni mese. sulla riga 4, a partire dalla colonna B, ci sono i giorni del mese.
sulla riga 3 ho una casella unita in cui è indicata la settimana (7 caselle unite insieme).
quando seleziono la settimana con una macro stampo l'intervallo di righe e colonne relativa alla settimana. la macro è questa:
Codice: Seleziona tutto
rivate Sub CommandButton7_Click()
Dim colonna_origine As Integer
Dim colonna As Integer
Dim riga As Integer
riga = Selection.Row
'MsgBox riga
If riga = 3 Then
colonna_origine = Selection.Column
colonna = Selection.Column
'MsgBox colonna
colonna = colonna - 1
'MsgBox colonna
Do While colonna > 1
    'Columns(colonna).Select
     Columns(colonna).EntireColumn.Hidden = True
    'Selection.EntireColumn.Hidden = True
    colonna = colonna - 1
    'MsgBox colonna
Loop
Range("A3").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
   
    Application.Run ("stampa3")
    'ActiveWindow.Selection.PrintOut Copies:=1
    colonna = 1
    Do While colonna < colonna_origine
    colonna = colonna + 1
    Columns(colonna).Select
    Selection.EntireColumn.Hidden = False
    Loop
    Cells(3, colonna_origine).Select
Else
MsgBox "Seleziona una settimana"
End If
UserForm2.Show vbModeless
End Sub


la macro stampa3 che viene richiamata non fa altro che stampare.
tutto questo funziona con le settimane complete nel mese ma con le settimane a fine mese non funziona perchè una parte è su un foglio e una parte su un altro.

la mia idea era quella di inserire un altro foglio dove mettere tutto l'anno e per ogni cella copiare tutto quello che è inserito negli altri fogli, colori celle, commenti, testo ecc.
non so se sono stato chiaro..... :)
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: formula per copiare tutto di una cella

Postdi Anthony47 » 05/02/16 02:31

la mia idea era quella di inserire un altro foglio dove mettere tutto l'anno
Ecco, questa e' l'idea che approvo, cosi' come l'ho riscritta...
Non ha senso spezzettare i dati su 12 fogli; se proprio vuoi "vedere" i 12 mesi ti fai una colonna dove calcoli il mese di inizio della settimana e un'altra in cui calcoli il mese di fine; poi applichi il filtro automatico su queste colonne e filtri i periodi che vuoi.
Ovviamente puoi fare qualche piccola automazione con macro autoregistrate.

Se invece vuoi mantenere i 12 mesi separati (sequendo quindi l'attuale schema), allora il mio suggerimento e' che ogni settimana includa sempre i giorni dal Lun alla Dom, anche se appartengono al mese prima o dopo; poi all'occorrenza lanci una macro che copia nei giorni della settimana che non appartengono al mese corrente i contenuti prelevandoli dal mese precedente.
E' una macro abbastanza semplice, ma per essere sviluppata e' necessario conoscere esattamente il layout dei singoli fogli mensili; insomma devi allegare un file di esempio...

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per copiare tutto di una cella

Postdi matzap » 05/02/16 10:06

ok questo è il file di prova. per diverse questioni dovrei tenere i file separati. più che completare la settimana , si potrebbe:
prendere i primi giorni del mese successivo (es marzo), copiarli, incollarli alla fine del mese attuale (febbraio) , stampare l'ultima settimana di febbraio per intero e poi cancellare i giorni di marzo aggiunti.

http://www.filedropper.com/programmaprova
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: formula per copiare tutto di una cella

Postdi matzap » 08/02/16 10:52

ciao,
avete qualche idea?
matzap
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: formula per copiare tutto di una cella

Postdi Anthony47 » 09/02/16 02:13

Ecco la mia versione:
https://www.dropbox.com/s/073m2u4w4l7ru ... .xlsm?dl=0

Nel foglio Febbraio ho inserito dei contenuti sulla colonna del 29 Feb, che apparterra' alla settimana del primo marzo.
Il foglio Marzo contiene alcune modifiche:
-ho aggiunto 1 colonna per fare in modo che la prima settimana cominciasse da Lunedi', anche se appartenente a Febbraio
-in A1 ho inserito 2016, in A2 ho inserito 3
-in B1 ho inserito la formula =DATA(A1;A2;1) e ho formattato la cella perche' visualizzi Mar-2016
-in B4 (l'intestazione della colonna inserita) ho messo la formula =B1-GIORNO.SETTIMANA(B1;3)
Questa visualizzera' la data del lunedi' precedente a inizio mese
-in fondo alle colonne esistenti ho inserito ulteriori 7 colonne, da essere certo che tutto il mese sia rappresentato sul foglio
-in C4 ho messo la formula =B4+1 e l'ho copiata verso destra
-ho applicato una formattazione condizionale alle celle B4:AN4 per colorare in Grigio le date che non appartengono al mese corrente.

A questo punto ho inserito questa macro:
Codice: Seleziona tutto
Sub riporta()
Dim I As Long, J As Long, CInd As Long
Dim myMon As Range, myD As Range, myMatch, oldMatch
'
Set myMon = Range("B1")     '<<< La cella con la data di inizio mese
Set myD = Range("B4")       '<<< La cella dove cominciano le date del mese
'
CInd = ActiveSheet.Index
If Month(myMon) = 1 Then            '*** Vedi Tsto
    MsgBox ("Copiare eventuali dati mancanti dal file dell'anno scorso")
    Exit Sub
End If
If Month(myMon) <> Month(Now) Then  '*** Vedi Testo
    MsgBox ("Il mese Corrente e' diverso dal mese Selezionato, non e' possibile eseguire la macro")
    Exit Sub
End If
For I = 0 To 6
    If Month(myD.Offset(0, I)) <> Month(myMon) Then
        For J = myD.Row + 1 To Cells(Rows.Count, 1).End(xlUp).Row
            myMatch = Application.Match(Cells(J, 1), Sheets(CInd - 1).Range("A:A"), 0)
            oldMatch = Application.Match(myD.Offset(0, I), Sheets(CInd - 1).Cells(myD.Row, 1).Resize(1, 31 + 20), 0)
            If Not IsError(myMatch) And Not IsError(oldMatch) Then
                Sheets(CInd - 1).Cells(myMatch, oldMatch).Copy Cells(J, myD.Column + I)
            End If
        Next J
    Else
        Exit For
    End If
Next I
End Sub
Le istruzioni marcate <<< sono da personalizzare; io le ho impostate come da foglio pubblicato.

L'obiettivo della macro e' quello di copiare dal "mese precedente" al mese "selezionato" le attivita' corrispondenti a giornate che capito, nel calcolo della settimana, a cavallo del mese.
Per "Mese precedente" si intende quello immediatamente alla sinistra del foglio attuale; quindi l'ordine dei fogli deve essere rigorosamente consecutivo: Gennaio, Febbraio, .... Dicembre.
Le istruzioni marcate *** impediscono che la macro venga eseguita sul mese di Gennaio o se la data odierna non corrisponde al mese selezionato; quindi il "riporto" da un mese al mese successivo va fatto entro "il mese successivo", che mi pare un termine abbastanza ampio.

Volendo inserire automaticamente la data in testa a ogni foglio mensile secondo lo standard descritto (anno in A1, mese in A2, formula della data in B1) ho inserito anche una macro Private Sub Workbook_SheetActivate(ByVal Sh As Object) all'interno del modulo QuestaCartellaDiLavoro:
Codice: Seleziona tutto
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'
Exit Sub                    '++++ Vedi Testo
'
If ActiveSheet.Index > 1 And ActiveSheet.Index < 14 Then
    Sh.Range("A2") = ActiveSheet.Index - 1
    Sh.Range("A1") = Sheets(1).Range("A1").Value
    Sh.Range("B1").FormulaR1C1 = "=DATE(RC[-1],R[1]C[-1],1)"
    Sh.Range("B1").NumberFormat = "mmm-yy"
End If
End Sub

La macro al momento e' disabilitata grazie all'istruzione marcata +++; se si vuole attivarla bisognera' inserire l'anno in A1 del primo foglio (quello che si chiama "2016") e aggiungere un "apostrofo" in testa alla riga (' Exit Sub) in modo da consentire l'esecuzione del codice successivo.
In questo modo tutte le volte che si attiva un foglio tra il secondo (Gennaio) e il tredicesimo (Dicembre) verranno compilate le celle A1, A2 e la formula in B1.

Dei fogli presenti, solo il mese di Marzo e' stato modificato come descritto; in alcuni mesi ho eseguito la Sub Workbook_SheetActivate per applicare la formula per la data in B1.

Spero che quanto proposto di qualche utilita'...
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: formula per copiare tutto di una cella

Postdi matzap » 09/02/16 11:15

ciao Anthony, intanto grazie! Al più presto studierò tutto quello che hainpostatobebti farò sapere. csapereciaoCiao
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27

Re: formula per copiare tutto di una cella

Postdi matzap » 15/02/16 18:29

Ciao Anthony,
ho esteso ho modificato anche tutti gli altri fogli e mi sembra funzioni abbastanza bene. devo solo fare qualche aggiustamento.
Grazie ancora.
excel 2010
matzap
Utente Senior
 
Post: 227
Iscritto il: 16/04/13 08:27


Torna a Applicazioni Office Windows


Topic correlati a "formula per copiare tutto di una cella":


Chi c’è in linea

Visitano il forum: raimea e 11 ospiti