Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Come copiare in automatico il contenuto di più celle

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

Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 20/07/13 10:06

Buon sabato a Tutti,

vorrei trovare la formula che mi permetta di trasportare in automatico il contenuto di più celle ( es. A1;B1;C1 ecc.) evidenziandole con una sigla a piacere: es. un asterisco o una lettera a caso dell'alfabeto, posizionata però al di fuori della tabella in cui ho inserito i dati , esempio in L1.

Il tutto (solo chiaramente ciò evidenziato attraverso la lettera "a" in questo caso, deve finire in calce e con la stessa matrice estetica, alla tabella di cui sotto, es. in A25, nel caso nulla si evidenziasse con la lettera a deve rimanere lì.

Non so se sono stato abbastanza chiaro, temo di no, nel caso, allego specchietto del file:

Codice: Seleziona tutto
A1              B1          C1   D1       F1       G1   H1       I1      L1   

Formulario    PRX 217223   /12   del   01/07/2013   =   Ton.    18,20   
Formulario    PRX 217224   /12   del   01/07/2013   =   Ton.    19,66   
Formulario    PRX 217225   /12   del   01/07/2013   =   Ton.    20,00   A
Formulario    PRX 217227   /12   del   01/07/2013   =   Ton.    22,72   
Formulario    PRX 217228   /12   del   01/07/2013   =   Ton.    19,26   
Formulario    PRX 217231   /12   del   02/07/2013   =   Ton.    21,08   A
Formulario    PRX 217232   /12   del   02/07/2013   =   Ton.    22,26   


Codice: Seleziona tutto
A25             B25         C25  D25      F25      G25  H25       I25     L25
Formulario    PRX 217225   /12   del   01/07/2013   =   Ton.      20,00
Formulario    PRX 217231   /12   del   02/07/2013   =   Ton.      21,08


Grazie di cuore,
D.
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Sponsor
 

Re: Come copiare in automatico il contenuto di più celle

Postdi Anthony47 » 20/07/13 16:09

Nell' ipotesi che la domanda sia:
-dato un elenco in A1:In (es A1:I20), vorrei che tutte le righe che vado a marcare in colonna L con un carattere fisso e noto vengano elencate in A25 e righe sottostanti
allora potresti usare una macro di WorksheetChange come questa:
Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
Dim NextR As Long, CheckA As String
'
CheckA = "L1:L20"   '<< L' area in cui saranno inserite le "X"
myCheck = "X"       '<< Il carattere con cui si marcheranno le righe da copiare
'
If Target.Count > 1 Then Exit Sub
If Application.Intersect(Range(CheckA), Target) Is Nothing Or UCase(Target.Value) <> UCase(myCheck) Then Exit Sub
myCols = "A:I"      '<< Le colonne che si dovranno copiare
Application.EnableEvents = False
NextR = Cells(Rows.Count, 1).End(xlUp).Row + 1
If NextR < 25 Then NextR = 25
Application.Intersect(Range(myCols), Rows(Target.Row)).Copy _
    Destination:=Cells(NextR, 1)
Application.EnableEvents = True
End Sub
Uso: tasto dx sul tab col nome del Foglio su cui devi lavorare, scegli visualizza codice, metti questa macro nel frame vuoto di dx.
Personalizza le istruzioni marcate <<.
Poi torna sul foglio excel e prova.

Ciao, fai sapere.
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: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 20/07/13 16:17

Anthony, grazie per il Tuo sforzo, ma ahimè non so né usare le macro né tanto meno inserirla come da Te indicato...
D.
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Come copiare in automatico il contenuto di più celle

Postdi Anthony47 » 20/07/13 16:19

Uso: tasto dx sul tab col nome del Foglio su cui devi lavorare, scegli visualizza codice, metti questa macro nel frame vuoto di dx.
Personalizza le istruzioni marcate <<.
Poi torna sul foglio excel e prova.

In che cosa queste istruzioni ti confondono?
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: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 20/07/13 16:32

Ho fatto quello che mi hai detto, modificato le celle da copiare, ho lasciato la "X" (mi va bene quella) ma non capisco come inserire le celle in cui andranno copiate grazie alla macro le celle evidenziate dalla "x" e poi come si fa a far partire la macro?
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 20/07/13 16:50

Niente da fare, non riesco a combinare nulla... :cry: :cry: :cry:
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Come copiare in automatico il contenuto di più celle

Postdi scossa » 20/07/13 19:24

Anthony47 ha scritto:Nell' ipotesi che la domanda sia:
-dato un elenco in A1:In (es A1:I20), vorrei che tutte le righe che vado a marcare in colonna L con un carattere fisso e noto vengano elencate in A25 e righe sottostanti
allora potresti usare una macro di WorksheetChange come questa:

CUT...


Ciao Anthony,

mi domandavo: cosa succede (o meglio cosa Dani vorrebbe succedesse) quando una A venisse cancellata etc....?

Quindi propongo il seguente codice che, fatte salve le tue premesse riguardo ai range (ovviamente da adattare alla reale situazione) copia ogni volta le sole righe con una testo nelle celle L1..L20, (senza fare alcun ciclo sulle singole celle, quindi piuttosto veloce):

Nel modulo di classe del foglio:

Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Me.Range("L1:L20")) Is Nothing Then
    Application.EnableEvents = False
    Call Ricopia
    Application.EnableEvents = True
  End If
