Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Copiare formule excel in colonne non adiacenti

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

Copiare formule excel in colonne non adiacenti

Postdi mondogrosso » 17/07/13 11:35

Buongiorno a tutti, mi sono appena iscritto al forum poichè avrei un piccolo problemino da risolvere.

Il problemino è il seguente:

Esempio:

La colonna G contiene la seguente formula: AxD

E' possibile scrivere una macro per copiare automaticamente nelle colonne I e K rispettivamente le formule BxE e CxF?

Grazie in anticipo della disponibilità.

Buona giornata,

Lucio

PS: per essere più chiaro potrei incollare l'immgine del folgio excel ma non so come fare.
mondogrosso
Utente Junior
 
Post: 14
Iscritto il: 17/07/13 11:04

Sponsor
 

Re: Copiare formule excel in colonne non adiacenti

Postdi Anthony47 » 26/07/13 12:55

Non so se il problema e' ancora aperto...
Questa macro scrivera' in colonna I e K le formule che credo hai chiesto, da riga 1 alla riga in cui esiste in colonna G una formula.
Codice: Seleziona tutto
Sub MacroIK()
Dim LastG As Long
LastG = Cells(Rows.Count, "G").End(xlUp).Row
Range("I1").Resize(LastG, 1).FormulaR1C1 = "=RC[-7]*RC[-4]"
Range("K1").Resize(LastG, 1).FormulaR1C1 = "=RC[-8]*RC[-5]"
End Sub

Da Excel, Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia il codice e inseriscilo nel frame vuoto di destra.

Torna su Excel e manda in esecuzione la macro: Alt-F8, scegli MacroIK nell' elenco che ti presenta, premi Esegui.

Alcune regole me le sono inventate, ad esempio quale formula esattamente scrivere e su quante righe; se intendevi qualcosa di diverso allora posta ancora spiegando con dovizia di particolari.
Se vuoi allegare un file o un' immagine guarda qui: viewtopic.php?f=26&t=80395

Ricorda che c' e' una sezione specifica per le questioni dell' ambiente Office: viewforum.php?f=26; se posti in quella sezione probabilmente avrai maggiori chance di risposte.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare formule excel in colonne non adiacenti

Postdi mondogrosso » 28/07/13 11:02

Ciao Anthony, ti ringrazio della risposta. Ho testato il tuo codice è il risultato lo puoi vedere nell'immagine che ti allego.

http://rapidshare.com/files/3536172973/Immagine%201_Copia%20Formula.JPG

In realtà a me servirebbe copiare le formule della colonna A (X*Y) nella colonna B trasformando la formula della colonna A nella formula = (Y*Z).
Ti ringrazio della tua disponibilità e ti auguro una buona giornata.
Lucio
mondogrosso
Utente Junior
 
Post: 14
Iscritto il: 17/07/13 11:04

Re: Copiare formule excel in colonne non adiacenti

Postdi Anthony47 » 29/07/13 00:07

L' immagine non e' visibile, probabilmente l' hai caricata nel folder "privato" di Rapidshare; nella discussione che ti avevo linkato c' e' la spiegazione di come creare un folder e dichiararlo accessibile a terzi. Ma per le immagini il sito consigliato e' imageshack.us (istruzioni sempre nel link gia' dato).
In ogni caso e' opportuno usare file e immagini allegati "a complemento" della descrizione data nel messaggio, non "in sostituzione".

Non sapendo cosa ti e' successo noto pero' che l' ultima descrizione ["a me servirebbe copiare le formule della colonna A (X*Y) nella colonna B trasformando la formula della colonna A nella formula = (Y*Z)"] e' diversa dalla precedente ("copiare automaticamente nelle colonne I e K rispettivamente le formule BxE e CxF") e dal titolo ("Copiare formule excel in colonne non adiacenti"), ma e' piu' semplice da risolvere: basta copiare le formule di colonna A in colonna B.

Questa e' sempre la mia interpretazione di quello che hai scritto; rinnovo il suggerimento "se intendevi qualcosa di diverso allora posta ancora spiegando con dovizia di particolari".

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare formule excel in colonne non adiacenti

Postdi mondogrosso » 29/07/13 08:07

Ciao Anthony,
ti ringrazio nuovamente della risposta e dell'aiuto; non avendoti spiegato che le colonne A e B non sono adiacenti è difficile trovare la soluzione al problema!!! Di seguito riporto il link di imageshack e spero che finalmente riesca a vedere l'immagine.

[img][URL=http://imageshack.us/photo/my-images/571/f76w.jpg/][/img]

Buona giornata.
mondogrosso
Utente Junior
 
Post: 14
Iscritto il: 17/07/13 11:04

Re: Copiare formule excel in colonne non adiacenti

Postdi Anthony47 » 29/07/13 23:44

Questa e' l' immagine pubblicata:
Immagine
Uploaded with ImageShack.us

Perdona, ma non ti sembra inutile e fuorviante chiamare A i dati di colonna A, B quelli di colonna D, X quelli dell' intervallo A11:A6 etc etc? non potevi descrivere subito gli intervalli in gioco?

Comunque, immagino che in A2 hai la formula =A11*B11, poi copiata nelle celle sottostanti; e in D2 vorresti inserire la formula =B11*C11, replicandola nelle celle sottostanti.
Se e' cosi', allora in che cosa e' inidonea o non applicabile l' ipotesi appunto di scrivere in D2 la formula =B11*C11 e poi copiarla verso il basso?
Mi sono fatto, a livello di ipotesi, un' idea del perche' questa procedura potrebbe non essere idonea, ma invece di esporti le mie idee preferirei conoscere eventualmente le tue reali esigenze; pertanto, se in quanto fin qui detto non trovi lo spunto idoneo, ti chiederei di spiegare il reale bisogno con dovizia di particolari.

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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare formule excel in colonne non adiacenti

Postdi mondogrosso » 30/07/13 08:31

Buongiorno Anthony,

ti chiedo scusa per la poca chiarezza del mio post e proverò a descriverti la questione con maggior dettaglio.

La mia esigenza è questa: vorrei copiare nella cella D2 la formula =B11*C11, nella cella D3 la formula =B12*C12 e così via fino alla cella D7 poi nella cella dell'intervallo G2 la formula =C11*D11, nella cella G3 la formula =D12*E12 e così via fino alla cella G7 poi nella cella J2 la formula =E11*F11 e così via. Tale operazione dovrebbe ripetersi per un numero di colonne pari al numero di colonne dell'area dei dati di input, nell'esempio i dati di input sono inseriti dalla riga 11 e dalla colonna A.
Spero di essere stato un pò più chiaro e ti ringrazio del tempo che mi stai dedicando.

Buona giornata.
mondogrosso
Utente Junior
 
Post: 14
Iscritto il: 17/07/13 11:04

Re: Copiare formule excel in colonne non adiacenti

Postdi Anthony47 » 30/07/13 23:48

Questa macro dovrebbe fare quanto richiesto:
Codice: Seleziona tutto
Sub mgrosso()
Dim AreaIn As String, PrimaForm As String
Dim PassoH As Long, PCForm As Long, PRForm As Long, I As Long, J As Long
Dim FRow As Long, HMRows As Long
'
AreaIn = "A11:D11"  '<< La prima riga delle colonne con dati
PassoH = 3          '<< La distanza tra le colonne delle formule
PrimaForm = "A1"    '<< La prima cella della prima colonna con le formule X*Y
'
PCForm = Range(PrimaForm).Column
PRForm = Range(PrimaForm).Row
'HMCols = Range(AreaIn).Cells(1, 1).End(xlToRight).Column
HMRows = Range(AreaIn).Cells(1, 1).End(xlDown).Row - Range(AreaIn).Cells(1, 1).Row
FRow = Range(AreaIn).Cells(1, 1).Row
For I = 1 To Range(AreaIn).Columns.Count - 1
    For J = 0 To HMRows
        If J >= (FRow - 1) Then MsgBox ("Area dati e area Formule sono sovrapposte; processo Abortito"): _
            Exit Sub
        Cells(PRForm + J, PCForm + PassoH * (I - 1)).FormulaR1C1 = "=R" & FRow + J & "C" & Range(AreaIn).Cells(1, I).Column & _
            "*R" & FRow + J & "C" & Range(AreaIn).Cells(1 + J, I + 1).Column & ""
    Next J
Next I
End Sub
Da Excel, premi Alt-F11 per aprire l' editor delle macro; Menu /Inserisci /Modulo; copia il codice e incollalo nel frame vuoto di dx del "Modulo" appena creato.
Personalizza le istruzioni marcate << come da commento

Poi torna su excel e lancia la macro: Alt-F8; seleziona Sub mgrosso dall' elenco che ti verra' proposto; premi Esegui.
Controlla quindi il risultato sul foglio; e se qualcosa non quadra posta ancora scrivendo che cosa non quadra (che cosa avresti voluto trovare e che cosa hai invece trovato).

Comunque fai sapere, 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: 13899
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Copiare formule excel in colonne non adiacenti

Postdi mondogrosso » 31/07/13 08:37

Ciao Anthony,

il codice funziona benissimo.

Grazie mille, mi hai risparmiato un bel pò di lavoro.

Buona giornata.
mondogrosso
Utente Junior
 
Post: 14
Iscritto il: 17/07/13 11:04

Re: Copiare formule excel in colonne non adiacenti

Postdi mondogrosso » 31/07/13 10:34

Ciao Anthony, scusa se ti disturbo ancora ma avrei un'altra piccola cosa da chiederti: sempre in riferimento all'esempio precedente

come andrebbe modificato il tuo codice nei seguenti casi:

1. cella B1 formula =A1*A11
2. cella B2 formula =A2*A12 e così via fino alla cella B7
3. cella E1 formula =D1*B11
4. cella E2 formula =D2*B12 e così via fino alla cella E7
5. anche in questo caso l'operazione dovrebbe ripetersi per un numero di colonne pari al numero di colonne dell'area dei dati di input dell'esempio precedente.

Ti ringrazio in anticipo per la tua disponibilità e ti auguro una buona giornata.
mondogrosso
Utente Junior
 
Post: 14
Iscritto il: 17/07/13 11:04


Torna a Applicazioni Office Windows


Topic correlati a "Copiare formule excel in colonne non adiacenti":


Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti