Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Quesito excel

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

Quesito excel

Postdi morpheus65 » 05/10/07 22:07

Salve a tutti....e grazie x avermi dato l'opportunità di essre del gruppo.

Ho una domanda da fare a + del su elencata applicazione.....io lavoro con 4 fogli di excel dove inserisco delle quotazioni...ora queste stesse quotazioni (es: 1,55 / 26,00 etc etc) corrispondono a quote di scommesse sportive che prendo dal web chiaramente . Ma queste quote cambiano anke di ora in ora e ad ogni modo l'inserimento che faccio adesso è manuale :cry: :cry: e chiaramente ci metto un sacco di tempo anke perchè nn posso fare un copia incolla visto che sia il font che la dim. sono differenti dall'impostazione che ho dato al foglio(problemi estetici) mi chiedevo se:

e' possibile che ci sia un soluzione che con "un aggiorna " pagina , mi riferisco a quelle excel, linkando, nn so cosa :cry: , possa avere il tutto a portata di clik???

Vi prego di scusarmi se ho scritto cavolate... e se invece ho una speranza mi fate contento!!

Grazie
morpheus65
Utente Junior
 
Post: 27
Iscritto il: 05/10/07 21:57

Sponsor
 

Postdi Anthony47 » 05/10/07 23:53

Ciao e benvenuto nel forum.

Io ti suggerisco di procedere tramite una "query web". Per farti un' idea guarda queste discussioni:
http://www.pc-facile.com/forum/viewtopic.php?t=57242
http://www.pc-facile.com/forum/viewtopic.php?t=50144 (e' un po' lunga, ma utile)
http://www.pc-facile.com/forum/viewtopic.php?t=47108

Comincia con l' eseguire manualmente una query web (raccomando di seguire pedissequamente la procedura descritta nell' help on-line, anche se talvolta non si capisce perche' procedere in un determinato modo); successivamente, ripartendo da un foglio vuoto, ripeti l' operazione ma registrando la sequenza come macro; alla fine associ la macro o a un tasto breve (es Contr-Maiusc-a) o a un pulsante, per ri-eseguire l' operazione con un semplice tasto (Contr-Maiusc-a) o con un click.

Se hai bisogno di aiuto sulle singole operazioni fatti sentire...

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi morpheus65 » 06/10/07 14:48

ciao Antony, grazie della risposta, ho provato , essere esatti già avevo visto la storia delle web query.....e mi chiedevo nn c'è la possibilità di indicizzare ulteriormente la webquery dalla pagina in questione?
mi spiego la query che si va ha creare dalla pagina web viene "porzionata" dal broswer?dallo stile con cui è fatta? non so ...cmq sia a me nn serve tutto mi servono solo alcune cose della pagina e appunto mi chiedevo se ci fosse la possibilità di decidere cosa o non cosa importare.

grazie e scusate x eventuali cavolate.

Saluti
morpheus65
Utente Junior
 
Post: 27
Iscritto il: 05/10/07 21:57

Postdi Anthony47 » 06/10/07 19:25

Se vuoi prendere solo alcuni dati, fai su un FoglioX (di servizio) la query che estrae tutta la tabella, e poi nel foglio dove fai le tue elaborazioni rimappi le sole celle che ti interessano (es con =FoglioX!C3).

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi morpheus65 » 06/10/07 21:31

Anthony47 ha scritto:Se vuoi prendere solo alcuni dati, fai su un FoglioX (di servizio) la query che estrae tutta la tabella, e poi nel foglio dove fai le tue elaborazioni rimappi le sole celle che ti interessano (es con =FoglioX!C3).

Ciao.


ti ho inviato un mess pvt con i fogli in questione.

Scusa ma nn ho mai lavorato con excel e nn sono molto pratico.
Potresti essre + semplice.

Grazie
morpheus65
Utente Junior
 
Post: 27
Iscritto il: 05/10/07 21:57

Postdi Anthony47 » 07/10/07 00:37

Ho risposto sia sul forum che al messaggio privato.

Nel penultimo messaggio sembrava che il problema era di dover estrarre solo alcuni dei dati presenti sul sito; da qui la mia risposta delle 20:25, che grosso modo dice:
-prendi tutto quello che la query web ti mette dentro, cosa che dipende da come e' strutturata la pagina.
-da questa massa di dati, ti porti su un altro foglio i pochi dati che ti interessano

Ma dal msg delle 22:31 mi viene il dubbio che la query tu non l' abbia ancora fatta.
Le istruzioni sull' help on line sono dettagliate al massimo; vanno seguite alla lettera e arrivi al risultato.

Prova e fai sapere se fai passi avanti.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi morpheus65 » 09/10/07 12:11

CAPITO TUTTO!!!!!!
sei un mito.....ma ho alcune delucidazioni.
Cosa mi consigli:

1- nella creazione della query mi conviene importare tutti i dati solo in una pagina...e poi richiamare solo quello che m'interessa nella pagina nuova?

2- alcuni dati(cifre) non vengono riportati come da fonte iniziale...dove sbaglio?

3- l'url da cui creo la web query iniziale cambia in settimana in settimana ....cosa faccio x avere il processo giusto? cambio solo l'url iniziale?

grazie
morpheus65
Utente Junior
 
Post: 27
Iscritto il: 05/10/07 21:57

Postdi Anthony47 » 09/10/07 22:59

Io importerei solo le tabelle a cui appartengono i dati che ti servono.

Per i numeri che non ti tornano penso a una avversa congiunzione astrale; per una opinione piu’ motivata mi dovresti dire che cosa vedi sul sito e che cosa vedi invece sui dati importati.

Per gli url che cambiano:
-la macro registrata ti avra’ dato una riga di codice del tipo:
Codice: Seleziona tutto
    With ActiveSheet.QueryTables.Add(Connection:= "URL;http://it.finance.yahoo.com/q/cq?s=@CONT.MI", Destination:=Range("A1"))


-metti in una cella del tuo foglio, diciamo F1, l’ url che devi agganciare (es. http://www.ibm.com)
-poi calcoli l’ url con qualcosa come
Codice: Seleziona tutto
ConnettiA = "URL;" & Range("F1").Value & "/q/cq?s=@CONT.MI"", Destination:=Range(""A1"")"

-a questo punto modifichi l’ istruzione iniziale in
Codice: Seleziona tutto
    With ActiveSheet.QueryTables.Add(Connection:= ConnettiA)


Tutto questo pero’ ha senso se tutti gli url a cui ti connetti hanno la stessa struttura dati...

Ciao, fai sapere come procede.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

A proposito di query web

Postdi Flash30005 » 10/10/07 00:33

Leggendo qual e là nel forum mi sono imbattuto nell'argomento query web che sinceramente non conoscevo e che ho già messo in pratica (oggi)
Ma, visto che l'appetito vien mangiando...
Mi sono imbattuto in un piccolo problema che descrivo:
Nel foglio1 ho la tabella della query web con la stessa macro ho eliminato le righe superflue quindi dalla cella A1 alla cella I104 ho i miei dati.
Nella colonna A ho la data dell'evento (in ordine decrescente) e nelle colonne C,D,E,F,G,H,I i valori.
nel foglio2 prendo i 7 valori corrispondenti ad una certa data (riportata in F26) con la funzione CERCA.VERT e fin qui tutto è ok.
Ho messo due frecce una orientata a sinistra (precedente) e una orientata a destra (successiva) con la freccia di sinistra attivo una macro così impostata:

Sub Preced()
I = I + 1
Sheets("Internet").Select
Range("A" & I).Select
Selection.Copy
Sheets("VerificaCol").Select
Range("F" & 26).Select
ActiveSheet.Paste
End Sub

che mi incolla in F26 il valore della cella A2 del foglio1 e quindi ho i 7 valori si aggiornano (Ho dimensionato I come integer nelle dichiarazioni generali)
La freccia di destra però non riesco a farla funzionare (con la macro)

Sub Success()
I = I - 1
Sheets("Internet").Select
Range("A" & I).Select
Selection.Copy
Sheets("VerificaCol").Select
Range("F" & 26).Select
ActiveSheet.Paste
End Sub

in quanto passando da una macro all'altra perdo il valore della variabile I (riparte da 0) e qundi della cella attiva nel foglio1 (ho visto che rimane selezionata l'ultima cella copiata).
Esiste un'istruzione che mi restituisce il numero di riga (o cella) attiva di un determinato foglio?
Oppure come posso far memorizzare una variabile (I) e utilizzarla fino a che ho il foglio aperto?
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Risolto in parte...

