Risultati da 1 a 25 di 25

Discussione: Problema con macro per estrarre dati!



  1. #1
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1

    Problema con macro per estrarre dati!

    Salve a tutti, sto cercando qualcuno che mi possa aiutare con questo problema a cui non riesco a venirne a capo.
    Sono davvero in difficoltà, e qualora ci dovesse essere una risposta, vi ringrazio infinitamente per il vostro prezioso aiuto.
    Espongo il mio problema:


    in pratica ho una tabella con: nome, cognome e dati (A1), altri dati (B2) e numeri (C3); questo per ogni riga fino in fondo;
    mi servirebbe un bottone macro che estragga:
    -dalla prima colonna solo nome e cognome tramite i numeri che si trovano su C3 (magari scrivendolo a mano su una determinata cella); esempio pratico:
    A B C
    1 Mario rossi nato a milano ... 256
    2 Carlo verdi nato a osimo .... 136
    3 Marco polo nato a napoli .... 96


    se scrivo su una cella il numero 136 dovrebbe stilarmi su un altro foglio: 136 - Carlo verdi
    se scrivo su una cella il numero 256 dovrebbe stilarmi su un altro foglio: 256 - Mario rossi
    etc.


    -può capitare che in una cella (diciamo A4) ci siano due o più nomi e cognomi con relativi dati (2 o + testi): estrarre sempre e solo nome e cognome in base al numero che imposto;
    -può capitare che diversi nomi abbiano lo stesso numero: in base al numero che imposto, estrarre tutti i nomi e cognomi relativi al numero;
    -può capitare che non si ha solo nome e cognome su una cella, ma anche 2 nomi e un cognome per cella;
    -può capitare che oltre a 2 nomi e un cognome sulla stessa cella si ha un altro nome o più (quindi 2 o + testi);


    per controllare accuratamente mi servirebbe anche un'altro pulsante macro che faccia il calcolo inverso, ovvero che scrivendo il nome e cognome (su una cella a parte) mi dica a quale numero appartiene.


    Non so se mi sono spiegato nei dettagli, ma se può facilitare il problema posso inviare in allegato il file .xls......


    Infinite grazie in anticipo a chi può darmi una mano.

    :279:

  2. #2
    L'avatar di Bolz1
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Padova
    Età
    41
    Messaggi
    117
    Versione Office
    '11 e 16 MAC
    Likes ricevuti
    7
    Likes dati
    1
    Si che potrebbe aiutare un file di esempio senza dati sensibili...magari con tutte le opzioni che hai elencato! :166:
    "Se tu segui tua stella non puoi fallire a glorioso porto" (Dante, Inferno - XV)

  3. #3
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Si, scusatemi, anche per l'ora tarda in cui ho postato non sono riuscito ad allegare. :288:

    Ecco qui...
    File Allegati File Allegati

  4. #4

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    La vedo dura in quanto ogni cella ne può contenere più di uno ( per es. la cella B3 ne contiene 19).
    Attendiamo i Guru

    P.S. Hai cancellato i Codici Fiscali, ma li stessi si possono ricavare da Nome, Cognome, Data e Luogo di Nascita che sono in chiaro.

  5. #5
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Si si, ma della prima colonna mi servirebbero solo nome e cognome, gli altri dati non hanno importanza.... in pratica gli elementi sono solo NOME, COGNOME e NUMERO

    Dopo questi dati dovrei incollarli su foglio word e stilare un riassunto del tutto.

    (ho cancellato i codici fiscali per questione di privacy :50:)

    Non pensavo fosse così complicato, ma confido nella vostra esperienza :188:

  6. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Citazione Originariamente Scritto da fberlinetta Visualizza Messaggio
    Si si, ma della prima colonna mi servirebbero solo nome e cognome, gli altri dati non hanno importanza.... in pratica gli elementi sono solo NOME, COGNOME e NUMERO
    Il problema è che la prima colonna (nella stessa cella) contiene più NOME, COGNOME ed excel non è in grado di riconoscere dove termina uno e ricomincia l'altro.

    Citazione Originariamente Scritto da fberlinetta Visualizza Messaggio
    (ho cancellato i codici fiscali per questione di privacy )
    Ricordo che gli stessi si possono ricavare dai dati che hai scritto (COGNOME, NOME, SESSO, DATA DI NASCITA, LUOGO DI NASCITA es. PERRECA MARIA nata a MANFREDONIA (FG) il... PRRMRA46M60....):50:

  7. #7
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Capito, sono stato fesso io :288:... comunque ho provato con la funzione STRINGA.ESTRAI per estrarre NOME e COGNOME mettendo un delimitatore " - " tra quello che mi interessa estrarre e la parte di dati inutile.... funziona e tutto ma non basta per quello che mi serve realmente; poi è una funzione, a me serve un bottone macro.

  8. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Forse sono riuscito a trovare un escamotage sfruttando la punteggiatura in particolare "il ritorno a capo".
    Soluzione tramite VBA:
    Codice: 
    Sub EstraiTesto()
    Dim iRow As Integer
    Dim iCol As Integer
    Dim i As Integer, a As Integer
    Dim Stringa As String
    Dim Nome As String
    Dim Inizio As Integer, Fine As Integer
    
    
    iRow = 4
    Do Until Foglio1.Cells(iRow, 2) = ""
        iCol = 12
        Inizio = 1
        Stringa = Foglio1.Cells(iRow, 2)
        For a = 1 To Len(Stringa)
            If Mid(Stringa, a, 1) = Chr(10) Then
                Inizio = a + 1
            End If
            If Mid(Stringa, a, 3) = "nat" Then
                Fine = a - Inizio - 1
                Nome = Mid(Stringa, Inizio, Fine)
                Foglio1.Cells(iRow, iCol) = Nome
                iCol = iCol + 1
            End If
        Next
        'Foglio1 Cells(iRow, iCol) = Cells(iRow, 4)
        iRow = iRow + 1
    Loop
    
    
    End Sub

  9. #9
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Ho provato la tua escamotage, non è affatto male, solo che mi estrae il nome per ogni colonna, invece sarebbe molto meglio se mi venissero raggruppati... però già mi hai risolto una parte del problema, sei un grande! :167:

  10. #10

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    In che senso raggruppati, fai un esempio

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  11. #11
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Ritorniamo al problema iniziale: do un numero, a questo numero appartiene un nome/+ nomi...

    ES.
    134 - marco rossi
    carlo verdi fino
    pino slavo
    etc.
    569 - mario verdi
    carlo rossi
    tizio caio
    714 - sempronio vito giulio

    ecco perchè mi serve un numero che me li faccia raggruppare, naturalmente non prima di averli estratti come hai fatto tu che va benissimo, solo che mi scrive così:

    ES.
    134 - marco rossi | carlo verdi fino | pino slavo | etc.
    569 - mario verdi | carlo rossi | tizio caio

    di conseguenza non li raggruppa

  12. #12

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Ho modificato il codice facendo esportare l'elenco nel Foglio2:
    Codice: 
    Sub EstraiTesto()
    Dim iRow As Integer, aRow As Integer
    Dim i As Integer, a As Integer
    Dim Stringa As String
    Dim Nome As String
    Dim Inizio As Integer, Fine As Integer
    
    
    
    
    iRow = 4
    aRow = 2
    Do Until Foglio1.Cells(iRow, 2) = ""
        Inizio = 1
        Stringa = Foglio1.Cells(iRow, 2)
        For a = 1 To Len(Stringa)
            If Mid(Stringa, a, 1) = Chr(10) Then
                Inizio = a + 1
            End If
            If Mid(Stringa, a, 3) = "nat" Then
                Fine = a - Inizio - 1
                Nome = Mid(Stringa, Inizio, Fine)
                Foglio2.Cells(aRow, 1) = Cells(iRow, 4)
                Foglio2.Cells(aRow, 2) = Nome
                aRow = aRow + 1
            End If
        Next
        iRow = iRow + 1
    Loop
    End Sub
    File Allegati File Allegati

  13. #13
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Così è quasi perfetto, solo che sto provando ad aggiungere nomi o numeri manualmente alla fine delle colonne del primo foglio; non dovrebbe aggiungermi anche quest'ultimi nel secondo foglio?

  14. #14

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    La routine si interrompe quando trova uno spazio vuoto nella colonna 2, quindi fai attenzione alle celle vuote e alle celle unite.

  15. #15
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Per il fatto del bottone macro, o del numero da utilizzare come criterio? C'è un modo, così da avere a disposizione un calcolo veloce? Ti ringrazio in anticipo...

  16. #16

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Per il tasto si può fare con una "Forma" (Inserisci/Illustrazioni/Forme), tasto destro sulla forma e "Assegna macro".
    Per il criterio ti devi spiegare meglio.

  17. #17
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Tipo in questo modo: sulla cella scrivo un nome o le iniziali di un nome, e automaticamente mi va a pescare tutte quelle righe che corrispondono al nome; solo che ha me servono i numeri :186:

    (non sono dati sensibili, tutti inventati)
    File Allegati File Allegati

  18. #18

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Non va bene un filtro (CTRL+SHIFT+L) e scegli il numero da filtrare?

  19. #19
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    E' proprio quello che sto cercando di evitare, il filtro può darmi problemi, invece come nel file ProvaOrdina la questione è molto più semplice, solo che li il criterio vale con i caratteri e non con i numeri...

  20. #20

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Allora usiamo la funzione AGGREGA per filtrare un Database
    in D2 il numero da filtrare
    in colonna F=SE.ERRORE(INDICE(A$2:A$24;AGGREGA(15;6;(RIF.RIGA($A$2:$A$24)-1)/($A$2:$A$24=$D$2);RIGHE($A$2:A2)));"")
    da ricopiare a destra e giù
    File Allegati File Allegati

  21. #21
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Oddio, così è perfetto! :246:

    Ora rimane solo il problema che nonostante non lasci neanche una cella vuota al di sotto delle colonne del primo foglio, scrivendo manualmente altri nomi e numeri, sul secondo foglio non me li aggiunge alla lista che ha stilato grazie al tuo codice...

    Questo proprio non me lo so spiegare

  22. #22

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Non riuscì a capire il motivo. Posta il file senza dati sensibili

    Inviato dal mio Nexus 7 utilizzando Tapatalk

  23. #23
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    Ecco qui... modificato e tutto
    File Allegati File Allegati

  24. #24

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2801
    Versione Office
    Excel 2013
    Likes ricevuti
    1019
    Likes dati
    977
    Appunto, la cella B6, è unita a B7 (che risulta vuota). Togli l'unione celle e tutto funzionerà.
    P.S. Dovremmo fare una petizione affinché Microsoft elimini il tasto "Celle Unite" da Excel:1172:

  25. #25
    L'avatar di fberlinetta
    Clicca e Apri
    Data Registrazione
    Feb 2016
    Località
    Milano
    Età
    27
    Messaggi
    41
    Versione Office
    2013
    Likes ricevuti
    0
    Likes dati
    1
    :286:

Discussioni Simili

  1. Problema di macro
    Di Attilio nel forum Domande su Excel VBA e MACRO
    Risposte: 18
    Ultimo Messaggio: 21/12/16, 16:04
  2. Problema con una Macro
    Di svizzera nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 11/11/16, 13:39
  3. Problema macro
    Di yoghi87 nel forum Domande su Excel VBA e MACRO
    Risposte: 1
    Ultimo Messaggio: 05/10/16, 11:15
  4. Problema su macro
    Di bobparr nel forum Domande su Microsoft Access
    Risposte: 5
    Ultimo Messaggio: 31/05/16, 17:39
  5. Filtro dati: problema con macro
    Di alfrimpa nel forum Domande su Excel VBA e MACRO
    Risposte: 5
    Ultimo Messaggio: 27/01/16, 15:42

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
  •