|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
Ciao e da poco che ho incominciato ad interessarmi ad excel, in quanto mi serve per fare delle analisi statistiche o matematiche ancora non ho capito bene la formula che mi interessa, comunque il problema è questo: Io devo compilare una tabella che ha tre valori costanti che sono N R 0, la tabella mi serve per immagazzinare dati e poi elabolarli,ma facciamo un passo alla volta. La tabella in questione è composta da 300 colonne e 8 righe,ogni colonna è formata da 8 celle o righe ed in base a questi 3 dati costanti che mi giungono io devo compilare una colonna alla volta esempio prima colonna delle 300 avro N N R R 00 N R, quindi poi dovrò passare alla seconda colonna e avro di nuovo una sequenza R R N N 0 0 N R, le combinazioni per ogni colonna che mi giungono sono casuali io no le conosco se non in tempo reale, voi capite che il problema di andarmi a cercare la colonna poi la cella cliccarci sopra inserire il dato è una cosa un po macchinosa e lunga, quindi mi chiedevo se non fosse possibile automatizzare questo processo tramite una macro o dei tasti funzione, la mia idea era di avere questi 3 tasti funzione corrispondenti ai 3 valori e cliccando su uno di questi tasti il valore si inserisca automaticamente nella prima colonna alla prima riga o cella poi la seconda cella della prima colona seguendo un ordine logico , la prima colonna poi la prima cella la seconda la terza fino all'ottava, per poi passare alla seconda colonna e ricominciare da capo, premetto che non è detto che la colonna venga riepita fino all'ottava cella potrebbe fermarsi a 1 2 3 4 valori per poi passare alla seconda colonna così via fino alla 300° colonna. che dite si può fare?e se si da dove dovrei cominciare?
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
navarco ha scritto: Io devo compilare una tabella che ha tre valori costanti che sono N R 0, la tabella mi serve per immagazzinare dati e poi elabolarli,ma facciamo un passo alla volta. La tabella in questione è composta da 300 colonne e 8 righe,ogni colonna è formata da 8 celle o righe ed in base a questi 3 dati costanti che mi giungono io devo compilare una colonna alla volta esempio prima colonna delle 300 avro N N R R 00 N R, quindi poi dovrò passare alla seconda colonna e avro di nuovo una sequenza R R N N 0 0 N R, le combinazioni per ogni colonna che mi giungono sono casuali io no le conosco se non in tempo reale, voi capite che il problema di andarmi a cercare la colonna poi la cella cliccarci sopra inserire il dato è una cosa un po macchinosa e lunga, quindi mi chiedevo se non fosse possibile automatizzare questo processo tramite una macro o dei tasti funzione, la mia idea era di avere questi 3 tasti funzione corrispondenti ai 3 valori e cliccando su uno di questi tasti il valore si inserisca automaticamente nella prima colonna alla prima riga o cella poi la seconda cella della prima colona seguendo un ordine logico , la prima colonna poi la prima cella la seconda la terza fino all'ottava, per poi passare alla seconda colonna e ricominciare da capo, premetto che non è detto che la colonna venga riepita fino all'ottava cella potrebbe fermarsi a 1 2 3 4 valori per poi passare alla seconda colonna così via fino alla 300° colonna. che dite si può fare?e se si da dove dovrei cominciare?
salve la cosa potrebbe non essere complessa da realizzare, è complicato capire il meccanismo di quanto hai esposto. es: quelle che chiami costanti, come si relazionano alle colonne? cos'è che mi dice che una data sequenza è relativa alla colonna 1 e non alla colonna 200? Assegnando un pulsante di esecuzione alla costante N come identifico la sua posizione nella tabella? Come e in che formati ti pervengono i dati?? intanto per cominciare a capire il problema. saluti Andrea
|
|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
Allora i valori costanti mi arrivano tramite un programma, la roulette ,qundi i valori sono sempre gli stessi ma cambia l'ordine di inserimento, potrebbero esserci delle ripetizioni di colonne, infatti ogni colonna è una serie di punatate, quindi ogni colonna è una giocata che può arrivare a un massimo di 8 righe o celle o puntate per ogni colonna.I dati devono segure un ordine logico di iserimento cioè partire dalla prima colonna riempire o non completamente le righe ad esempio nella prima colonna potrei avere NNRR00RN e avrei completato la prima colonna, quindi passerei alla seconda colonna o serie di giocata ma stavolta potrei avere N N N N e la seconda colonna sarebbe completa cosìm fino alla colonna 300.Quello che sto cercando di capire e se cè un modo per inserire i dati seguendo un ordine logico nella tabella partendo dalla prima colonna e 8 righe, io è un mese che ho cominciato ad interessarmi ad excel 2007 quindi non so rispondere a tutte le tue domande.Quello che vorrei io è poter inserire questi 3 dati che mi gingono in modo automatico nella tabella, altrimenti la cosa risulterebbe lenta e macchinosa, puoi aiutarmi con questa tabella ciao.
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
navarco ha scritto:Allora i valori costanti mi arrivano tramite un programma, la roulette ,qundi i valori sono sempre gli stessi ma cambia l'ordine di inserimento, potrebbero esserci delle ripetizioni di colonne, infatti ogni colonna è una serie di punatate, quindi ogni colonna è una giocata che può arrivare a un massimo di 8 righe o celle o puntate per ogni colonna.I dati devono segure un ordine logico di iserimento cioè partire dalla prima colonna riempire o non completamente le righe ad esempio nella prima colonna potrei avere NNRR00RN e avrei completato la prima colonna, quindi passerei alla seconda colonna o serie di giocata ma stavolta potrei avere N N N N e la seconda colonna sarebbe completa cosìm fino alla colonna 300.Quello che sto cercando di capire e se cè un modo per inserire i dati seguendo un ordine logico nella tabella partendo dalla prima colonna e 8 righe, io è un mese che ho cominciato ad interessarmi ad excel 2007 quindi non so rispondere a tutte le tue domande.Quello che vorrei io è poter inserire questi 3 dati che mi gingono in modo automatico nella tabella, altrimenti la cosa risulterebbe lenta e macchinosa, puoi aiutarmi con questa tabella ciao. salve proviamo a capire il meccanismo: 1) dati (che chiameremo set di giocata) arrivano singolarmente oppure arrivano a gruppi? i set di giocata non sono necessariamente composti da 8 valori ma possono essere anche inferiori. se arrivano singolarmente non c'è nessun problema se arrivano a gruppi come sono riconoscibili?? 2) man mano che arrivano i dati, vanno inseriti nella prima colonna libera della tabella? 3) da dove leggi i dati che arrivano? sono scaricati all'interno del foglio o dove?? 4) arrivati alla colonna 300 che succede?? Una macro per fare quello che chiedi in base alle risposte che attendo è solo una semplice macro di posizionamento. saluti Andrea
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
Salve due esempi di macro x mostrare quello che ho capito. 1) la macro che segue, ipotizza che i dati arrivino in formato testo in unica cella esempio in cella B1 arriva un dato di questo tipo: RRNN00RR, Che la tabella inizi da riga 11 colonna 1 Sub Completa() COL = 1 riga = 11 Mioset = Cells(1, 2).Value While Cells(11, COL) <> "" COL = COL + 1 Wend x = Len(Mioset) For i = 1 To x Cells(riga, COL).Value = Mid(Mioset, i, 1) riga = riga + 1 Next i End Sub 2) la macro che segue, ipotizza che i dati arrivino sempre in formato testo ma ogni singolo valore in singola cella esempio da cella A1 a cella A8 N N R 0 0 N N e che la tabella inizi da riga 24 colonna 1 Sub Completa2() COL = 1 riga = 11 Set Mioset = Range("A1:A8") While Cells(23, COL) <> "" COL = COL + 1 Wend Mioset.Copy Destination:=Cells(23, COL) Set Mioset = Nothing End Sub Vedi risultato nell'immagine saluti Andrea
|
|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
Ok non ho capito come hai fatto ad iserire l'immagine della tabella ,comunque quello che mi serve è il secondo esempio di macro cioè 300 colonne 8 righe ed ogni cella contiene un valore alfanumerico che può essere N R 0.La macro deve seguire un ordine logico cioe come nel l'esempio della tabella colonna 1 riga 11 12 13 14 ecc per poi passare alla colonna 2 e ricominciare con le righe .Hai capito il discorso che le colonne non è detto che vengano riempite fino all'ottava riga , come si vede nella tabella che hai fatto colonna 3 da riga 11 a 15 . Ora io per inserire i dati automaticamente e fare questa tabella che cosa devo fare ? Da dove comincio?Io ho excel 2007.ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
navarco ha scritto: Da dove comincio?Io ho excel 2007.ciao
salve bisogna che cominci rispondendo alle domande che ti ho posto. Necessita sapere qual'è la sorgente dei dati, come vengono acquisiti da excel e dove sono allocati, altrimenti non saprei come adattare la macro alle tue esigenze. saluti Andrea
|
|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
La sorgente dei dati è un programma che genera combinazioni casuali di 3 parametri fissi che sono N R 0 i dati non cambiano mai cambia la loro disposizione. Excel i dati li aquisisce tramite me, sono io che man mano che i dati vengono generati dal programma, io li inserisco manualmente nella tabella che ti ho descritto, per questo sto cercando di automatizzare il processo di inserimento dati, perchè manualmente e macchinoso e mi fa perdere tempo. Poi che cosa intendi quando dici dove sono allocati?puoi spiegarmi con parole semplici. ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve Ora ho avuto la risposta che aspettavo. Pensavo che prendessi i dati in automatico da un'altra applicazione. Che ne dici di usare una maschera per l'inserimento dei dati automatizzando l'inserimento nella colonna di pertinenza? vedi immagini: Prova a costruire il tuo foglio come in questa immagine il pulsante "inserisci dati" apre la maschera di inserimento dati che vedi qui sotto Questo è il codice assegnato al pulsante "INSERISCI" Private Sub CommandButton1_Click() col = 1 riga = 5 While Cells(5, col) <> "" col = col + 1 Wend For I = 1 To 8 Cells(riga, col).Value = Me.Controls("TextBox" & I).Value riga = riga + 1 Me.Controls("Textbox" & I).Value = "" Next I End Sub se lasci un recapito ti mando il file di esempio. saluti Andrea
|
|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
http://www.4shared.com/login.jsp?sessionUnavailable=1 Questo è il link di un sito dove gratuitamente ti danno un po di spazio per lasciarci il tuo file e poi dandomi il link io me lo posso scaricare lo ho già usato e funziona usa la modalità freewer però ti devi registrare ma non paghi niente , altrimenti se pensi che può andare bene ti do il mio indirizzo vedi tu grazie e ciao a10n11
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve ti ho inviato il file. PS. Cancella il tuo indirizzo Mail dal post. saluti Andrea
|
|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
Ciao e grazie ora però volevo sapere quali sono i passaggi che hai fatto per creare questa tabella, come si crea una maschera? l'ai fatta tutta dalla barra multifunzione o hai dovuto scrivere del codice in visual basic?hai dovuto registrare delle macro?volevo imparare come si fa, sei il primo che mi parla di maschere ho vari libri ma nessuno ti isegna a fare una maschera, hai un po di tempo per spiegarmi anche per capire su cosa mi devo documentare.ciao e grazie
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve per usare Userform (Maschere) con i relativi controlli, necessita conoscere un minimo di linguaggio Visual basic. L'esempio che hai ricevuto, è stato creato utilizzando del codice vba (macro). Anche senza l'uso di maschere, la soluzione del tuo problema avrebbe avuto bisogno di macro non realizzabili tramite il registratore di macro. La sola cosa che posso consigliarti, per prendere dimestichezza con l'ambiente vba e maschere è un fenomenale librettino dal costo contenuto che può insegnarti presto e bene. http://www.unilibro.it/find_buy/Scheda/libreria/autore-gallifuoco_romano/sku-644660/laboratorio_di_vba_.htmsaluti Andrea
|
|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
ok per adesso ti ringrazio e penso che lo coprerò quel libro appena avrò finito di leggere i manuali che ho trovato in rete e i libri che ho già comprato grazie ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
navarco ha scritto:ok per adesso ti ringrazio e penso che lo coprerò quel libro appena avrò finito di leggere i manuali che ho trovato in rete e i libri che ho già comprato grazie ciao salve la soluzione che ti ho prospettato è risultata pertinente al tuo problema?? se vuoi si può sempre fare a meno dell'uso di una Userform. saluti Andrea
|
|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
Ciao si mi sembra vada bene, mi permette di impostare dati senza dover seguire la tabella, quindi posso concentrarmi sul programma da cui arrivano i dati e riempire la tabella automaticamente. Questo però è solo il primo passo il progetto che ho in mente è più ampio quindi +avanti forse avrò ancora bisogno, questa è una tabella che mi serve per immagazzinare dati, poi dovranno essere elaborati. Adesso me la voglio studiare e capirci qualcosa di + poi la dovrò riempire.Stavo pensando che forse gli manca un tasto che una volta che ho elaborato i dati questi vengano cancellati, per poter riutilizzare la tabella nuovamente.Più avanti avrò bisogno di cominciare ad utilizzare le formule e creare altre 2 o 3 tabelle + piccole,sempre collegate a questa, quindi rimani nei paraggi.ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve per ripulire la tabella, assegna ad un pulsante la seguente macro: Sub cancella() Range(Cells(5, 1), Cells(13, 300)).ClearContents End Sub saluti Andrea
|
|
Rank: Newbie
Iscritto dal : 11/18/2009 Posts: 9
|
OK.Senti stavo cercando di visualizzare il codice per portare le colonne da 250 a 300, apro il foglio vado su visual besic ma il codice non cè ho utilizzato anche il tasto visualizza codice ma si apre una schermata vuota di visual basic, mentre se seleziono il tasto e poi schiaccio visualizza codice mi compare : Sub Pulsante1_Clic() UserForm1.Show End Sub è normale? è possibile portare le colonne da 250 a 300? ciao
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve per estendere la numerazione delle colonne che trovi a riga 4, bisogna che completi a mano la numerazione quella non è realizata tramite macro. PS. per accedere all'editor di visual basic digita Alt+F11 saluti Andrea
|
|
Guest |