End Sub



In un modulo standard:

Codice: Seleziona tutto
'---------------------------------------------------------------------------------------
' Procedure : Ricopia
' Author    : scossa
' Date      : 20/07/2013
' Purpose   :
'---------------------------------------------------------------------------------------
'
Public Sub Ricopia()

  Dim wb As Workbook
  Dim ws As Worksheet
  Dim rng As Range
  Dim rngFr As Range
  Dim rngTo As Range
  Dim cella As Range
  Dim bCalc As XlCalculation
 
  With Application
    bCalc = .Calculation
    .Calculation = xlCalculationManual
    .ScreenUpdating = False
  End With
   
  Set wb = ThisWorkbook
  Set ws = wb.ActiveSheet
  Set rng = ws.Range("A1").CurrentRegion
  Set rngTo = ws.Range("A25")
  rngTo.CurrentRegion.ClearContents
 
  On Error Resume Next
  Set rngFr = rng.Columns(1).Offset(0, 11).SpecialCells(xlCellTypeConstants, xlTextValues)
  If Err.Number = 0 Then
    Set rng = Intersect(rngFr.EntireRow, rng)
    rng.Copy rngTo
  End If
  On Error GoTo 0

  With Application
    .Calculation = bCalc
    .ScreenUpdating = True
  End With
   
  Set rng = Nothing
  Set rngFr = Nothing
  Set rngTo = Nothing
  Set ws = Nothing
  Set wb = Nothing

End Sub
Ultima modifica di scossa su 20/07/13 19:30, modificato 1 volte in totale.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Come copiare in automatico il contenuto di più celle

Postdi scossa » 20/07/13 19:24

danibi60 ha scritto:Niente da fare, non riesco a combinare nulla... :cry: :cry: :cry:


Se tu allegassi il tuo file ......
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 20/07/13 19:40

Vorrei allegarlo ma come si fa?
Grazie Scossa!
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Come copiare in automatico il contenuto di più celle

Postdi scossa » 20/07/13 20:05

danibi60 ha scritto:Vorrei allegarlo ma come si fa?


