Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

macro excel copia dati da un foglio ad un'altro con ricerca

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

macro excel copia dati da un foglio ad un'altro con ricerca

Postdi Achille66 » 04/03/18 17:57

Buona sera, sono un nuovo iscritto. Ho visto i vostri forum ed in alcune occasioni mi siete stati utili per risolvere piccoli problemi.
Siccome nel comporre delle macro complesse non sono molto preparato ed avendo poco tempo per cercare di studiare, chiedo il vostro aiuto per creare una macro (che studierò).
Il mio problema è:
ho un foglio denominato "alpha" che contiene molti dei dati sia come stringa che come valori. Devo cercare una determinata stringa e il valore corrispondente che si trova nella cella successiva. questi poi devo trasferirli in un'altro foglio excel mettendoli in ordine.
vi ringrazio anticipatamente.
rimango in attesa di un Vs aiuto.
Achille66
Newbie
 
Post: 4
Iscritto il: 04/03/18 17:21

Sponsor
 

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi alfrimpa » 04/03/18 22:12

Ciao Achille

Allega un file di esempio con i dati (non sensibili) e mostra il risultato che vuoi ottenere inserendolo a mano.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi Anthony47 » 05/03/18 00:28

Achille ha scritto:Siccome nel comporre delle macro complesse non sono molto preparato ed avendo poco tempo per cercare di studiare, chiedo il vostro aiuto per creare una macro (che studierò)

Regola N° 2: non chiedere mai aiuto perche' non si ha tempo per procedere da soli; ti assicuro che anche a noi il tempo non abbonda e quello che spendiamo qui lo sottraiamo ad altri impegni (la regola N° 1 te la spiego alla prossima gaffe, eh?)

Come gia' detto da Alfredo, se vuoi un aiuto concreto dovresti pubblicare un file dimostrativo con la reale struttura dei tuoi dati.

Per le istruzioni su come allegare un file:
viewtopic.php?f=26&t=103893&p=605487#p605487

Ciao!
Avatar utente
Anthony47
Moderatore
 
Post: 17451
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi Achille66 » 06/03/18 12:26

Scusate, non volevo offendere nessuno.
E' che mi serve per lavoro urgente, era questo il motivo perché ho detto che non ho il tempo ed era riferito al tempo di studio.
Comunque se mi potete aiutare vi ringrazio anticipatamente.
http://www.filedropper.com/foglio1_1
Vi allego il file.
Nel file vi sono tanti dati come potete notare, i campi sono composti da una stringa generica (alfabetica) al e da 3 campi numerici. ho bisogno di effettuare una ricerca della stringa e copiare in un altro file la stringa stessa con i relativi 3 campi numerici.
Spero di essere stato chiaro.

Grazie
Achille66
Newbie
 
Post: 4
Iscritto il: 04/03/18 17:21

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi Anthony47 » 06/03/18 15:16

Noi non ci offendiamo; abbiamo solo la tendenza a ignorare chi dia l'impressione che non ci voglia provare. Quindi la "regola N° 2" e' a protezione di chi chiede!

i campi sono composti da una stringa generica (alfabetica) al e da 3 campi numerici. ho bisogno di effettuare una ricerca della stringa e copiare in un altro file la stringa stessa con i relativi 3 campi numerici
Spero di essere stato chiaro

Nel file pubblicato io vedo una quindicina almeno di campi numerici e alrettanti campi alfabetici.
Insomma dovresti essere piu' esplicito su quali campi sono oggetto della ricerca, dove prendi la stringa da ricercare, quali sono i 3 campi numerici che vanno copiati.

Dai che siamo vicini...
Avatar utente
Anthony47
Moderatore
 
Post: 17451
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi alfrimpa » 06/03/18 15:17

Achille dal file allegato non si capisce niente.

Qual è la stringa generica (alfabetica) e quali sono i tre campi numerici?

Qual è la stringa da cercare?

Allega un file con pochi record e mostra (su un secondo foglio inserendolo a mano) il risultato che vuoi ottenere)
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi Anthony47 » 06/03/18 15:18

Ciao Al
La stessa osservazione all'unisono
Avatar utente
Anthony47
Moderatore
 
Post: 17451
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi alfrimpa » 06/03/18 15:24

Ciao Anthony si e scusa la sovrapposizione; non avevo aggiornato la pagina.
Alfredo

Win7 + Office 2007
Avatar utente
alfrimpa
Utente Senior
 
Post: 1201
Iscritto il: 30/12/13 17:01
Località: Napoli

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi Achille66 » 06/03/18 19:33

Buona sera a tutti,
vi ringrazio del vostro interesse ed aiuto.
Devo estrapolare le stringhe "Gennaio 2013" - "Codice Fiscale" - "Cognome e Nome" - "ind.tà trasferta Italia" e i relativi tre campi adiacenti numerici dell'ultima stringa.
Vi allego un file di esempio.
http://www.filedropper.com/foglio1_2
Spero di essere stato esaustivo.

Carmelo
Achille66
Newbie
 
Post: 4
Iscritto il: 04/03/18 17:21

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi Anthony47 » 07/03/18 02:47

Allora facciamo cosi':
1) In un "modulo standard del vba" copia e incolla questa macro:
Codice: Seleziona tutto
 :) Sub AdvFilter()
Dim ColFiltro, ColDati, wArr, lastA As Long, LastC As Integer, K As Long
Dim sSh As Worksheet, dSh As Worksheet, I As Long, noBB As Boolean
Dim fArr, J As Long
'
ColFiltro = Array(1, 2, 3, 10)          '<<<1 Le colonne dove si trovano i filtri (1=A, 2=B etc)
ColDati = Array(1, 2, 10, 11, 12, 13)   '<<<2 Le colonne in cui si trovano i dati da copiare
'
Set sSh = Sheets("Foglio1")         '<<<3 Il nome del foglio con i dati di origine
Set dSh = Sheets("Foglio2")         '<<<4 Il nome del foglio con i Filtri dove si creera' l'elenco
'
lastA = sSh.Cells(Rows.Count, 1).End(xlUp).Row
LastC = Application.WorksheetFunction.Max(ColDati, ColFiltro)
wArr = sSh.Range("A1").Resize(lastA, LastC).Value
fArr = dSh.Range(dSh.Range("A1"), dSh.Range("A1").End(xlToRight)).Value
ubf = UBound(fArr, 2):    K = 1
dSh.Range("A2").Resize(200, ubf + Application.WorksheetFunction.Count(ColDati) + 2).ClearContents
For I = 1 To lastA
    noBB = False
    For J = 0 To UBound(ColFiltro)
        If wArr(I, ColFiltro(J)) <> fArr(1, J + 1) Then
            noBB = True
            Exit For
        End If
    Next J

    If noBB = False Then
        K = K + 1
        For J = 0 To UBound(ColDati)
            dSh.Cells(K, J + 1) = wArr(I, ColDati(J))
        Next J
    End If
Next I
'
Set sSh = Nothing
Set dSh = Nothing
Erase wArr
End Sub

Personalizza le righe marcate <<< come da commento
In particolare con <<<1 indichi quali sono le colonne a cui i filtri descritti al punto 2 saranno applicati, e in <<<2 indichi quali sono le colonne che vuoi riportare una voltra che i filtri sono soddisfatti

2) In Foglio2, da A1 verso destra scrivi quali filtri vuoi applicare

Eseguendo la macro, l'area di Foglio2 sottostante ai filtri sara' AZZERATA SENZA PREAVVISO per 200 righe e il nuovo elenco basato sui filtri indicati sara' creato da zero.

Per inserire la macro in un "modulo standard del vba", partendo da Excel:
-premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Personalizza le righe marcate <<< come detto

Per eseguire la macro, sempre da Excel:
-premi Alt-F8
-seleziona AdvFilter dall'elenco di macro disponibili
-premi Esegui

Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 17451
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi Achille66 » 07/03/18 10:34

Ciao Anthony47,
ti ringrazio della tua solerte risposta.

la macro mi da un errore in wArr = sSh.Range("A1").Resize(lastA, LastC).Value

Comunque forse ho sbagliato a spiegarmi, nn sono molto tecnico, vediamo se riesco a descrivere quello che mi serve.

Nel file "Dati" all'interno vi è la cartella "Prova" dove devo cercare per ogni riga solo questi 7 elementi : "Gennaio 2013" - "Codice Fiscale" - "Cognome e Nome" - "ind.tà trasferta Italia" e i relativi tre campi adiacenti numerici dell'ultima.
Poi copiare il risultato per riga su un'altro foglio nello stesso ordine.
Vi allego un file, dove alla cartella "Risultato" è quello che dovrebbe uscire dalla copia.

Grazie
Achille66
Newbie
 
Post: 4
Iscritto il: 04/03/18 17:21

Re: macro excel copia dati da un foglio ad un'altro con rice

Postdi Anthony47 » 07/03/18 15:21

Non c'e' un nuovo file allegato.
Comunque la macro che ti ho proposto e' in risposta a quanto ho capito dal file che avevi allegato e si riferisce al contenuto di quel file.
Quell'errore puo' dipendere da come hai personalizzato le righe marcate <<<

Nel file "Dati" all'interno vi è la cartella "Prova" dove devo cercare per ogni riga solo questi 7 elementi : "Gennaio 2013" - "Codice Fiscale" - "Cognome e Nome" - "ind.tà trasferta Italia" e i relativi tre campi adiacenti numerici dell'ultima.
Poi copiare il risultato per riga su un'altro foglio nello stesso ordine.
La migliore interpretazione che riesco a dare a questa descrizione e' che vorresti dall'elenco eliminare fisicamente un tot di colonne. Se e' cosi' allora ti basta usare il comando Elimina (Seleziona la/le colonna/e da eliminare; tab Home, gruppo Celle, comando Elimina. Ripeti per le altre colonne da eliminare. SUGGERIMENTO: comincia a eliminare le colonne partendo da quelle piu' a destra).
Se preferisci farlo su una copia del foglio contenente i dati (Foglio1 nel file allegato) allora prima fai una copia del foglio (tasto dx sul tab col nome del foglio; scegli Sposta o copia; spunta Crea una copia; premi Ok).

Se vuoi poter ripetere la cosa in automatico, allora registra una macro mentre fai la copia e poi cancelli le colonne; in questo modo ti bastera' lanciare questa macro per ripetere automaticamente tutta l'operazione (partendo ovviamente da un nuovo foglio completo).
Per le istruzioni e i primi suggerimenti su come registrare una macro:
viewtopic.php?f=26&t=103893&p=622593#p622593

E se invece non stai chiedendo di eliminare semplicemente le colonne dall'elenco completo allora riallega un file piu' esemplificativo della tua situazione reale e magari capiremo meglio.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 17451
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "macro excel copia dati da un foglio ad un'altro con ricerca":


Chi c’è in linea

Visitano il forum: Nessuno e 35 ospiti