Pagina 1 di 2 12 UltimoUltimo
Mostra risultati da 1 a 10 di 11

Discussione: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dati

  1. #1
    Data registrazione
    Oct 2009
    Sesso
    Uomo
    Località
    Recanati
    Messaggi
    237
    Grazie dati 
    217
    Grazie ricevuti 
    97
    Ringraziato in
    57 post

    VB su Excel, mostrare/nascondere righe e creare maschera inserimento dati

    Ciao a tutti!

    Dunque non sapevo se postare direttamente qua o in Software data la banalità (suppongo) del quesito.

    Detto questo il primo problema che ho incontrato è stato quello di creare due pulsanti, uno che permettesse di nascondere delle righe (nella cella B3), e uno che permettesse di mostrarle (nella cella A3), come si può vedere nelle 2 immagini.





    In realtà quello che volevo ottenere l'ho ottenuto attraverso "Registra macro", poi sono andato a vedere il codice per vedere se potevo migliorare qualcosa, ma sapendo veramente pochi comandi e non sapendo che cercare di specifico su Google (di guide ne ho trovate un'enormità) ho pensato di chiedere qua.

    Questo è il codice utilizzato per nascondere le righe=

    Codice:
    Only registered members can view code.
    Questo per mostrarle:

    Codice:
    Only registered members can view code.
    Qui ho aggiunto l'ultima riga perchè in pratica dopo aver mostrato le righe, queste mi rimanevano selezionate, quindi, così provando qualche comando, ho inserito l'ultima riga. In realtà quello che volevo era che le righe mostrate venissero semplicemente deselezionate, ma non ci sono riuscito.

    Oltre a questo pensate ci possa essere qualcosa per poter migliorare un po' la faccenda?

    Stavo pensando, se io dovessi inserire una riga aggiuntiva tra le righe 4 e 7, allora schiacciando il pulsante mostra o nascondi io agirei esclusivamente sulle righe da 4 a 7 e non comprenderei la 8 che ho inserito. Ci sarebbe un modo per far si che questo avvenga.

    La domanda dipende anche dal secondo "problema" che ho incontrato.

    Mi piacerebbe creare una maschera per l'inserimento dati (non so se si chiama così sinceramente) che mi consentisse di indicare un campo per una tappa iniziale ($F4) una per l'ora di partenza ($G4) e un per la tappa finale ($H4) e un per l'ora di arrivo ($I4), e far in modo da poter indicare a che giorno inserire questi dati (ad esempio 31 agosto) inserendo una nuova riga al di sotto della 9 (in questo caso).

    Non so se sono riuscito a spiegarmi bene.

    Grazie in ogni caso.


  2. # ADS
    Google Adsense Circuito Adsense
    Data registrazione
    da sempre
    Località
    mondo google
    Messaggi
    molti
     
  3. #2
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    17,016
    Grazie dati 
    4,803
    Grazie ricevuti 
    2,589
    Ringraziato in
    2,188 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat

    , premetto che sono parecchio arruginito in basic, quindi non sono sicuro di cosa e come si possa fare; però posso rispondere al secondo quesito:

    Per avere qualcosa che cambi (si aggiorni) nel corso dell'esecuzione ti serve una cosina chiamata "variabile", che guarda caso è il primo mattone della programmazione.

    (Variabile = ciò che varia. Un programma senza variabili è, per forza di cose, un programma statico, che fa sempre le stesse cose).

    Per avere un intervallo che cambia, dovresti averlo memorizzato in una variabile, in modo da poterlo da modificare in base a ciò che si verifica (eventi) del tuo programma.

    In sostanza dovresti incrementare, o decrementare, questo valore ogni volta che viene inserita, o eliminata, una riga.

    Potresti quindi creare un bottone che aggiunge le righe, e poi incrementare la variabile al click di questo bottone. Ovviamente poi dovresti chiamare la variabile al metodo select().

    In sostanza dovresti fare qualcosa tipo:

    Codice:
    Only registered members can view code.
    di guide ne ho trovate un'enormità
    Meglio troppe che poche, se vuoi acquisire la dimestichezza necessaria a creare macro personalizzate quando e come ti gira, male non ti farebbe leggerle tutte.

    Ultima modifica di Andy86; 25-09-10 alle 15: 54.
    «Nessuna quantità di esperimenti potrà dimostrare che ho ragione;
    un unico esperimento potrà dimostrare che ho sbagliato.
    » (A. Einstein)

  4. #3
    Data registrazione
    Oct 2009
    Sesso
    Uomo
    Località
    Recanati
    Messaggi
    237
    Grazie dati 
    217
    Grazie ricevuti 
    97
    Ringraziato in
    57 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat

    Ti ringrazio Andy! Dunque credo, a grandi linee, di aver capito la questione che mi hai accennato, anche leggendo il codice, quello che un attimo non mi è chiaro è che cosa significhi toSel e selEnd, immagino che non debba inserire esattamente queste termini, ma celle e/o intervalli a cui mi riferisco, giusto?

    Inoltre non tutto il codice va associato ad ogni pulsante, sbaglio? Cioe ad esempio al pulsante che mi permette di inserire una nuova riga devo associare questo codice:

    Codice:
    Only registered members can view code.
    mentre per mostrare le righe questo:

    Codice:
    Only registered members can view code.
    e questo per nasconderle:

    Codice:
    Only registered members can view code.
    Però non ho capito se la prima parte

    Codice:
    Only registered members can view code.
    deve essere presente in tutti e 3 i casi?

    Citazione Originariamente scritto da Andy
    Meglio troppe che poche, se vuoi acquisire la dimestichezza necessaria a creare macro personalizzate quando e come ti gira, male non ti farebbe leggerle tutte.
    Hai ragione, in effetti oggi mi sono messo un attimo a cercare e seguendo questa guida sono riuscito a creare una maschera, ora manca di vedere come inserire i dati nelle varie celle, ma per ora mi sono fermato al primo post.


  5. #4
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    17,016
    Grazie dati 
    4,803
    Grazie ricevuti 
    2,589
    Ringraziato in
    2,188 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat



    che cosa significhi toSel e selEnd
    toSel e selEndsono i nomi (identificativi) che ho dato alle variabili, di cui forse non ti è chiaro il significato.
    Puoi mettere il nome che vuoi, ma devi ripeterlo ogni volta che vuoi leggere e modificare il valore ivi contenuto.
    Se le sostituisci con il valore "costante" da te scelto, quello sarebbe uguale per tutta la durata del programma e non modificabile se non modificando manualmente il codice.
    Inoltre non tutto il codice va associato ad ogni pulsante
    Esatto, in teoria quando associ una macro ad un evento click ti permette di scegliere un metodo e non un intero file, perciò ho diviso per metodi... Aspetta... Forse in basic si chiamano "funzioni"

    Però non ho capito se la prima parte
    La prima parte sarebbe la dichiarazione delle variabili, che non ricordo come si faccia in basic-excel , dovresti farla partire una volta all'inizio del programma (o tuttalpiù mettere un quarto bottone chiamato "reset").
    «Nessuna quantità di esperimenti potrà dimostrare che ho ragione;
    un unico esperimento potrà dimostrare che ho sbagliato.
    » (A. Einstein)

  6. #5
    Data registrazione
    Oct 2009
    Sesso
    Uomo
    Località
    Recanati
    Messaggi
    237
    Grazie dati 
    217
    Grazie ricevuti 
    97
    Ringraziato in
    57 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat

    Citazione Originariamente scritto da Andy
    toSel e selEndsono i nomi (identificativi) che ho dato alle variabili, di cui forse non ti è chiaro il significato.
    Puoi mettere il nome che vuoi, ma devi ripeterlo ogni volta che vuoi leggere e modificare il valore ivi contenuto.
    Si ok su questo ci sono, credo, prima non avevo afferrato bene la cosa.

    Il problema è che ho qualche difficoltà con il codice. Ho anche provato a cercare su Google, ma quello che trovo è veramente troppo complicato per me, anche cercando "vb excel add row" vengo fuori cose che non riesco proprio a capire.

    Giusto per fare un attimo di chiarezza, questo è quello che ho fatto finora.

    Immagine ridotta


    Dunque su 'Foglio 1' ho inserito la dichiarazione delle variabili, ho provato a metterlo li pensando fosse a monte di tutto, come mi dicevi.
    Tuttavia quando scrivo il ";" dopo il "7" mi da "errore di compilazione", forse ci va qualcos'altro?

    Il 'Modulo 1' contiene il codice che dovrebbe servire a mostrare/nascondere le righe, ancora è "statico", non l'ho modificato con le variabili perchè volevo vedere se il tutto funzionava per l'aggiunta di una riga.

    Proprio a questo proposito, ho creato un nuovo pulsante al quale ho assegnato il 'Modulo 3' per aggiungere appunto una riga, ma quando vado a cliccare (il pulsante) mi da "errore di runtime" e mi seleziona in giallo quella riga.

    Per quanto riguarda il 'Modulo 2' serve a far mostrare la UserForm1 per l'inserimento dei dati, ma è solo un abbozzo.


  7. #6
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    17,016
    Grazie dati 
    4,803
    Grazie ricevuti 
    2,589
    Ringraziato in
    2,188 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat



    Tuttavia quando scrivo il ";" dopo il "7" mi da "errore di compilazione", forse ci va qualcos'altro?
    In basic non ci va il punto e virgola come negli altri linguaggi... Non lo hai notato nelle altre istruzioni?

    Immagino che l'errore di runtime che dici sia dato dalla variabile che non esiste (in quanto non compilata).

    Purtroppo finché non ritrovo quell'estensione per usare le macro vba in openoffice non posso provare realmente, ma solo "tirare"...
    «Nessuna quantità di esperimenti potrà dimostrare che ho ragione;
    un unico esperimento potrà dimostrare che ho sbagliato.
    » (A. Einstein)

  8. #7
    Data registrazione
    Oct 2009
    Sesso
    Uomo
    Località
    Recanati
    Messaggi
    237
    Grazie dati 
    217
    Grazie ricevuti 
    97
    Ringraziato in
    57 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat

    Citazione Originariamente scritto da Andy
    In basic non ci va il punto e virgola come negli altri linguaggi... Non lo hai notato nelle altre istruzioni?
    Sisi l'avevo notato, l'ho inserito solo perchè avevo visto che era scritto nel codice che mi avevi postato. In ogni caso il problema sembra risolto, ma ancora non va il codice per inserire la riga.

    Codice:
    Only registered members can view code.
    Mi da un errore di sintassi su "selEnd += 1" da quello che mi sembra di capire effettuando il debug, dice che dopo il "+" si aspetterebbe un'espressione. Inoltre non mi è chiara una cosa. Con questo codice:

    Codice:
    Only registered members can view code.
    abbiamo definito 2 variabili selEnd è fissa e toSel invece variabile in funzione di selEnd, giusto? Non capisco però perchè selEnd valga 7?

    Non dovrebbe essere la variabile "di fine selezione" selEnd ad essere appunto variabile incrementandosi di una unità ogni qualvolta che inserisco una riga?


  9. #8
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    17,016
    Grazie dati 
    4,803
    Grazie ricevuti 
    2,589
    Ringraziato in
    2,188 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat

    dice che dopo il "+" si aspetterebbe un'espressione.
    Prova con
    Codice:
    Only registered members can view code.
    Non dovrebbe essere la variabile "di fine selezione" selEnd ad essere appunto variabile incrementandosi di una unità ogni qualvolta che inserisco una riga?
    Esatto. Prima ho messo '7' per "inizializzarla", altrimenti se viene chiamata vuota da errore, ma puoi mettere quello che vuoi.
    toSel aggiunge a metà stringa già pronta il valore di selEnd per dire: seleziona da "4" a "selEnd", "4:selEnd" è l'intervallo da selezionare. (su quest'ultima frase non sono sicuro al 100% che funzioni ).
    «Nessuna quantità di esperimenti potrà dimostrare che ho ragione;
    un unico esperimento potrà dimostrare che ho sbagliato.
    » (A. Einstein)

  10. #9
    Data registrazione
    Oct 2009
    Sesso
    Uomo
    Località
    Recanati
    Messaggi
    237
    Grazie dati 
    217
    Grazie ricevuti 
    97
    Ringraziato in
    57 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat

    Grazie ancora Andy! Però non mi è chiaro il "7" che hai messo tu per inizializzarla, a cosa si riferisce? Alla riga?

    Inoltre c'è qualcosa che ancora non va sull'inserimento della riga ora mi da errore di runtime.

    Codice:
    Only registered members can view code.
    e mi seleziona in giallo "Rows(selEnd).Select", c'è qualcosa che non gli piace li credo... comunque il "selEnd = selEnd +1" va ora! Scusa per le domande, ma ho anche provato a cercare, ma trovo poco niente (di comprensibile per me).


  11. #10
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    17,016
    Grazie dati 
    4,803
    Grazie ricevuti 
    2,589
    Ringraziato in
    2,188 post

    Riferimento: VB su Excel, mostrare/nascondere righe e creare maschera inserimento dat



    a cosa si riferisce? Alla riga?
    Esatto.

    (di comprensibile per me).
    Prova a vedere se questo è abbastanza semplice; forse non c'è proprio tutto, ma per cominciare va bene.

    --------------------------------------------------------------------------------------------------

    Comunque ho finalmente trovato il modo di scrivere le macro vba in openoffice, ed ho potuto testare quel codice.
    Questa è la versione funzionante:

    Codice:
    Only registered members can view code.
    Ogni macro, indicata da sub, va ovviamente messa al tasto corrispondente.

    «Nessuna quantità di esperimenti potrà dimostrare che ho ragione;
    un unico esperimento potrà dimostrare che ho sbagliato.
    » (A. Einstein)

Segnalibri

Regole 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
  •  
Cookies:direttiva 2009/136/CE (E-Privacy)

Il sito utilizza cookies propri e di terze parti per maggiori informazioni faq - Termini di servizio - Cookies
Il forum non puo' funzionare senza l'uso dei cookies pertanto l'uso della community è vincolato dall'accettazione degli stessi, nel caso contrario siete pregati di lasciare la community, proseguendo la navigazione acconsenti all’uso dei cookie