Postdi Flash30005 » 10/10/07 08:36

Ho quasi risolto con la funzione offset in questa maniera:

Sub Success()
Sheets("Internet").Select
ActiveCell.Activate
If I = 0 Then GoTo esci
Selection.Offset(-1, 0).Select
Selection.Copy
Sheets("VerificaCol").Select
Range("F" & 26).Select
ActiveSheet.Paste
End Sub

L'unico problema è che arrivati alla prima riga e attivando ancora una volta la macro mi va in errore, dovrei mettere un controllo che, in questa situazione, deve uscire dalla macro
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Postdi Flash30005 » 10/10/07 09:00

Errata corrige:
Sub Success()
Sheets("Internet").Select
ActiveCell.Activate

Selection.Offset(-1, 0).Select
Selection.Copy
Sheets("VerificaCol").Select
Range("F" & 26).Select
ActiveSheet.Paste
End Sub
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Postdi Anthony47 » 10/10/07 12:08

Per Flash:
Non l' hai detto ma immagino che stia sempre cercando di togliere l' errore quando arrivi su Riga1. Prova questa:
Codice: Seleziona tutto
Sub Success()
Sheets("Internet").Select
'ActiveCell.Activate    'INUTILE
If Selection.Row >1 then Selection.Offset(-1, 0).Select
Selection.Copy
Sheets("VerificaCol").Select
Range("F" & 26).Select
ActiveSheet.Paste
End Sub


Oppure questa:
Codice: Seleziona tutto
Sub Success()
Sheets("Internet").Select
'ActiveCell.Activate
If Selection.Row =1 then
Sheets("VerificaCol").Select
Exit Sub
End if
Selection.Offset(-1, 0).Select
Selection.Copy
Sheets("VerificaCol").Select
Range("F" & 26).Select
ActiveSheet.Paste
End Sub


La prima continua a copiare da riga1, la seconda esce senza copiare; se vuoi ci aggiungi un msgbox.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Perfetta

Postdi Flash30005 » 10/10/07 12:32

Come al solito impeccabile!
Ho usato la seconda.
Con lo stesso sistema allora (anche se non si indietreggia così tanto) potrei mettere sulla macro Preced il controllo della riga 104 (ultima riga utile della tabella)


Grazie!



p.s. la chiave era appunto "Selection.Row =1" che non trovavo nella guida
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

miglioria

Postdi Flash30005 » 10/10/07 15:43

con la tua dritta (Selection.Row) ho potuto migliorare eventuale maneggiamenti sul foglio1 (internet) in quanto se si selezionava un'altra colonna da quella usata (A) il foglio si riempiva di ## così ho aggiunto l'istruzione che penso appropriata

Sub Success()
Sheets("Internet").Select
If Selection.Row = 1 Then
Sheets("VerificaCol").Select
MsgBox "ULTIMO DATO DISPONIBILE", vbInformation, "Attenzione"
Exit Sub
End If

ActiveSheet.Cells(Selection.Row, 1).Select 'ISTRUZIONE AGGIUNTA

Selection.Offset(-1, 0).Select
Selection.Copy
Sheets("VerificaCol").Select
Range("F26").Select
ActiveSheet.Paste
Range("H25").Select
End Sub

In questo modo anche se si attiva manualmente il foglio1 cliccando su una colonna diversa da A, all'attivazione della macro prenderò come riferimento la Riga attiva ma sempre della colonna A, è utile anche per effettuare un balzo maggiore di data.

