Condividi:        

estrazione di colonne in funzione di un dato e riepilogo

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

estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 27/01/13 10:54

Step by step sono arrivato (grazie al Vs lavoro...) al file che allego.
quello che vorrei fare è questo:
mi avete scritto una comodissima macro (nel file di chiama Compila) che mi mette in colonna (nel foglio di lavoro "INCOLONNA" dei dati presenti nel foglio di lavoro "RIEPILOGO ORDINI"necessito che avvenga la stessa operazione ma per solo quelle righe (e colonne) che hanno delle condizioni.Tali dati dovranno andare nel foglio "RIMANENTI"
la condizione è questa con riferimento al foglio "RIEPILOGO ORDINI"
se G3 è una cella vuota copia a3,b3,c3,d3,e3, (dove g3 inrealtà va da 3-100) sul foglio "rimanenti"
e così via:
se S3 è una cella vuota copia m3,n3,o3,p3,q3, (dove g3 inrealtà va da 3-100) sul foglio "rimanenti"
e così via:
se AE3 è una cella vuota copia Y3,Z3,AA3,AB3,AC3, (dove g3 inrealtà va da 3-100) sul foglio "rimanenti"
E IL GIOCHINO...va avanti
http://www.filedropper.com/com5000test

è una cosa possibile?
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Sponsor
 

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi Flash30005 » 27/01/13 12:29

luca62 ha scritto:è una cosa possibile?

Penso di si
più difficile è, invece, capire cosa devi fare:
in G3, S3, AE3 ci sono delle date (in Riepilogo Ordini) e a volte anche delle stringhe "Esist."
mentre nel foglio "Rimanenti" in G valori a due cifre
in S dei codici da 5 a 7 cifre
e in AE non c'è nulla :roll:

Quindi, a mio parere, dovresti spiegare meglio il tuo quesito facendo preciso riferimento al foglio che hai inviato.

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: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 27/01/13 18:40

colpito e affondato...
hai ragione, ma non è facile spiegarsi!inoltre avevo postato un file
prima di salvarlo...sorry ecco il nuovo con esempio pratico in rimanenti
http://www.filedropper.com/com5000test_1

in G3, S3, AE3 ci sono delle date (in Riepilogo Ordini) e a volte anche delle stringhe "Esist."
Giusto infatti devo copiare nel foglio rimanenti solo quelli che non hanno in Gi,Si,AEi (i da 3 a100)
una data o una parola (es esist),ossia solo quelli che presentano la cella Gi o Si o AEi vuota e che
non hanno ci =0.
I dati devono essere incolonnati come vedi attualemnte nel file postato (mettendoli a mano)
ora spero sia chiaro prima era assolutamnte incomprensibile sorry
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi Flash30005 » 28/01/13 00:29

Prova a vedere se va bene questa macro
Codice: Seleziona tutto
Sub CompRiman()
Set Ws1 = Sheets("RIEPILOGO ORDINI")
Set Ws2 = Sheets("RIMANENTI")
Application.ScreenUpdating = False
Application.Calculation = xlManual
Ws2.Cells.Clear
For CC = 1 To 156 Step 12
Ws1.Range(Ws1.Cells(3, CC), Ws1.Cells(100, CC + 6)).Copy Destination:=Ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Next CC
Ws1.Range("A1:E1").Copy Destination:=Ws2.Range("A1")
UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
For RR2 = UR2 To 2 Step -1
If Ws2.Range("G" & RR2).Value <> "" Or Ws2.Range("C" & RR2).Value = 0 Then Ws2.Rows(RR2).Delete
Next RR2
Range("F:G").Clear
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
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: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 28/01/13 10:30

la macro per quanto riguarda il foglio rimanenti alla perfezione, solo che come vedi dal file allegato,
mi va a cancellare dati anche nel primo foglio (CA-2T-50-9X2-110-100) che è la lista e che cambia
nome sempre ,ma è sempre il primo foglio di ogni file,cancellado alcune righe, mi porta errore poi di conseguenza
sugli altri fogli


http://www.filedropper.com/com5000test4
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi Flash30005 » 28/01/13 10:55

Penso che tu abbia qualche altro problema perché la macro non tocca minimamente altri fogli né tantomeno il foglio "RIEPILOGO ORDINI" che utilizza come dati origine.
Pertanto ricontrolla cosa attivi, avrai sicuramente fatto casino :D

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: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 28/01/13 12:03

ho notato questo
non succede niente al file che ti avevo postato, mentre va tutto a ...put...
una volta che ho aggiunto un foglio di lavoro (55797 barre del..) che porta nel foglio riepilogo ordini
(con la macro copiacolonne che lavora regolarmente)un incremento di altre 12 colonne (erano 12 x 14=168 , e sono diventate 12 x15 180)
ma non capisco perchè mi faccia casino nel Foglio1 .
io dico il problema è qui:

For CC = 1 To 156 Step 12
che se ho capito dice quanti step deve fare ed il range (o ho detto una caz.?)
mentre io posso avere nel foglio riepilogo ordini 12 X i colonne dove i va da 1-30-40?
ma continuo a non capire coa c'entri il foglio1!



riposto il file incriminato!
http://www.filedropper.com/com5000test4
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi Flash30005 » 28/01/13 12:40

Il For CC = 1 to 156 step 12
serve a "leggere" la prima colonna di ogni range
step sta per passo quindi con salto 12 ad ogni passaggio
ma la macro, come potrai notare, utilizza i fogli Ws1 e Ws2 che sono dichiarati all'inizio
quindi solo i due fogli (foglio origine e foglio destinazione).
Quello che succede a te sarà dovuto a qualche altra macro che lavora su tutti i fogli magari con
For F = 1 to Worksheets.count (che qui non c'è)
se aggiungi un foglio, quel foglio sarà processato altrimenti dovrai escluderlo con la condizione
If (sheets(F).name <>...

Ma questo non fa parte di questo topic che reputo risolto.

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: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 28/01/13 14:02

sto cercando di capire e per capire...ti chiedo se mi puoi "tradurre"
For RR2 = UR2 To 2 Step -1
If Ws2.Range("G" & RR2).Value <> "" Or Ws2.Range("C" & RR2).Value = 0 Then Rows(RR2).Delete
Next RR2
Range("F:G").Clear
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

perchè ho visto che facendo qualche variazione sul file che funzionava , tende..a
cancellare in maniera random (random per me....) e non solo il foglio1 ma anche righe o colonne in altri fogli
(facendo una copia di un foglio processato già va in malora)
e presumo che il "problema" sia nel comando che dice di cancellare, ma io..presumo
poco dall'alto...della mia ignoranza!vado a tentoni...nel buio
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi Flash30005 » 28/01/13 17:31

Le righe codice che riporti servono per eliminare le righe non avent alcuna data in colonna G e avendo zero nella colonna C

Fai attenzione perché Then Rows(RR2).delete è stato corretto in
Ws2.Rows(RR2).Delete
ma evidentemente hai copiato la macro prima della correzione.
Questo potrebbe essere il motivo della cancellazione di righe su altri fogli
se la macro veniva attivata non dal foglio "Rimanenti"

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: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 29/01/13 07:44

ci siamo quasi, solo che sul foglio riepilogo ordine mi cancella il contenuto
della colonna F e G
che sia colpa di questa istruzione?Range("F:G").Clear
che forse va bene per il foglio RIMANENTI ma non peril foglio
RIEPILOGO ORDINI?

Oltre a questo :le prime colonne ABCDE del "riepilogo ordine" vengono messe su "rimanenti"
senza rispettare le regole imposte,(copia tutto tranne la formattazione delle colonne,o meglio mi rende chiari i riquadri delle celle
ai dati delle colonne F e G relativi a quelle colonne ABCDE del foglio riepilogo ordini)
mentre su 15 fogli da processare che corrispondono a 15 x 12 colonne, sul foglio riepilogo ordini:
a parte il difetto delle prime 12 colonne, processa perfettamente le 2,3,4,5,6,7,8,9,10,11,12,13, mentre
non processa le 14 ,15 (e se ci fossero di più immagino farebbe lo stesso)
penso che siamo vicini al top,da meccanico, penso sia da limare qualcosa !
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi Flash30005 » 29/01/13 10:16

Anche qui
Range("F:G").Clear
va inserito il foglio (per evitare che sia attivo un altro foglio e quindi cancellerebbe dove non dovrebbe)
Ws2.Range("F:G").Clear

Per il resto non ho capito se vuoi o non vuoi la formattazione di "Riepilogo Ordini"
e le regole imposte :?:
comunque ora saranno prelevate tutte le colonne interessate anche più di 13 blocchi (fai attenzione il 13° blocco che inizia in FA ha "Esist" in Data pertanto non ottieni alcun elenco di questo blocco, in quanto cella non vuota)
Codice: Seleziona tutto
Sub CompRiman()
Set Ws1 = Sheets("RIEPILOGO ORDINI")
Set Ws2 = Sheets("RIMANENTI")
UC = Ws1.Cells(2, Columns.Count).End(xlToLeft).Column
Application.ScreenUpdating = False
Application.Calculation = xlManual
Ws2.Cells.Clear
For CC = 1 To UC - 11 Step 12
Ws1.Range(Ws1.Cells(3, CC), Ws1.Cells(100, CC + 6)).Copy Destination:=Ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Next CC
Ws1.Range("A1:E1").Copy Destination:=Ws2.Range("A1")
UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
For RR2 = UR2 To 2 Step -1
If Ws2.Range("G" & RR2).Value <> "" Or Ws2.Range("C" & RR2).Value = 0 Then Ws2.Rows(RR2).Delete
Next RR2
Ws2.Range("F:G").Clear
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
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: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 29/01/13 20:00

sembra tutto ok!!
ora smanetto un po il file e verifico...ma sembra ok
se quando c'è esit al posto della data va bene che non lo copi su rimanenti è quello che voglio
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 12/02/13 20:18

sono quasi diventato bravo ma.,..quasi... mi voglio creare una macro come la Sub CompRiman
che mi ha fatto Flash che chiamo Sub Compdarrivare che mi deve fare lo stesso lavoro ma che mi deve
cancellare le righe dove la condizione invece dalla colonna G è data dalla L,ma non mi funziona!
non basta cambiare la condizione:
If Ws2.Range("G" & RR2).Value <> "" Or Ws2.Range("C" & RR2).Value = 0 Then Ws2.Rows(RR2).Delete
Next RR2
in
If Ws2.Range("L" & RR2).Value <> "" Or Ws2.Range("C" & RR2).Value = 0 Then Ws2.Rows(RR2).Delete
Next RR2
? HELP sto affogando in un bicchiere d'acqua..
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi Flash30005 » 12/02/13 22:16

Non saprei senza vedere come sono disposti i dati

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: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 12/02/13 23:09

ho allegato il file , con macro rimanenti scrivo sul foglio rimanenti tutte le righe che nel foglio riepilogo ordini hanno nella colonna G un valore uguale a zero (ovvero riporto tutti i valori ma cancello quelle righe che hanno valore diverso da zero nella colonna G o uguale a zero nella colonna C ) dove la colonna G in realtà è G+12 (come step) ,mentre nella macro daarrivare voglio
fare scrivere sul foglio da arrivare solo quelle righe in cui nella colonna L+12 il valore è diverso da zero , ossia riporto tutti i valori ma cancello quelle righe in cui nella colonna L il valore è diverso da zero o il valore c +12 è uguale a zero
copiando la macro rimanenti e cambiando solo il foglio dove scrivere e
If Ws2.Range("G" & RR2).Value <> "" Or Ws2.Range("C" & RR2).Value = 0 Then Ws2.Rows(RR2).Delete
Next RR2
in
If Ws2.Range("L" & RR2).Value <> "" Or Ws2.Range("C" & RR2).Value = 0 Then Ws2.Rows(RR2).Delete
Next RR2

non basta cosa sbaglio?



http://www.filedropper.com/com5000testpcfacile
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54

Re: estrazione di colonne in funzione di un dato e riepilogo

Postdi Flash30005 » 13/02/13 01:47

Prova questa macro
Codice: Seleziona tutto
Sub rimanentiL()
    Set Ws1 = Sheets("RIEPILOGO ORDINI")
    Set Ws2 = Sheets("DA ARRIVARE")
    UC = Ws1.Cells(2, Columns.Count).End(xlToLeft).Column
    Application.ScreenUpdating = False
    Application.Calculation = xlManual
    Ws2.Cells.Clear
    For CC = 1 To UC - 11 Step 12
    Ws1.Range(Ws1.Cells(3, CC), Ws1.Cells(100, CC + 11)).Copy Destination:=Ws2.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
    Next CC
    Ws1.Range("A1:E1").Copy Destination:=Ws2.Range("A1")
    UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row
    For RR2 = UR2 To 2 Step -1
    If Ws2.Range("L" & RR2).Value = 0 Then Ws2.Rows(RR2).Delete
    Next RR2
    Ws2.Range("F:L").Clear
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
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: estrazione di colonne in funzione di un dato e riepilogo

Postdi luca62 » 13/02/13 08:25

bingo!! ho capito dove sbagliavo
grazie
luca62 office2007 window7
luca62
Utente Senior
 
Post: 173
Iscritto il: 23/12/12 14:54


Torna a Applicazioni Office Windows


Topic correlati a "estrazione di colonne in funzione di un dato e riepilogo":


Chi c’è in linea

Visitano il forum: Nessuno e 74 ospiti