› Sviluppare funzionalita su Microsoft Office con VBA › Trasformazione casella di testo in cella/tabella excel
-
AutoreArticoli
-
Ciao Alex, allora ci sono un po di cose che ho modificato ed implementato, ti allego il file completo cosi riesci a vederlo anche tu:
Allora ho qualche problemino su delle modifiche:
1. Ho creato un userform (userform1) che tramite 2 checkbox ed 1 textbox mi deve inserire del testo in una cella specifica, ho già scritto il codice ma essendo che il testo da inserire è molto lungo non so perchè vba mi va a capo e mi da errore quando lo incollo:
nel concreto quando clicco sulla checkbox celiachia mi deve inserire il testo celiachia adattando l'altezza riga al testo, quando clicco sulla checkbox intolleranza mi deve inserire la nota intolleranza adattando l'altezza riga al testo (ti allego file con i testi), invece quando scrivo qualcosa nella textbox mi deve inserire quel testo che scrivo adattando l'altezza riga al testo.
2. Altra necessità sarebbe quella di aggiungere 2 righe di codice alla stampa in pdf (cioè prima di lanciare la stampa fa queste operazioni e poi stampa) che dice:
Se le celle "A71:D71" sono valorizzate lasciale, altrimenti nascondi riga
Se le celle "A72:D72" sono valorizzate lasciale, altrimenti nascondi riga
Ultima cosa che pero non ho capito perchè e quando succede (nel senso che poi ritorna normale e non so nemmeno come), ogni tanto il foglio output si sfasa portando le colonne nella pagina di fianco e quando succede va in errore anche il codice che genera preventivi nella parte stampa pdf
.Orientation = xlPortrait
Grazie mille dell'aiuto, dovremmo essere arrivati alla fine
Allegati:
You must be logged in to view attached files.Allora, aggiornamento. Diciamo che l'userform l'ho completato. Quindi adesso tramite l'userform inserisco le informazioni nelle celle che sono già della grandezza ideale e formattate per come devono essere.
Ora pero ho bisogno che il file ogni volta che stampa il pdf (con le macro save_as e save_ascomitive) controlla queste 3 righe: 72, 73, 74 con la condizione che ogni riga che trova vuota la nasconde. Es. se le trova tutte e 3 vuote le nasconde tutte se ne trova solo una vuota nasconde solo una riga.
Penso si posso fare con un ciclo for però ho provato senza grossi risultati, non penso di riuscire da solo allego ultima versione file
Grazieeee
Allegati:
You must be logged in to view attached files.Ciao,
allora faccio un piccolo incipit.
Io penso che per rispetto del forum, sia il caso di aprire nuovi Topic per nuove richieste. Ormai siamo andati fuori argomento. E' iniziato con la richiesta "Trasformazione casella di testo in cella/tabella excel" e siamo finiti ad altri su argomenti. Perciò, a questo punto, almeno io, mi limito a rispondere per l'ultima volta in questo topic a questa richiesta.
Detto ciò...non ho visto l'ultimissimo tuo allegato delle ore 22.22 #43945 perché nel frattempo ero impegnato a risolvere ciò che hai evidenziato nel post precedente.
Facciamo che ti giro direttamente la mia proposta sperando che soddisfi le tue richieste.
In realtà ho approcciato in modo diverso dal tuo. Ovvero...per quanto riguarda le note CELIACHIA e INTOLLERANZA, anziché scrivere il testo nel codice (per poi riversarlo nelle celle), l'ho scritto direttamente nelle celle (A72 e A73). Quando avvii la UserForm1 avviene un controllo sulle righe 72 e 73. Se sono NASCOSTE allora le CheckBox 1 e 2 risulteranno non spuntante, viceversa, se sono VISIBILI allora le due CheckBox risulteranno spuntate.
Per quanto riguarda la TextBox1 (note aggiuntive), se nella cella A71 c'è del testo, allora verrà riportato anche nella TextBox1.
Se decidi di togliere la spunta alla CheckBox1 allora la riga 73 si nasconde, stessa sorte per la riga 72 se togli la spunta alla CheckBox2.
Se, invece cancelli il testo nella TextBox1 (puoi cancellarlo direttamente con il pulsante apposito in UserForm1), allora anche nella cella A71 il testo verrà rimosso e la riga nascosta.
Sia per le CheckBox che per TextBox1, per poter rendere effettive le modifiche sarà necessario premere il tasto CONFERMA sulla UserForm1.
Per la questione del rigo 71 (note aggiuntive), che deve adattare la sua altezza in base al testo...devo dire che mi ha fatto tribulare e non poco. Alla fine sono riuscito a reperire sul WEB un codice che fa al tuo caso...ovviamente l'ho dovuto manipolare per adeguarlo.
Ho modificato la parte di codice che nasconde le righe dove non ci sono importi nella colonna "D".
Inizialmente avevi un FiltroAutomatico che andava a nascondere tutte le righe vuote della colonna "D". Purtroppo così andava a nascondere anche le celle 71, 72 e 73.
Per risolvere il problema, ho utilizzato un ciclo For Each...Next applicato nelle celle da D5 a D65 (se celle vuote di questo Range allora nascondi rigo).
Per il discorso delle foglio Output e le colonne che si spostano...sinceramente non so che dirti...a me non capita.
Per finire...prima che me lo farai notare tu...te lo faccio notare io:
ho visto che hai fatto tante celle unite per contenere l'elenco puntato e in modo Giustificato...ma quel famoso problema del taglio delle parole lo avrai comunque, perché la riga delle note aggiuntive è variabile in base al contenuto. Quindi tutto il testo sotto si alza e si abbassa in relazione all'altezza del rigo 71.
Allegati:
You must be logged in to view attached files.allora faccio un piccolo incipit.
Io penso che per rispetto del forum, sia il caso di aprire nuovi Topic per nuove richieste. Ormai siamo andati fuori argomento. E' iniziato con la richiesta "Trasformazione casella di testo in cella/tabella excel" e siamo finiti ad altri su argomenti. Perciò, a questo punto, almeno io, mi limito a rispondere per l'ultima volta in questo topic a questa richiesta.
Ciao Alex, chiedo scusa se ho continuato lo stesso topic ma essendo stesso file ed essendo collegato il fattore tabella proprio alla gestione automatica di queste note che stiamo risolvendo adesso non ho pensato a fare nuove richieste. Ad ogni modo provvederò subito dopo questo post.
Ti do un feedback:
In realtà ho approcciato in modo diverso dal tuo
Il sistema utilizzato va benissimo, c'era solo un problema sulla textbox che ho sistemato (in pratica una volta cancellato il testo non usciva più fuori neanche se scrivevi di nuovo).
Altro problema invece è quello che ti chiedevo dopo la stampa:
Essendo queste note variabili e non molto utilizzate, Preferirei che si azzerassero. Spiego meglio se io metto spunta su checkbox celiachia, poi stampo il preventivo, quando passo al preventivo successivo sono costretto ad andare a togliere la spunta nell'userform.
Invece io vorrei che tutte e 3 le righe siano nascoste (cosa che già fa), che all'occorrenza apro userform per inserire le note (cosa che già fa), ma che dopo aver lanciato la stampa l'userform si resettasse.
Ho visto che è una Private Sub ed ho provato a renderla pubblica per provare ad utilizzarla nella macro ma non sono riuscito.
Per finire...prima che me lo farai notare tu...te lo faccio notare io:
ho visto che hai fatto tante celle unite per contenere l'elenco puntato e in modo Giustificato...ma quel famoso problema del taglio delle parole lo avrai comunque, perché la riga delle note aggiuntive è variabile in base al contenuto. Quindi tutto il testo sotto si alza e si abbassa in relazione all'altezza del rigo 71.
No, non te lo avrei fatto notare perchè tu sei stato chiarissimo sul problema di base, questo problema del testo un po tagliato lo abbiamo da anni, ma non si vuole rinunciare al testo giustificato e quindi come dire attacco le scarpette al chiodo
Ad ogni modo, ti ringrazio infinitamente per l'aiuto, sei stato davvero prezioso ed abbiamo risolto tante cose. Per tutto il resto come da tuo consiglio aprirò altri post.
Grazieeeeeeeeeeeee
-
AutoreArticoli