Quindi, come vedi, la tua soluzione ha "ampliato i miei orizzonti" e spero anche di qualcun altro
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Come mantere la formattazione cella/e con funzione incolla

Postdi Flash30005 » 11/10/07 17:01

Ho un foglio protetto con tutte le celle bloccate tranne 7 (B25:H25)
queste sono sbloccate ma hanno una formattazione (font, dimensione carattere, fondo etc), ho notato che incollando dei dati provenienti da tabelle in internet (corrispondenti al numero di celle 7) perdo la formattazione delle stesse e questo poco importa in quanto con una macro le ripristino ma.... insieme all'estetica mi cambia anche il tipo di protezione da sbloccata a bloccata cosicché non ho più la possibilità di ripristinare la formattazione originale senza sproteggere il foglio.
Ho notato anche che durante l'operazione incolla c'è la possibilità di mantenere con l'apposita opzione il formato originale (office 2003) ma quello che cerco è l'istruzione tramite macro di quell'opzione per avere sempre in maniera automatica e senza sbagliare l'inserimento dei soli valori nelle celle elencate.
Esiste?

P.s.: ho già adottato il sistema della query web con successo e ora l'aggiornamento avviene in maniera automatica, questa soluzione dovrebbe essere un'alternativa per poter effettuare l'operazione in manuale con dati prelevati presso un'altra fonte.
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Postdi morpheus65 » 12/10/07 14:20

Anthony47 ha scritto:Io importerei solo le tabelle a cui appartengono i dati che ti servono.

Per i numeri che non ti tornano penso a una avversa congiunzione astrale; per una opinione piu’ motivata mi dovresti dire che cosa vedi sul sito e che cosa vedi invece sui dati importati.

Per gli url che cambiano:
-la macro registrata ti avra’ dato una riga di codice del tipo:
Codice: Seleziona tutto
    With ActiveSheet.QueryTables.Add(Connection:= "URL;http://it.finance.yahoo.com/q/cq?s=@CONT.MI", Destination:=Range("A1"))


-metti in una cella del tuo foglio, diciamo F1, l’ url che devi agganciare (es. http://www.ibm.com)
-poi calcoli l’ url con qualcosa come
Codice: Seleziona tutto
ConnettiA = "URL;" & Range("F1").Value & "/q/cq?s=@CONT.MI"", Destination:=Range(""A1"")"

-a questo punto modifichi l’ istruzione iniziale in
Codice: Seleziona tutto
    With ActiveSheet.QueryTables.Add(Connection:= ConnettiA)


Tutto questo pero’ ha senso se tutti gli url a cui ti connetti hanno la stessa struttura dati...

Ciao, fai sapere come procede.


Ti giuro che sto diventando scemo!!!!!!

Premesso che sono un pivello nei Vs confronti mi spiego :

il discorso di come importare i dati l'ho capita....spero...

-in un foglio nuovo crei tante query quante sono le pagine da cui prendi i dati;
- in un secondo foglio(la bella copia diciamo) con la formula che mi hai indicato riporto il valore o il testo che gli corrisponde;

Ora qui il 1° problema:

-nelle opzioni della query quale formattazione usare?
io ho provato con tutte e tre "nessuna/rtf/html" e tutte mi riportano i dati con alcuni errori che ti ho detto.
Mi dici congiunzione astrale? sarò sfigato io che te devo di.....comunque vedo se riesco a farti un'esempio:

impostando la query dei spuntare le caselle ...ok prendiamo la prima che è cosi:

3038 / pisa v arezzo / 1.85 /2.30 / 1.50 / 2.30 / 2.58 / 3.20

ora x spiegarti pensa a una griglia immaginaria dove sopra i valori che ho scritto in ordine da sx ci sia COD - AVVENIMENTO - 1 - X - 2 - 1X - 12 - 2X

ci siamo? bene al momento di "importa" nel foglio di E. vengono riportati tutti correttamente all'infuori del X e del X2 e mi ritrovo nella cella una sorta di numero cosi 0,00021978 , mentre in tutte le altre caselle viene riportato come da pagina web!!!
Dove sbaglio? ho guardato nelle impostazioni cella e dove riporta correttamente come da origine il numero viene visto come "personalizzato"(h.mm) mentre dove nn riporta come da origine sta in "generale".

Mi chiedo a monte di tutto devo impostare qlk ? e poi nella creazione query...quali sono le impostazioni(opzioni) da rispettare?

se passo questo punto...presumo di essre a cavallo....perche ho provato un'aggiorna dati e tutto funzia alla meraviglia.

Grazie di cuore!!!!!!!!!!!!!!!!!
morpheus65
Utente Junior
 
Post: 27
Iscritto il: 05/10/07 21:57

Postdi Anthony47 » 12/10/07 16:26

In ordine…
Io applicherei “nessuna formattazione”, in modo da tenere la formattazione data sul foglio.

La congiunzione astrale era una delle ipotesi che potevo fare senza aver nessuna informazione sul tipo di errore :-). Ma la descrizione che mi dai ora e’ giusta? Se dici “vengono riportati tutti correttamente all'infuori del X e del X2”, quell’ X2 a chi/che cosa corrisponde? E il valore 0,00021978 al posto di che/che cosa lo vedi? Forse di uno 0.19? E sei proprio sicuro che i dati che vedi giusti siano giusti?

Probabilmente il tuo separatore dei decimali e’ la virgola, e il separatore delle ore e’ il punto; insomma credi di importare dei numeri decimali ma importi delle ore:minuti.
Per superare cio’, io formatterei come “testo” tutte le celle del foglio di brutta (con la scelta “nessuna formattazione”) e poi lavorerei su quelle stringhe mentre rimappo i dati sul foglio di “bella copia”. Ad esempio se A2 di brutta copia contiene la stringa “1.85”, lo pulisci/importi con
Codice: Seleziona tutto
=SOSTITUISCI(Foglio1!A2;".";",")*1


Trovi lo spunto giusto? Fatti comunque sentire!
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Anthony47 » 12/10/07 16:30

Ho scritto
" . . . io formatterei come “testo” tutte le celle del foglio di brutta (con la scelta “nessuna formattazione”) e poi etc etc "

Intendevo dire:
-formatta testo con il comando Formato /Cella, etc
-imposta "nessuna formattazione" nella query per evitare di inquinare la suddetta impostazione.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Flash30005 » 12/10/07 16:48

Anthonyyyyyyyyyyyyy
C'è una soluzione per il mio post di ieri delle 16:43?


P.s. Se non hai risposto o non c'è soluzione o ti è sfuggito il mio post... spero per la seconda ipotesi
Avatar utente
Flash30005
Moderatore
 
Post: 8460
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Postdi Anthony47 » 12/10/07 16:56

Per Flash:
Non mi e' sfuggito, ma c' era un po' di arretrato...

In realta’ il problema e’ che excel ha un comportamento poco lineare nella gestione della protezione, per cui anche se il foglio e’ protetto contro la formattazione l’ operazione di incolla aggira la protezione.
Quindi o consenti la formattazione sul foglio protetto (e’ uno dei check boxes che ti vengono presentati in fase di comando “proteggi foglio”) oppure la macro prima sprotegge il foglio (ActiveSheet.Unprotect Password:="pippo"), poi formatta, infine riprotegge (ActiveSheet.Protect Password:="pippo”).

Mi pare che fai anche un’ altra domanda, ma non ho capito quale e’ il tuo contesto (cioe’ con quale tecnica copi questi dati), quindi non so rispondere; un suggerimento generico: registra una macro e vedi quale codice ti viene restituito a fronte dell’ opzione.

Ciao.
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13904
Iscritto il: 21/03/06 16:03
Località: Ivrea

Prossimo

Torna a Applicazioni Office Windows


Topic correlati a "Quesito excel":


Chi c’è in linea

Visitano il forum: alfrimpa e 4 ospiti