Sviluppare funzionalita su Microsoft Office con VBA Trasformazione casella di testo in cella/tabella excel

Login Registrati
Stai vedendo 25 articoli - dal 1 a 25 (di 29 totali)
  • Autore
    Articoli
  • #43785 Score: 0 | Risposta

    FROST220684
    Partecipante

      Ciao a tutti,

      ho bisogno di una mano su questo file e sto cercando di mettere mano alle cose che non vanno.

      In questo file c'è un foglio "Output" che serve a dare una sorta di anteprima di ciò che è scritto all'interno del foglio input ed aggiunge una casella di testo con una serie di informazioni e che utilizziamo anche per aggiungere delle informazioni all'occorrenza.

      Sto cercando di pensare ad una soluzione valida che elimini quella casella di testo e renderla una cella/tabella gestibile tramite macro ed automatismi vari (come ad esempio aggiungere informazioni a quelle standard quando necessario senza fare un copia incolla manuale. Chiaramente con la casella di testo non è possibile ma forse con una cella/tabella si. Secondo voi quale soluzione potrebbe portare a questo risultato?

      Allego file di prova, e qualche foto per farvi capire cosa aggiungiamo ad esempio al testo quando serve. proprio in merito alla nota aggiuntiva in foto rendendo la casella di testo una cella/tabella potrei aggiungere quella nota in automatico all'occorrenza. Attendo vostri consigli

       

      Grazie mille a tutti

      Allegati:
      You must be logged in to view attached files.
      #43788 Score: 0 | Risposta

      alexps81
      Moderatore
        58 pts

        Come mai utilizzi una Casella di testo e non scrivi direttamente nelle celle del Foglio? Mi sembra più comodo appoggiarsi alle celle.

        #43789 Score: 0 | Risposta

        FROST220684
        Partecipante

          Diciamo che il file non l'ho creato io, io sto cercando di automatizzarlo e migliorarlo. Il problema è che nella stampa in pdf quella casella di testo si va ad adattare in automatico rispetto ad aggiunte o altro, ma succede che venga tagliato il testo in alcuni casi. Secondo te la soluzione migliore sarebbe la cella (questa non mi da però la possibilità di fare elenchi puntati, etc come la casella di testo)? una tabella? un'interazione con access (possibile?)?

          Sto cercando di capire quale sia la soluzione migliore

          #43791 Score: 0 | Risposta

          FROST220684
          Partecipante

            ad esempio in questa prova ho sostituito la casella di testo con una tabella, ma come vedi dal pdf generato mi taglia il testo in basso e non capisco come aggiustarlo per bene

            Allegati:
            You must be logged in to view attached files.
            #43794 Score: 0 | Risposta

            alfrimpa
            Partecipante
              33 pts

              Ma i dati variabili sono solo quelli in colonna C (dove vedo formule) o a seguito di quanto impostato sul foglio Input deve variare anche il testo delle caselle di testo sul foglio Output?

              In altri termini quanto scritto nelle textbox di Output è fisso o variabile?

              #43795 Score: 0 | Risposta

              FROST220684
              Partecipante

                dati variabili solo nella parte superiore (allegato a)

                dati fissi nella textbox, potrebbe pero capitare di dover inserire un testo aggiuntivo prima dei dati fissi contenuti nella textbox tipo: 

                Circa la Sua richiesta, La informiamo che non effettuiamo specificamente cucina senza glutine con menù completo dedicato. Prevediamo – senza alcun sovraprezzo – la preparazione sia a pranzo che a cena di un primo piatto costituito da pasta senza glutine (servito direttamente al tavolo); prevediamo inoltre tra le altre pietanze (secondi e contorni) presenti sul buffet diversi piatti che non contengono glutine (al riguardo, il nostro personale di sala sarà a disposizione per indicare di volta in volta quelle prive di glutine). Non prevediamo alimenti/bevande specifiche a colazione. Merendine, pane, brioches ed altri alimenti che non necessitano di cottura possono essere procurati e consumati ai pasti ma a cura degli ospiti; in tal senso gli ospiti celiaci sono gli unici autorizzati ad introdurre in sala (sia a colazione, che a pranzo e cena) alimenti provenienti dall’esterno. Eventuali richieste e/o variazioni specifiche (sia a colazione, che a pranzo e cena) sono da considerarsi extra con listino “à la carte”.

                adesso ad esempio facciamo cosi: allegato b (praticamente andiamo ad aggiungere del testo nella textbox - prima dei dati fissi)

                il problema fondamentale è che nella stampa pdf alcune scritte della textbox vengono tagliate ed è brutto a livello estetico. Poi risolto il problema si potrebbe pensare di aggiungere un tasto che aggiunge il testo che serve in automatico (ad es. se ho un cliente celiaco e voglio aggiungere la nota premo il tasto e me l'aggiunge nell'output)

                Sto provando e riprovando in tutti i modi ad aggiustarlo ma non riesco a trovare una soluzione valida che mantenga la situazione attuale a livello di informazione e formattazione migliorando estetica ed operatività.

                Ogni consiglio è ben accetto per lavorarci su

                Grazie a tutti

                Allegati:
                You must be logged in to view attached files.
                #43798 Score: 0 | Risposta

                alfrimpa
                Partecipante
                  33 pts

                  Ho provato a salvare in PDF il foglio Output (che allego).

                  A me non sembra di rilevare problemi; se ci sono puoi indicarli magari a me sfuggono?

                  Puoi postare tu un PDF con i problemi che lamenti?

                  Allegati:
                  You must be logged in to view attached files.
                  #43802 Score: 0 | Risposta

                  FROST220684
                  Partecipante

                    certo, ti spiego cosa succede, questo problema estetico nella stampa scaturisce sicuramente dall'intestazione e dal piè di pagina (guarda lì) e dipende da quanto è lunga la parte superiore dei dati variabili e se si inseriscono dati aggiuntivi nella textbox tipo la nota della celiachia.

                    Ti faccio un esempio se faccio un preventivo 2 adulti sarà più corto di un preventivo 2 adulti 1 bambino e 1 ragazzo, La visualizzazione del pdf cambia quando io cambio i dati perchè la textbox si adatta male.

                    Ad esempio nel tuo file non ci sono grossi problemi di visualizzazione anche se uno c'è e ti allego (allegato a).

                    Poi ti allego un preventivo fatto da me più lungo come dati variabili inseriti e con la nota celiachia nella textbox vedrai che in intestazione e pie di pagina ci sono varie sbavature del testo e ti posso assicurare con i migliaia di preventivi che facciamo che capita anche che tagli il testo.

                    Appunto io volevo trovare una soluzione che risolva questo problema, che mi mantenga i dati fissi che sono nella textbox e non faccia sbavature se aggiungo altri dati sopra di essa o nella parte variabile del preventivo.

                    Esempio: Pensando ad una parte variabile che si allunga o accorcia in base alle informazioni, ed una base fissa che può scendere se si allunga la parte superiore ma che non vada in conflitto con intestazione e pie di pagina. Pensavo anche ad una parte intermedia dove inserire informazioni aggiuntive tramite macro (ad es. la nota celiachia che si usa solo quando ci chiedono cucina celiaca)

                    Spero di essere stato chiaro e se vuoi provare ho visto che hai fatto una stampa diretta del pdf, mentre la macro save_as nel file applica un filtro delle celle vuote dell'output e le toglie dalla stampa.

                    Grazie dell'aiuto e spero di riuscire a risolvere.

                    Allegati:
                    You must be logged in to view attached files.
                    #43806 Score: 0 | Risposta

                    alexps81
                    Moderatore
                      58 pts

                      Dunque...ora non posso dedicarci altro tempo che vado a lavoro...ma un qualcosa del genere non potrebbe andar bene? Tanto per iniziare...poi si può affinare ovviamente.

                      Ti ho spostato tutta la parte scritta direttamente sul foglio. Ho dovuto aggiungere una colonna A:A per ospitare l'elenco puntato. Ho aggiustato i riferimenti nella macro che lancia la stampa dato che ho aggiunto una colonna.

                      Ora se vedi le righe 72 e 73 sono dedicate all'inserimento di NOTE AL CLIENTE. Nel rigo 73 aggiungi delle note se necessarie. Se serve spazio allora allarghi il rigo quanto serve. Prova a vedere se una soluzione del genere potrebbe andar bene almeno come pensiero...ahhh...dimenticavo...dovresti inserire il logo in alto nell'intestazione pagina. Non so come mai ma involontariamente l'ho cancellato.

                      Allegati:
                      You must be logged in to view attached files.
                      #43809 Score: 0 | Risposta

                      FROST220684
                      Partecipante

                        tutte le soluzioni sono ben accette l'importante è mantenere l'identità del file e la sua funzionalità.

                        Nel file che mi hai allegato, sembra sistemato tutto per bene poi chiaramente va guardato per bene se tutto è ok. Il problema sta nella stampa pdf, non so se tu hai provato, ma fai conto che c'è una macro chiamata save_as che tecnicamente fa questo:

                        1. crea un file identico all'originale in xlsx e xlsm

                        2. applica filtri sulle colonne del foglio output per eliminare le celle vuote

                        3 stampa un file in pdf della pagina output

                        Ecco se tu lanci questa macro ti renderai conto che il preventivo viene tagliato a metà, ed il problema è proprio qui quando si inizia a spostare qualcosa poi salta tutto il reparto stampa. Per questo sto chiedendo aiuto ci avrò smanettato 1000 volte ma ogni volta che vado a modificare qualcosa poi la stampa viene peggio di prima e quindi si rimane sul file che si ha con la textbox perchè alla fine funziona ha solo quelle sbavature.

                        Quello che hai fatto è perfetto, molto ordinato e carino, bisogna capire come far funzionare il file e fargli fare tutto quello che faceva prima. Preventivi corretti, filtri sulle celle vuote e creazione del preventivo in pdf esteticamente corretto.

                        Ti riallego il file perchè ho fatto qualche modifica ai bordi delle celle, ma se vuoi puoi lavorare anche sul tuo. Ti allego anche un file PDF creato con la macro save_as cosi vedi dove taglia. Ti ringrazio per l'aiuto e non ho fretta anzi se risolvo questo problema sono molto contento quindi se ci vorrà del tempo pazienza.

                        Allegati:
                        You must be logged in to view attached files.
                        #43812 Score: 0 | Risposta

                        FROST220684
                        Partecipante

                          in merito alla stampa ti dico anche se salvi la pagina output in pdf è diverso da stamparla tramite macro per due motivi:

                          1. non vengono azionati i filtri delle celle vuote (in effetti il preventivo viene stampato bene)

                          2. se stampi da macro ti taglia la pagina a metà come da file allegato

                          #43817 Score: 0 | Risposta

                          alexps81
                          Moderatore
                            58 pts

                            Ciao @frost220684,

                            dunque ti giro questa mia proposta. Ti dico subito che bisogna rivedere ciò che è scritto nell'elenco puntato perché ho dovuto fare una serie di copia e incolla oltre a riportare a mano alcune frasi...quindi è necessario capire se ho riscritto tutto correttamente...ma per ora concentriamoci sulla struttura.

                            Innanzitutto ho eliminato la Casella di Testo (secondo me appesantisce di molto il file). Ho riportato tutto il contenuto direttamente nelle celle del Foglio.

                            Ho fatto vari tentativi ma l'unico che funziona è quello di scrivere rigo per rigo. Mi spiego meglio:

                            tu vorresti far fare a Excel ciò che gli riesce meglio a Word. Ora per rispettare i margini del foglio di Excel, l'intestazione e piè di pagina e quant'altro, è necessario scrivere rigo per rigo.

                            Quindi ho creato tante piccole righe (Celle Unificate da B:D [esempio:B30:D30; B31:D31; B32:D32; ecc...]), quindi in ogni rigo ho scritto quello che c'era nella Casella di Testo.

                            Poi ho gestito l'area di stampa con il metodo PageSetup.

                            Se noti bene nella cella A72 puoi inserire le NOTE AL CLIENTE. E' una cella unica con una certa altezza, diversa dalle altre insomma, che si può variare a piacere. La variazione della sua altezza non influenzerà la stampa. 

                            Ora dobbiamo capire come gestire questa cella...nel senso come ti piacerebbe interagire con essa.

                            Ti ricordo che devi aggiungere il logo nell'intestazione di pagina perché per errore l'ho cancellato.

                            L'unico inconveniente che hai è che non puoi GIUSTIFICARE il testo, cioè non puoi allineare il testo a destra. Credo che con Excel non riesci. L'unica scelta che hai sarebbe quella di divedere il testo in sillabe quando sei a margine del rigo. Questo vorrebbe dire di rivedere completamente ogni rigo dell'elenco puntato...però se vuoi che ci sia un certo allineamento anche a destra, credo che perdere una mezz'ora, ne valga la pena.

                            Cmq adesso se hai necessità di aggiungere/eliminare/modificare le note dell'elenco puntato ti basta inserire righe o eliminarle.

                            Fammi sapere....tieni presente che ci ho perso gli occhi per creare questa struttura...è vero che non è nulla di  ché ma ci è voluto del tempo.   

                            Allegati:
                            You must be logged in to view attached files.
                            #43819 Score: 0 | Risposta

                            FROST220684
                            Partecipante

                              Ciao Alex,

                              Innanzitutto grazie so cosa vuol dire smontare quella tabella, l'ho fatto parecchie volte cercando una soluzione e senza risultati accettabili. 

                              Torniamo al tuo file, si purtroppo la casella di testo fa cose che excel non permette, ma secondo me la tua soluzione è molto funzionale. Devo solo provarla 1000 volte per vedere se funziona tutto correttamente e dove potrò portare modifiche lo farò direttamente io. Appena ho una visione totale ti do un feedback e grazie sei riuscito a fare sicuramente molto più di me.

                              A presto ti aggiorno

                              #43851 Score: 0 | Risposta

                              FROST220684
                              Partecipante

                                Ciao Alex,

                                ci ho messo un po semplicemente perchè la stiamo testando e ritestando per vedere i suoi comportamenti anche in funzione delle macro. Ti dico la soluzione è molto valida, l'ho modificata un po e per questo ti mando un file aggiornato. In più ti segnalo alcune cose che non sono riuscito a capire a cosa sono dovute:

                                1. Nel passaggio tra pagine capita che tagli il testo o piccole parti di esso (allegato a), che in funzione di quante righe poi si allunga il preventivo può essere piu o meno accentuato (es. se metto nel preventivo più supplementi il preventivo si allunga in base a quello e la stampa pdf cambia in base a quello, per capirlo bene serve stampare tramite macro + preventivi con diverse modalità)

                                2. ho cercato di formattare il testo per giustificarlo creando un nuovo foglio Output, mentre la tua struttura l'ho messo in un foglio a parte "Vecchio".

                                3. Come vedrai dai preventivi 3 e 4 che allego e sono consecutivi mentre nel 3 all'altezza della tipologia camera (allegato b) i bordi celle si vedono in modo corretto nel preventivo 4 esce fuori un bordo che non capisco da dove esca fuori   

                                Se riusciamo a sistemare queste cose sempre essere tutto ok. Ad ogni modo continuo a provare e ti aggiorno man mano. Grazie mille dell'aiuto.

                                Allegati:
                                You must be logged in to view attached files.
                                #43855 Score: 0 | Risposta

                                FROST220684
                                Partecipante

                                  inserisco nuovo commento per allegare altri 2 file preventivo

                                   

                                  Allegati:
                                  You must be logged in to view attached files.
                                  #43860 Score: 0 | Risposta

                                  alexps81
                                  Moderatore
                                    58 pts

                                    FROST220684 ha scritto:

                                    1. Nel passaggio tra pagine capita che tagli il testo o piccole parti di esso (allegato a), che in funzione di quante righe poi si allunga il preventivo può essere piu o meno accentuato (es. se metto nel preventivo più supplementi il preventivo si allunga in base a quello e la stampa pdf cambia in base a quello, per capirlo bene serve stampare tramite macro + preventivi con diverse modalità)

                                    Ciao, è ovvio che sia così. Tu hai modificato la struttura del mio esempio. Come ti avevo scritto non puoi far fare ad Excel quello che dovrebbe fare Word.

                                    Nel mio esempio, ti avevo indicato che bisognava scrivere rigo per rigo. Invece tu hai unito le celle in tanti riquadri quanti sono i punti dell'elenco (ci avevo provato anche io ma con scarsi risultati, per questo ho virato su rigo per rigo). Se vedi il foglio "VECCHIO" in ogni rigo c'è parte dell'elenco puntato. Se lasci invece come hai fatto tu, capita proprio il problema che hai evidenziato. Se vuoi che tutto funzioni deve fare come ti avevo suggerito. Prova il mio esempio e vedrai che non capiterà questo inconveniente.

                                     

                                    FROST220684 ha scritto:

                                    2. ho cercato di formattare il testo per giustificarlo creando un nuovo foglio Output

                                    Ehhh....anche io ho provato a formattare il testo per giustificarlo e l'unico modo è proprio quello di crearlo in celle unificate. Ma come dicevo è necessario scrivere rigo per rigo, ma dovrai rinunciare a formattare in testo in modo giustificato (spero che qualcuno mi smentisca). L'unica soluzione che ho trovato è quella di dividere il testo in sillabe a margine del rigo (Es.: I prezzi sono da.........ospite di età compre-sa). Cioè se la parola compresa non entra nel rigo allora fai arrivare compre- in quel rigo mentre sa nel rigo sotto. Ovviamente già so che ci perderai gli occhi a dividere in sillabe...però una volta fatto te lo ritrovi.

                                    FROST220684 ha scritto:

                                    3. Come vedrai dai preventivi 3 e 4 che allego e sono consecutivi mentre nel 3 all'altezza della tipologia camera (allegato b) i bordi celle si vedono in modo corretto nel preventivo 4 esce fuori un bordo che non capisco da dove esca fuori 

                                     

                                    Dunque, sembra che sia un effetto del filtro che viene applicato nella colonna D per non visualizzare le righe vuote. Ho fatto una prova e sembra funzionare...fai come ti indico e vedi se si risolve. Seleziona dalla cella A23 fino alla D23, fai click destro del mouse, FORMATO CELLE, BORDO, anche se già vedi il bordo superiore...toglilo e inseriscilo nuovamente. Poi vedi se adesso funziona.

                                    #43867 Score: 0 | Risposta

                                    FROST220684
                                    Partecipante

                                      Ciao Alex,

                                      Eh lo avevo intuito per la giustifica solo che il mio capo è fissato con la giustifica del testone la vuole così. Ma secondo te non ce nessun altro metodo anche al di fuori di excel (es access) più versatile che ci permetta di fare tutto quello che fa questo file e migliorarlo sensibilmente?

                                      Il tuo file l'ho provato e va bene vediamo che cosa si riesce a fare e decidere. Per il bordo ci provo e ti dico.

                                      Grazie

                                      #43870 Score: 0 | Risposta

                                      alexps81
                                      Moderatore
                                        58 pts

                                        Be' sicuramente con Access potresti ottenere un risultato più professionale. Io a lavoro utilizzo una Rubrica Telefonica creata (in collaborazione con Vecchio Frac) in Access e devo dire che per lo scopo non ha paragoni rispetto ad Excel. Però qui stiamo parlando di rifare completamente il lavoro da capo...non è una passaggiata. Bisogna crare tabelle, maschere, query....e mettere il tutto in relazione.

                                        #43871 Score: 0 | Risposta

                                        FROST220684
                                        Partecipante

                                          immaginavo, mi chiedevo se queste problematiche testo secondo te possano essere risolte in modo definitivo e per come vogliamo?

                                          #43873 Score: 0 | Risposta

                                          alexps81
                                          Moderatore
                                            58 pts

                                            Guarda....spero di non dire stupidaggini, ma mi sembra che anche in Access non puoi "giustificare" il testo né nelle Textbox né nelle Label. Potresti "ripartirlo" ma accadrebbe che se hai poche lettere scritte in una Textbox poi ognuna di essa di allontanerebbe l'una dall'altra per riempire la Texbox stessa. Ad esempio se nella Texbox ho scritto: "Ciao sono Alex" ma la Texbox è lunga, ti potresti trovare con qualcosa del genere: "C  i  a  o    s  o  n  o    A  l  e  x".

                                            Comunque pare che il problema si possa risolvere facendo ricorso alle API, ma ci addentriamo in un terreno da me sconosciuto.

                                            #43874 Score: 0 | Risposta

                                            FROST220684
                                            Partecipante

                                              sinceramente non so nemmeno di che cosa stiamo parlando. Se è una soluzione valida e qualcuno nel forum riuscisse a darci una mano che ben venga, non so se tu conosci qualcuno che possa conoscere una cosa del genere

                                              #43880 Score: 0 | Risposta

                                              FROST220684
                                              Partecipante

                                                Ciao Alex,

                                                Sto impazzendo e non riesco ad aggiustarlo in nessun modo. Ho unito un po tutte le modifiche fatte (codice comitive, formattazione etc) per vedere dove si arrivava. Il file funziona correttamente. Solo che se lancio a stampa di un preventivo normale il pdf esce bene se lancio la stampa di un preventivo comitiva mi viene tagliato. sicuramente è una cavolata di impaginazione che non riesco a correggere. ti allego file pdf e file dove lavorare

                                                Grazie dell'aiuto

                                                Allegati:
                                                You must be logged in to view attached files.
                                                #43884 Score: 0 | Risposta

                                                FROST220684
                                                Partecipante

                                                  naturalmente l'errore nasce lanciando le due macro separatamente:

                                                  se lanci "save_as" il pdf viene bene (preventivo individuale)

                                                  se lanci "save_ascomitive" il pdf viene tagliato (preventivo comitive)

                                                  #43890 Score: 0 | Risposta

                                                  FROST220684
                                                  Partecipante

                                                    sembra che ho risolto passando da questo codice: 

                                                    With .Worksheets("Output")
                                                                ' inserire il nome della cartella preventivi PDF al posto di Preventivi Excel
                                                                .Columns("A:A").ColumnWidth = 44.57
                                                                 .Select
                                                                 .Range("$A$5:$C$64").AutoFilter Field:=3, Criteria1:="<>"
                                                                 wb1.Worksheets("Input").Range("N45").Value = p & "\pdf\" & Replace(s, "/", "-") & ".pdf"
                                                                .ExportAsFixedFormat xlTypePDF, p & "\pdf\" & Replace(s, "/", "-") & ".pdf", from:=1, To:=4
                                                            End With

                                                    a questo nella parte di stampa pdf:

                                                    With wb2.Worksheets("Output")
                                                            ' inserire il nome della cartella preventivi PDF al posto di Preventivi Excel
                                                            .Select
                                                        
                                                            .Range("$A$5:$D$65").AutoFilter Field:=4, Criteria1:="<>"
                                                            With .PageSetup
                                                                .Orientation = xlPortrait
                                                                .Zoom = False
                                                                .FitToPagesWide = 1
                                                                .FitToPagesTall = False
                                                            End With
                                                    
                                                            .ExportAsFixedFormat Type:=xlTypePDF, _
                                                                Filename:=p & "\pdf\" & Replace(s, "/", "-") & ".pdf", _
                                                                Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                                                                IgnorePrintAreas:=False, OpenAfterPublish:=False
                                                        End With

                                                     

                                                    provo e ti dico. Grazie

                                                    #43896 Score: 0 | Risposta

                                                    alexps81
                                                    Moderatore
                                                      58 pts

                                                      Ciao,

                                                      scusa ma solo adesso ho potuto leggere le tue richieste di aiuto ma noto con piacere che sei riuscito a risolvere da solo. Comunque ti posso confermare che il problema sta nell'impostare la pagine utilizzando il metodo PageSetup e le sue proprietà. Con le istruzioni:

                                                      .Zoom = False
                                                      .FitToPagesWide = 1 '<---Adatta colonne alla pagine
                                                      .FitToPagesTall = False

                                                      fai in modo di adattare la larghezza delle colonne alla dimensione della pagina.

                                                    Login Registrati
                                                    Stai vedendo 25 articoli - dal 1 a 25 (di 29 totali)
                                                    Rispondi a: Trasformazione casella di testo in cella/tabella excel
                                                    Gli allegati sono permessi solo ad utenti REGISTRATI
                                                    Le tue informazioni: