Condividi:        

[Excel 2010 aiuto]

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 2010 aiuto]

Postdi dalink » 24/01/11 03:36

Vado diritto al sodo; dovrei estrapolare una serie di dati e metterli nella varie celle, (in rosso i dati che mi serve estrapolare) si presentano così facendo il drag and drop da una pagina web e incollandoli nella cella A1:

A B
1 Attacco ilproff79
2 29° yguhvjh (864|432) K48 pegale [REV-OT]
3 P001 Primo Anello (820|387) K38 oggi alle 08:04 ~
dalink
Newbie
 
Post: 7
Iscritto il: 24/01/11 03:19

Sponsor
 

Re: [Excel 2010 aiuto]

Postdi dalink » 24/01/11 03:43

non si capisce molto in anteprima sembrava formattato tutto bene...
A1 Attacco
A2 29° yguhvjh (864|432) K48
A3 P001 Primo Anello (820|387) K38
B1 il proff79[xxx]
B2 pegale[XYZ]
B3 oggi alle 08:04 ~
C1
C2
C3 04:29:01
dalink
Newbie
 
Post: 7
Iscritto il: 24/01/11 03:19

Re: [Excel 2010 aiuto]

Postdi Flash30005 » 24/01/11 14:19

Preferisco dare il Benvenuto nel Forum prima di andare dritto alla domanda.

Domanda:
In base a quale concetto logico quei dati devono assumere il colore rosso?

In pratica è solo nel range (fisso) A2:C3 che vanno evidenziati quei caratteri?
oppure
hai un'area maggiore con caratteri sparsi e in funzione di cosa vi è scritto all'interno delle celle il carattere dovrà assumere il colore rosso?

Nel primo caso selezioni parte della stringa o valore che ti interessa avere in rosso e lo colori di rosso
(excel permette di colorare ance una parte di stringa)

Nel secondo caso occorre una macro ma, per realizzarla, occorre inserire delle specifiche
es.:
Scansionando cella per cella e ogni stringa all'interno si dovesse incontrare il carattere o simbolo "["
allora colora di rosso...
etc

Fai sapere
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: [Excel 2010 aiuto]

Postdi dalink » 01/02/11 03:15

ciao Flash, non mi sono spiegato bene probabilmente.
I dati compaiono in quella maniera facendo il drag and drop dal browser.
I dati in rosso sono quelli che servono a me (li ho colorati io in rosso per fare capire quali mi servono)
dalink
Newbie
 
Post: 7
Iscritto il: 24/01/11 03:19

Re: [Excel 2010 aiuto]

Postdi dalink » 01/02/11 03:17

Esempio: della cella A2 quello che mi interessa è solo 864|462.
Come devo quindi fare per eliminare tutti i dati che non mi servono?
dalink
Newbie
 
Post: 7
Iscritto il: 24/01/11 03:19

Re: [Excel 2010 aiuto]

Postdi Flash30005 » 01/02/11 09:58

L'unica cosa che mi viene in mente è utilizzare la funzione Replace in una macro o la corrispondente Sostituisci nelle formule che permettono la sostituzione di caratteri o intere stringhe con "niente".
Per afre questo però occorre un elenco di stringhe che dovranno essere sostituite e da quello che dici sembra che questo elenco non sia variabile ma ben definito.

Fai sapere se è così e se puoi fornire questo elenco oppure un file completo
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: [Excel 2010 aiuto]

Postdi maxmula » 01/02/11 11:58

A quanto ho potuto capire, le stringhe in rosso variano a seconda della pagina/della sessione del browser, quindi un semplice elenco di stringhe da sostituire non risolverebbe...

SI può provare con questa simpatica funzione (autoprodotta 8) ) che uso spesso nei miei fogli, adattandola alla bisogna:


Codice: Seleziona tutto
Function estrai(testo, inizio, Optional fine = Empty, Optional n_caratteri As Integer = -1)
    P = ""
    L = Len(testo)
    If fine = Empty Then fine = L
   
    If IsNumeric(inizio) Then      'Estrae la prima parte, fino alla fine della stringa
        P = Mid(testo, inizio, L - inizio)
    Else
       I = InStr(testo, inizio)
       P = Mid(testo, I + Len(inizio), L - I)
    End If
    L = Len(P)
   
    If IsNumeric(fine) Then       'Elimina la parte che non serve
        If fine > L Then fine = L
        W = Right(testo, L - fine)
        R = Replace(P, W, "")
    Else
       I = InStr(P, fine)
       R = Mid(P, 1, I - 1)
    End If

    If n_caratteri > 0 Then R = Left(R, n_caratteri)
   
    estrai = R
End Function