Vai su un sito di file sharing (per esempio http://wikisend.com) e fai l'upload del tuo file, otterrai un link che dovrai comunicare qui.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 20/07/13 20:57

scossa ha scritto:
danibi60 ha scritto:Vorrei allegarlo ma come si fa?


Vai su un sito di file sharing (per esempio http://wikisend.com) e fai l'upload del tuo file, otterrai un link che dovrai comunicare qui.


Eccolo, grazie.

Ho simulato nel file il risultato che vorrei si ottenesse dalla macro, è chiaro che il posizionamento delle varie X potrebbero variare

http://wikisend.com/download/486408/File test danibi.xls

Grazie, Scossa,
D.
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Come copiare in automatico il contenuto di più celle

Postdi scossa » 20/07/13 23:11

danibi60 ha scritto:http://wikisend.com/download/486408/File test danibi.xls


Io non riesco a capire perché nel primo post dai un esempio di dati che non corrisponde al tuo file, infatti le colonne non corrispondono.
Ora, siccome credo non piaccia a nessuno perdere tempo, puoi confermare la struttura dei dati del file che hai allegato?
Devono essere prese in considerazione entrambe le tabelle (A..I e L..T)?
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Come copiare in automatico il contenuto di più celle

Postdi Anthony47 » 20/07/13 23:54

Ciao scossa,
quando il problema viene posto con qualche approssimazione ma si puo' fare una ragionevole stima ho (quasi) sempre l' abitudine di lanciare una ragionevole bozza di soluzione.
La bozza di soluzione era riferita alla bozza di problema come l' avevo ridescritto:
dato un elenco in A1:In (es A1:I20), vorrei che tutte le righe che vado a marcare in colonna L con un carattere fisso e noto vengano elencate in A25 e righe sottostanti

Rileggendolo avrei potuto dettagliare meglio, scrivendo " vorrei che tutte le righe che vado a marcare una ad una (una dopo l' altra) in colonna L con un carattere fisso e noto vengano etc etc"
Andando quindi alla tua domanda "cosa succede quando una A venisse cancellata" la risposta e': Non succede niente, perche' la WorksheetChange completa il suo lavoro solo se la cella modificata contiene il carattere dichiarato in myCheck, quindi se un record era gia' stato copiato rimane copiato in coda, se non era stato copiato non viene ora ne' copiato ne' rimosso; se questo e' in linea con l' idea di danibi60 lo lascio chiarire a lui.

Usando il file che e' stato allegato la mia macro copia regolarmente, accodandole dopo la riga 25 minimo, quelle righe che vengono marcate in colonna I (previo adattamento di CheckA = "I1:L25"); ovviamente non lavora sul secondo gruppo di colonne (L:T) che non erano state descritte e per la cui gestione ovviamente bisogna fare piccoli adattamenti al codice, cioe' modificare CheckA = "I1:L25" in CheckA = "I1:L25, T1:T25"
e myCols = "A:I" in If Target.Column = 9 Then myCols = "A:I" Else myCols = "L:S"

Purtroppo non vedo come l' utente ha provato a implementare quanto proposto e quindi non so in che cosa non ha funzionato; se non sbaglio il tuo codice funzionalmente si dovrebbe comportare allo stesso modo.

Per allegare un file c' e' una discussione in testa all' indice, dal titolo "Come allegare un file" (vedi viewtopic.php?f=26&t=80395)

Ciao a tutti.
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: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 21/07/13 07:27

Gentil.mi Scossa e Anthony, non è mia abitudine, né tanto meno volontà far perdere tempo a nessuno, e se ciò è successo, le mie scuse iniziano da qui per finire nell'eternità.

Avevo indicato la prima parte della tabella in quanto credevo che l'eventuale utilizzo di una formula, potesse poi tranquillamente venir mutuata anche su un'altra porzione di file; non immaginavo di certo di complicarvi la vita sino a questo punto.

Ad ogni modo, vista la vostra enorme competenza che viaggia di pari passo con i vostri termini, così come i tecnicismi - per me paragonabili quasi all'aramaico antico - cercherò, attraverso una lettura più accurata delle vostre osservazioni, di alienare qualsiasi dubbio.

Si Scossa!, si devono prendere in considerazione tutte e due le tabelle : (A..I e L..T)
Inoltre non ho mai, come ho già scritto in un precedentemente messaggio, usato le macro e quando ho copiato il testo di Anthony non è successo nulla, nel senso che dopo aver copiato, presumo salvato la macro, sono andato nel file di excell e non sapevo che fare. Aggiungo che mi veniva segnalato che le macro erano disabilitate e, nonostante abbia, nelle opzioni di excell, attivato la macro, comunque non funziona nulla.

Attendo vostre istruzioni e, se la cosa fosse troppo complessa anche per Voi, ripiegherò su di un bel "copia e incolla" manuale.

Grazie ancora,

D.

ps

Anthony, nelle tue formule aggiunte nel tuo ultimo messaggio temo vi siano degli errori:

TU scrivi: CheckA = "I1:L25, T1:T25", ma in realtà i periodi di celle coinvolte dovrebbero essere: CheckA = "I1:I25, T1:T25"

Nella seconda formula ( myCols = If Target.Column = 9 Then myCols = "A:I" Else myCols = "L:S") non so cosa non vada, ma quando copio il tutto, il sistema mi avvisa che c'è un errore nella compilazione
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 21/07/13 07:47

Anthony, questa allegata l'immagine dell'errore

http://wikisend.com/download/345252/Immagine errore macro.bmp

Ciao,
D
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Come copiare in automatico il contenuto di più celle

Postdi scossa » 21/07/13 08:08

Ciao Anthony, Dani,

Anthony47 ha scritto:...se non sbaglio il tuo codice funzionalmente si dovrebbe comportare allo stesso modo.


Non mi pare si comportino nello stesso modo: la tua, inserendo il flag (X) in una cella L1..L20 copia la relativa riga, se un flag viene cancellato la riga copiata resta, se poi il flag viene rimesso la riga viene nuovamente copiata creando dei doppioni; il mio codice genera, ad ogni modifica di una cella L1..L20, un nuovo elenco (che sostituisce il precedente) delle righe flaggate.
Non sto dicendo che il tuo codice sia sbagliato ed il mio corretto, al massimo possono essere "sbagliate" le interpretazioni" che abbiamo dato all'esigenza di Dani, ma questo deve chiarirlo lui.
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Come copiare in automatico il contenuto di più celle

Postdi scossa » 21/07/13 08:15

Ciao Dani,

non prendertela per la mia "sbuffata" è che spesso chi chiede aiuto crede di facilitare le cose mettendo degli esempi "banalizzati" rispetto alla reale esigenza, e questo alla fine porta a proporre soluzioni non appropriate e quindi a "perdere tempo", e la cosa non è piacevole.

danibi60 ha scritto:Si Scossa!, si devono prendere in considerazione tutte e due le tabelle : (A..I e L..T)


Non hai chiarito se le righe delle "registrazioni" (A25 ... in giù) devono riportare le sole righe A1.. I20 (L1..T20) flaggate o se deve restare lo storico di tutte le righe di volta in volta registrate (anche se il flag venisse cancellato).
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 21/07/13 08:39

Ciao Scossa, capisco perfettamente la Tua "sbuffata" ed è stata legittima: per cercare di facilitare alla fine ho complicato la vita.

Tornando ai Tuoi quesiti

No, per evitare confusioni, visto che il file di mese in mese verrebbe rinominato per la sua compilazione, (Luglio 2013, Agosto 2013, Settembre 2013 ecc.ecc.) non mi interessa che rimanga uno storico, ciò che conta è che si ricopino solo le celle flaggate, che di mese in mese varierebbero in funzione del n° di formulario in esse trascritto.

Spero di avere esaudito la Tua richiesta.

Grazie,
D.
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Re: Come copiare in automatico il contenuto di più celle

Postdi scossa » 21/07/13 08:47

danibi60 ha scritto:No, per evitare confusioni, visto che il file di mese in mese verrebbe rinominato per la sua compilazione, (Luglio 2013, Agosto 2013, Settembre 2013 ecc.ecc.) non mi interessa che rimanga uno storico, ciò che conta è che si ricopino solo le celle flaggate, che di mese in mese varierebbero in funzione del n° di formulario in esse trascritto.


Quindi confermi che deve riportare le sole righe con la X presenti in quel momento, giusto? (vedi mia risposta ad Anthony).

Altre due domande importanti:
1) le celle delle colonne B-C-E-H possono effettivamente essere vuote? lo sono sempre? non lo sono mai?

2) deve essere copiata anche la formattazione delle celle (p.e. lo sfondo giallo) o solo i "valori"?
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Come copiare in automatico il contenuto di più celle

Postdi danibi60 » 21/07/13 08:56

Le colonne B-C-E-H saranno sempre riempite di volta in volta con testi che variano (te ne allego un esempio) e lo saranno sempre.

Non niente sfondo giallo, solo valori.

Grazie.

Formulario TWX 23456 /13 del 23/06/2013 = Ton. 34,50
"Chi ama un ranocchio non sa che farsene se al secondo bacio è già un Principe Azzurro."
Win 8.1 & Office 2007
danibi60
Utente Senior
 
Post: 158
Iscritto il: 11/07/13 09:21
Località: Bergamo

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Come copiare in automatico il contenuto di più celle":


Chi c’è in linea

Visitano il forum: alfrimpa, patel e 13 ospiti