Condividi:        

[Excel] Copiare da file diversi solo le righe in rosso

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

[Excel] Copiare da file diversi solo le righe in rosso

Postdi SteRiz_87 » 19/02/16 10:16

Ciao a tutti,
per una relazione di fine anno (2015) devo copiare da circa 300 file diversi solo alcune righe che sono in rosso (carattere) sono in fondo al file ma non sono sempre nella stessa posizione, ho provato a cercare una soluzione online ma per il momento non sono ancora riuscito a trovare una soluzione.

i file da cui estrapolare i dati sono tutti uguali (sono delle anagrafiche, nome cognome ecc ecc)

il file di destinazione dovrebbe avere le stesse caratteristiche con un paio di righe di divisione tra i dati dei vari fogli, in quello spazio ci dovrebbe essere o il nome del file sorgente.

è una cosa facile da fare?
se servono altre info chiedete pure

Ciao e Grazie
SteRiz_87
Newbie
 
Post: 6
Iscritto il: 16/02/16 12:36

Sponsor
 

Re: [Excel] Copiare da file diversi solo le righe in rosso

Postdi wallace&gromit » 19/02/16 11:15

Ciao,
preliminarmente:
se i dati che cerchi sono sempre sull'ultima riga conviene lavorare su quello piuttosto che sul colore del carattere.
Aggiungere righe vuote in un elenco non è mai una buona idea, una tabella ben strutturata ha sempre un solo tipo di valore per ogni colonna, quindi aggiungi delle colonne in fondo ai tuoi dati, dove apparirà il file d'origine.

Per la creazione della macro vera e propria vediamo chi può aiutarti (io non sono ancora molto pratico di gestire vari file e cartelle).
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21

Re: [Excel] Copiare da file diversi solo le righe in rosso

Postdi SteRiz_87 » 19/02/16 11:18

Ciao a tutti,
dopo un po' di ricerca e di prove sono arrivato a questa porzione di codice:
Codice: Seleziona tutto
Sub RicercaCarattereRosso()
 Dim ChosenCells As Range
 Dim LastRow As Long
 Dim RowOffset As Long
 Dim ColumnOffset As Long
 Dim BaseCell As String
 Const Rosso = 3 ' Red

    BaseCell = Left(ActiveCell.Address, InStr(2, ActiveCell.Address, "$") - 1) & "65536"
    LastRow = Range(BaseCell).End(xlUp).Row
    BaseCell = Left(ActiveCell.Address, InStr(2, ActiveCell.Address, "$") - 1) & "1"
 On Error Resume Next
 Do Until Range(BaseCell).Offset(RowOffset, 0).Row > LastRow And _
 Range(BaseCell).Offset(0, ColumnOffset).Column > LastColumn
 If Not (IsEmpty(Range(BaseCell).Offset(RowOffset, ColumnOffset))) And _
 Range(BaseCell).Offset(RowOffset, ColumnOffset).Font.ColorIndex = Rosso Then
 'will error on 1st match
 Set ChosenCells = Union(ChosenCells, Range(BaseCell).Offset(RowOffset, ColumnOffset))
 If Err <> 0 Then
 Set ChosenCells = Range(BaseCell).Offset(RowOffset, ColumnOffset)
 Err.Clear
 End If
 End If
    RowOffset = RowOffset + 1
 Loop
 On Error GoTo 0 ' clear trapping
 If Not (ChosenCells Is Nothing) Then
    ChosenCells.Select
 Else
     MsgBox "No Matches"
 End If

 End Sub


al momento riesco a selezionare la prima colonna con carattere in rosso ma non riesco a fargli selezionare le altre colonne, immagino sia una questione di Range ma non riesco a capire dove inserire il campo.

ciao
Ultima modifica di SteRiz_87 su 19/02/16 11:28, modificato 1 volte in totale.
SteRiz_87
Newbie
 
Post: 6
Iscritto il: 16/02/16 12:36

Re: [Excel] Copiare da file diversi solo le righe in rosso

Postdi SteRiz_87 » 19/02/16 11:23

Ciao Wallace&Gromit, purtroppo i dati non sono sempre nella stessa posizione e il file d'origine dati mi arriva con già il carattere in rosso (sono anagrafiche di corsi, in rosso vengono messi i bocciati) per questo uso il carattere rosso come discriminante.

con il codice che ho postato sopra, riesco a risolvere una parte del progetto ma non riesco a fare in modo che vada a selezionate tutte le colonne che contengono il carattere rosso.

Per le righe vuote non è un grosso problema, piuttosto ci infilo dei caratteri a caso, mi serve solo che i singoli corsi siano staccati gli uni dagli altri, una volta che la macro sarà completa.
SteRiz_87
Newbie
 
Post: 6
Iscritto il: 16/02/16 12:36

Re: [Excel] Copiare da file diversi solo le righe in rosso

Postdi wallace&gromit » 19/02/16 11:41

come detto con la macro non posso aiutarti molto ma ribadisco il concetto:
è meglio riservare una colonna per scriverci il nome del corso, che se ben capisco può essere ricavato dal nome del foglio da cui copi il tuo dato (per esempio se il foglio si chiama Pippo in colonna X farai scrivere sempre Pippo per ogni nome trovato, se si chiama Paperino farai scrivere Paperino).
In questo modo nell'elenco finale potrai cercare i dati riferiti a Pippo con un semplice filtro, mentre con quanto proponi tu dovrai scorrere la lista fino a trovare l'intestazione Pippo.
Office2016 + 2019 su win11
Avatar utente
wallace&gromit
Utente Senior
 
Post: 2174
Iscritto il: 16/01/12 14:21


Torna a Applicazioni Office Windows


Topic correlati a "[Excel] Copiare da file diversi solo le righe in rosso":


Chi c’è in linea

Visitano il forum: papiriof e 63 ospiti