L'ho provata sui dati che ha postato dalink e sembra funzionare. Però è meglio se spiego come funziona! :)

    Innanzitutto, il codice: bisogna metterlo in un Modulo, altrimenti la funzione non viene vista come funzione definita dall'utente.
    Fatto ciò, la si può richiamare sia da macro sia da foglio di calcolo (inserisci/Funzione/Categoria=Definite dall'utente)

    I parametri:

    - testo ............ E' la stringa da cui si vuole estrarre l'informazione
    - inizio ............ Può essere un numero, un carattere o addirittura una stringa. Serve come "trigger" per iniziare l'estrazione. se è un numero, l'estrazione comincia dalla posizione corrispondente, se è altro, si cerca un riscontro della stringa passata e si inizia da lì.
    - fine .............. Come sopra, serve per terminare l'estrazione.
    - n_caratteri .... numero intero: Serve per dire alla macro di estrarre un certo numero di caratteri, a partire dal primo carattere dopo la stringa inizio (un po' come fa l'istruzione Mid, ma più evoluto...)


    Esempi d'uso:
    Per cella A2: in una celll vuota si mette la formula:
    Codice: Seleziona tutto
     =ESTRAI(A2;"(";")")


    DI fatto, viene estratto tutto quello che si trova tra le due parentesi.

    Cella A3: come sopra

    Cella B1: solita cella vuota, formula =
    Codice: Seleziona tutto
    =ESTRAI(B1;1;"[")

    In questo caso, vengono estratti tutti i caratteri a partire dal primo, fino alla prima parentesi quadra aperta.

    Cella B2: come sopra

    Cella B3:
    Codice: Seleziona tutto
    =ESTRAI(B3;"alle ";"";5)

    Qui vengono estratti 5 caratteri dopo la stringa "alle " (spazio compreso)

Può essere utile?


Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [Excel 2010 aiuto]

Postdi dalink » 02/02/11 01:33

Max... proverò per circa due giorni prima di chiederti come fare ad usare questo codice, ma grazie in anticipo.
Se non riesco ti chiederò ulteriore aiuto.
dalink
Newbie
 
Post: 7
Iscritto il: 24/01/11 03:19

Re: [Excel 2010 aiuto]

Postdi dalink » 02/02/11 01:37

Grazie ovviamente anche a Flash :)
dalink
Newbie
 
Post: 7
Iscritto il: 24/01/11 03:19

Re: [Excel 2010 aiuto]

Postdi maxmula » 02/02/11 09:39

DUE GIORNI!?!?!???? :eeh:

Spero che tu non faccia solo quello! :P
Per inserire la macro ti bastano 5 minuti al massimo...

Per inserire la macro, devi aprire l'editor di VBA:

- Dal foglio di calcolo premi ALT-F11.
- Una volta aperto, premi CTRL-R per visualizzare Gestione Progetti (dovrebbe già essere visibile), ed anche F4 per far comparire la finestra "Proprietà".
- Da menu Inserisci, seleziona "Modulo"
- Clicca sulla finestra del modulo appena comparsa e, finalmente, lì puoi incollare il codice.

Poi non ti resta che andare sul foglio e provare ad inserire le formule ;)

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [Excel 2010 aiuto]

Postdi dalink » 04/02/11 14:46

Ciao Max, ho fatto come mi hai detto ma quando inserisco la formula in A2 mi viene questo errore:
Avviso di riferimento circolare
Una o piu' formule contengono un riferimento circolare e non possono essere calcolate in modo corretto etc etc
ti allegherei per renderti tutto piu' chiaro, ma come devo fare?
dalink
Newbie
 
Post: 7
Iscritto il: 24/01/11 03:19

Re: [Excel 2010 aiuto]

Postdi maxmula » 04/02/11 16:27

Ti ho indicato il mio indirizzo di posta. ;)

Comunque non devi mettere la formula in A2, sennò distruggi il testo da cui vuoi estrarre ciò che t'interessa.
Il riferimento circolare ti esce perchè la formula punta alla stessa A2... :eeh:

Prova a mettere la formula in un'altra cella (esempio: z2 o una qualunque posizione in cui ti risulti "comoda") e dovrebbe funzionarti.

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34

Re: [Excel 2010 aiuto]

Postdi maxmula » 04/02/11 23:37

Sistemando il foglio che mi hai mandato in privato, ho scoperto un bachetto nel codice che faceva un po' di casino se il delimitatore non esisteva nella stringa.
Aggiorno anche sul forum, così che possa essere utile a tutti. Sembra uguale a prima... ma non è! ;)

Codice: Seleziona tutto
Function estrai(testo, inizio, Optional fine = Empty, Optional n_caratteri As Integer = -1)
    P = ""
    L = Len(testo)
    If fine = Empty Then fine = L
   
    If IsNumeric(inizio) Then      'Estrae la prima parte, fino alla fine della stringa
        P = Mid(testo, inizio, L - inizio + 1)
    Else
       I = InStr(testo, inizio)
       P = Mid(testo, I + Len(inizio), L - I)
    End If
    L = Len(P)
   
    If IsNumeric(fine) Then       'Elimina la parte che non serve
        If fine > L Then fine = L
        W = Right(testo, L - fine)
        R = Replace(P, W, "")
    Else
       I = InStr(P, fine)
       If I = 0 Then
           I = L + 1
       End If
       R = Mid(P, 1, I - 1)
    End If

    If n_caratteri > 0 Then R = Left(R, n_caratteri)
   
    estrai = R
End Function



Fammi sapere com'è andata!

Ciao,
MAx
Avatar utente
maxmula
Utente Senior
 
Post: 965
Iscritto il: 18/08/04 18:28
Località: N44°59'45 E09°00'34


Torna a Applicazioni Office Windows


Topic correlati a "[Excel 2010 aiuto]":


Chi c’è in linea

Visitano il forum: Nessuno e 90 ospiti

cron