Risultati da 1 a 6 di 6

Discussione: Trovare dati in un foglio e copiarli altrove



  1. #1
    L'avatar di Lcbsm
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Italia
    Messaggi
    46
    Versione Office
    Office 2013
    Likes ricevuti
    0
    Likes dati
    21

    Trovare dati in un foglio e copiarli altrove

    Buonasera a tutti,

    sono un nuovo utente, sia del forum che di VBA. Ho iniziato ad usarlo registrando le macro ed ora ho acquisito quel minimo di manualità che mi consente di stare un gradino al di sopra del livello principiante :167:.

    Ho bisogno di un aiuto per risolvere un problema. Ve lo descrivo.

    Ho un file excel (2013) composto da un solo foglio.

    Questo foglio è completamente vuoto, ad eccezione di un gruppetto di celle, contigue, che si trovano non si sa dove all'interno di questo foglio.

    Questo gruppetto di celle è strutturato a mo di tabella (ma non è una tabella, nel senso che non ho scelto "formatta come tabella" nel menu di excel): ci sono le intestazioni di riga e di colonna. Non ho idea di quante siano le celle che compongono questo gruppetto.

    L'unica cosa che so è che nella cella più in alto a sinistra (quella in cui "si incrociano" intestazioni di riga e di colonna) c'è scritto "Type".

    Ora, io dovrei trovare questa tabella, copiarla e incollarla in un nuovo foglio.

    Ho pensato che il problema possa essere affrontato secondo questi step:
    1. trovo il testo "type" con trova/sostituisci
    2. recupero l'indirizzo della cella in cui si trova "type"
    3. individuo l'idirizzo dell'ultima cella che ha un'intestazione di colonna e dell'ultima cella che ha un'intestazione di riga
    4. "fondo" gli indirizzi (o pezzi di indirizzi, con le funzioni testo tipo left, right, mid ecc) ottenuti al punto 2 e 3 ed ottengo il range che corrisponde alla tabella
    5. copio il range
    6. lo incollo in un nuovo foglio

    Fine

    I punti da 3 (compreso) a 6 sono ok, li faccio tranquillamente. Il mio problema è il punto 2 ed è qui che chiedo il vostro aiuto: ho registrato una macro per ottenere l'insieme dei comandi per il trova sostituisci, ma una volta trovata la cella contenente "Type", come faccio ad ottenere l'indirizzo di questa cella? Non avendo ancora chiaro come procederò, mi sarebbe utile capire come ottenere l'indirizzo sia in A1 che in R1C1 sia in Cells, se possibile.

    Alla fine della fiera, immagino che la soluzione sia più semplice di quanto possa immaginare; d'altro canto, riesco a fare quello che ho descritto nei punti 3 e 4, mi sento un cretino a non saper fare il punto 2... :251:

    Ora che vi ho esposto il problema, un'altra domanda: voi come lo affrontereste? Ritenete che vi siano modi più efficienti di quello che ho ipotizzato io?

    Grazie infinite!

  2. #2

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6753
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    163
    Ciao Lcbsm

    Occorrerebbe che tu allegassi un file per vedere la struttura dei tuoi dati comunque potresti iniziare a riflettere su un codice di questo tipo che è solo un esempio.

    Codice: 
    Sub prova()
    Dim rng As Range
    Dim cel As Range
    Set rng = Range("a1:p25")
    For Each cel In rng
        If cel.Value = "Type" Then
            cel.CurrentRegion.Select
        End If
    Next cel
    End Sub
    Alfredo

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di Lcbsm
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Italia
    Messaggi
    46
    Versione Office
    Office 2013
    Likes ricevuti
    0
    Likes dati
    21
    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Ciao Lcbsm

    Occorrerebbe che tu allegassi un file per vedere la struttura dei tuoi dati comunque potresti iniziare a riflettere su un codice di questo tipo che è solo un esempio.

    Codice: 
    Sub prova()
    Dim rng As Range
    Dim cel As Range
    Set rng = Range("a1:p25")
    For Each cel In rng
        If cel.Value = "Type" Then
            cel.CurrentRegion.Select
        End If
    Next cel
    End Sub
    Alfredo
    Ciao Alfredo, grazie mille per la risposta! E' sicuramente utile, nel mio caso dovrei settare rng perchè sia molto più ampio, qualcosa tipo a1:cc3000.

    Non ho file da farti vedere per il semplice fatto che non ho uno standard: il file che ricevo può avere una tabella in un qualsiasi punto del foglio.

    Ad ogni modo, ho fatto qualche passo in avanti anch'io; immaginavo fosse una cosa piuttosto semplice, e in effetti lo è: la porzione di codice che segue fa quello che dicevo nei punti 1 e 2.

    Codice: 
    Cells.Find(What:="type", After:=ActiveCell, LookIn:=xlFormulas, _
    LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
    MatchCase:=False, SearchFormat:=False).Activate
    
    AddrTab = ActiveCell.Address
    Ho trovato la cella contenente type e l'ho assegnata (si dice così?) ad una variabile.

    Rimango aperto a qualsiasi altra soluzione vogliate propormi.
    Grazie ancora!

  5. #4

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6753
    Versione Office
    2013
    Likes ricevuti
    711
    Likes dati
    163
    Ciao

    Ma non ho capito una cosa anzi tre.

    1) il file che ricevi ha un unico foglio o più fogli?
    2) in ogni foglio c'è un'unica tabella o più tabelle?
    3) la parola Type è presente in una sola o più tabelle?

    È per questo che chiedevo un file di esempio cioè per avere un'idea della struttura dati.

    Alfredo

  6. #5
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    809
    Versione Office
    2016 64bit
    Likes ricevuti
    142
    Likes dati
    52
    Considerato che le celle possono trovarsi ovunque nel foglio ed in quantità ignota propongo qualcosa così dopo essersi posizionati nel foglio con i dati (probabilmente Foglio1). La copia viene posizionata nel Foglio2:
    Codice: 
    Sub CopiaDaPosizioneCasuale()
    
        ActiveSheet.UsedRange.Copy
        Worksheets("Foglio2").Select
        Range("A1").Select
        ActiveSheet.Paste
        
    End Sub

  7. I seguenti utenti hanno dato un "Like"


  8. #6
    L'avatar di Lcbsm
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Italia
    Messaggi
    46
    Versione Office
    Office 2013
    Likes ricevuti
    0
    Likes dati
    21
    Citazione Originariamente Scritto da alfrimpa Visualizza Messaggio
    Ciao

    Ma non ho capito una cosa anzi tre.

    1) il file che ricevi ha un unico foglio o più fogli?
    2) in ogni foglio c'è un'unica tabella o più tabelle?
    3) la parola Type è presente in una sola o più tabelle?

    È per questo che chiedevo un file di esempio cioè per avere un'idea della struttura dati.

    Alfredo
    In realtà avevo specificato che si tratta di un solo foglio e che c'era un gruppetto di celle organizzate come una tabella (e, pertanto, un solo "Type"); forse potevo essere più chiaro sul fatto che la tabella è una sola. Grazie per avermelo fatto notare :285:

    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Considerato che le celle possono trovarsi ovunque nel foglio ed in quantità ignota propongo qualcosa così dopo essersi posizionati nel foglio con i dati (probabilmente Foglio1). La copia viene posizionata nel Foglio2:
    Codice: 
    Sub CopiaDaPosizioneCasuale()
    
        ActiveSheet.UsedRange.Copy
        Worksheets("Foglio2").Select
        Range("A1").Select
        ActiveSheet.Paste
        
    End Sub
    Ciao Rollins, molto interessante, Grazie!

Discussioni Simili

  1. [Risolto] rilevare nomi univoci e copiarli in indice?
    Di corfurio nel forum Domande su Excel in generale
    Risposte: 15
    Ultimo Messaggio: 16/03/17, 21:39
  2. Prendere Valori delle intestazioni e copiarli in altre celle
    Di Razer nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 01/02/17, 17:03
  3. [Risolto] in VBA-Cercare testo in colonna, trovato copiare le 20 celle sottostanti altrove
    Di stefano16 nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 17/11/16, 21:52
  4. Trovare nel secondo foglio dati presenti nel primo foglio
    Di antonysameli nel forum Domande su Excel in generale
    Risposte: 27
    Ultimo Messaggio: 12/02/16, 20:12
  5. Trovare posizione di dati
    Di BRAZ66 nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 09/08/15, 23:01

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •