You are here:--[RISOLTO] Inserimento dati con maschera
[RISOLTO] Inserimento dati con maschera2019-05-21T14:39:33+01:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Inserimento dati con maschera

  • Autore
    Articoli
  • AvatarKris_9951
    Partecipante
      Post totali: 107

      Salve ragazzi,
      io ho iniziato a produrre una mia idea ma, ovviamente, mi sono bloccato perchè il mio livello è quello che è.
      Per capire meglio sin dal principio potete guardare un post precedente:

      https://www.bysal-excel.it/forums/topic/controllo-doppioni/#post-8607
      Descrivo quello che ho fatto nella speranza che possiate aiutarmi  :-)

      Sul doppio Click della colonna “C” del codice che mi interessa si apre una UserForm che contiene 3 cose:
      1 – una TextBox la quale vorrei contenesse la situazione di tutti i seriali inseriti per quell’apparato (come già stato fatto da Sal), ovvero la macro VediDopp1

      2 – 2 checkbox con due etichette (una per ogni checkbox)

      La prima etichetta si chiama “PRENOTA” ed a fianco una TextBox la quale può accettare solo numeri

      La seconda etichetta collegata alla seconda checkbox si chiama “ASSEGNA” ed a fianco due textbox “DA” “A” ed anch’esse possono accettare solo numeri

      Alla textbox di “PRENOTA” posso mettere un numero ed una volta confermato con il pulsante OK la macro deve solo colorare di GIALLO un numero di celle pari al numero inserito, quindi se scrivo “10” deve colorare di giallo le prime 10 celle dei seriali di quel codice ma il contenuto delle celle rimane invariato.

      Sarebbe “figo” se potesse inserire anche una riga nuova nel caso viene inserito un numero superiore a 20 ed un altra ancora per numeri superiori a 40 e così via  ;-)

      La TextBox ASSEGNA deve fare la stessa cosa ma con anche  i numeri seriali disposti in modo progressivo

      Il concetto è che solitamente io coloro prima le celle in modo da capire quanto prodotti ha ordinato al fine di organizzarmi ed una volta che sono a conoscenza dei seriali da assegnare posso inserire anche i seriali nelle celle colorare di giallo (infatti nella colonna E c’è una formula che conta in base al colore della cella)

      Spero in un Vostro aiuto perchè io non sono ad un livello tale da poterci riuscire da solo  :-(
      Grazie a tutti per l’aiuto!!

      https://www.dropbox.com/s/0e3x8be67ue9uf1/BYSAL.xlsm?dl=0

      • Questo argomento è stato modificato 6 mesi, 2 settimane fa da Avatar Kris_9951.
      • Questo argomento è stato modificato 5 mesi, 4 settimane fa da sid sid.
    • sidsid
      Moderatore
        Post totali: 723

        Ciao
        Mi permetto un consiglio: al posto delle checkbox usa le OptionButton; sono più adatte alla tua esigenza perchè non devi preoccuparti di escludere il flag dagli altri controlli; con le OB il flag nel controllo attivo, esclude il flag in tutti gli altri (tranne in casi particolari, ma questo non è il tuo)

      • AvatarKris_9951
        Partecipante
          Post totali: 107

          Hai ragione Sid,

          non ci avevo proprio pensato… 😅

        • sidsid
          Moderatore
            Post totali: 723

            Ciao
            Se a te piace scrivere codice allora ti consiglio di leggere quanto segue, altrimenti non perderci tempo.

            Se continui la lettura allora ti piace scriverere codice ;)

            Permettimi un consiglio visto che ci sono passato prima di te.
            Ho notato che ti piace rinominare i controlli delle useform; non che questo sia deleterio (lo faccio pure io….al boss invece non piace), ma ti consiglio degli accorgimenti.

            Quando cambi il nome ad un controllo, anteponi al nome una sigla; in questo modo quando ti trovi nel codice, sai a che tipo di controllo si riferisce.

            Faccio riferimento a questo codice

            Private Sub PRENOTA_AfterUpdate()
            If Me.PRENOTA = True Then
            Me.ASSEGNA.Enabled = False
            Me.DA.Enabled = False
            Me.A.Enabled = False
            Me.PZ.SetFocus
            End If
            
            If Me.PRENOTA = False Then
            Me.ASSEGNA.Enabled = True
            Me.DA.Enabled = True
            Me.A.Enabled = True
            End If
            
            End Sub

            Per te che hai scritto il codice, è facile capire a cosa ti riferisci (ma solo perchè sono pochi controlli..immagina centinaia!!!…avresti difficoltà anche te)

            ASSEGNA e PRENOTA sono checkbox
            DA,A e PZ sono textbox

            Per me che leggo il codice devo andare a verificare di cosa si tratta

            Io ad esempio faccio così

            per le textbox uso:
            TB_da
            TB_a
            TB_pz

            per le checkbox
            CB_assegna
            CB_prenota

            Per le optionButton
            CB_

            per le userform
            frm_

            per le combo
            CBox_

            per i frame
            Frame_

            per le listbox
            LB_

            e così via

            C’è che dice: ma dopo non pui usare i cicli; chi l’ha detto? Basta usare dei piccoli accorgimenti.
            Se ho delle textbox in cui inserisco l’anagrafica di un cliente, posso rinominarle così:
            Tb_Anagrafica1
            Tb_Anagrafica2
            Tb_Anagrafica3


            ecc…per tutte le tb che voglio

            Se invece non gli do un numero in sequenza, ma ho dei nomi come per l’esempio sopra:
            TB_da
            TB_a
            TB_pz

            posso inserirli in un array e ciclare tutti gli elementi dell’array stesso.
            Come vedi puoi sbizzarrirti come desideri

            —————————–
            Anche per le variabili stessa cosa

            dim pippo as string
            se tu leggi questa variabile all’interno del codice, non sai a cosa si riferisce

            dim sPippo as string invece ti dice che è una stringa

            vPippo è tipo Variant
            nPippo è numerica (integer, long, double ecc…ma sai che è un valore numerico) ma nulla ti vieta di nominarla

            intPippo
            lngPippo
            dblPippo

            dPippo è tipo data

            bPippo è tipo Boolean

            ecc……..

            Se prendi il “vizio” di usare questi trucchetti, vedrai che il tuo modo di programmare ti darà delle soddisfazioni ;)

            Ciao

          • sidsid
            Moderatore
              Post totali: 723

              Per le optionButton
              CB_

              ovviamente è
              OB_

            • AvatarKris_9951
              Partecipante
                Post totali: 107

                È giusto!! È giustissimo!

                Ho capito perfettamente :-)

                Io sono un Neofita del VBA ma quello che mi piace del VBA (ma sicuramente lo stesso discorso vale per tutti gli altri linguaggi di programmazione) è che tutto ha una logica e tutto deve essere fatto con logica.

                Terrò bene a mente questo consiglio :-)

                 

                Grazie mille Sid!!

              • sidsid
                Moderatore
                  Post totali: 723

                  1 – una TextBox la quale vorrei contenesse la situazione di tutti i seriali inseriti per quell’apparato (come già stato fatto da Sal), ovvero la macro VediDopp1

                  Una possibile soluzione:
                  nella subRoutine Sub VediDopp1(Cod, dd)
                  all’interno dell’Else sostituisci l’istruzione
                  MsgBox "Seriali assegnati al codice " & Cod & " - " & dd & Chr(10) & Chr(10) & d, vbInformation, "Lista Seriali assegnati"
                  con

                  With Compilazione
                      .InfoProdottoSeriali.Value = "Seriali assegnati al codice " & Cod & "-" & dd & Chr(10) & Chr(10) & d
                      .Show
                  End With

                  Inoltre devi cambiare la proprietà Multiline della textbox InfoProdottoSeriali da False a True; in questo modo se la stringa che restitisce la subroutine è troppo lunga, va a capo.

                  PS

                  Compilazione e InfoProdottoSeriali ti ricordi che sono? :P

                • AvatarKris_9951
                  Partecipante
                    Post totali: 107

                    Ciao Sid!

                    Grazie mille! Provo tutto immediatamente :-)

                    “Compilazione” è il nome della Maschera (quindi in base al tuo consiglio avrei dovuto chiamarla frm_Compilazione)

                    “InfoProdottoSeriali” è la TextBox la quale deve far comparire il risultato della Macro VediDopp1

                    Grazie mille :-)

                    Provo ad eseguire le modifiche che mi hai suggerito :-)

                  • AvatarKris_9951
                    Partecipante
                      Post totali: 107

                      PS Compilazione e InfoProdottoSeriali ti ricordi che sono? :P

                      Ops!!

                      Mi stavi prendendo in giro!! :yahoo:

                      Non avevo capito!!! :whistle:

                    • AvatarKris_9951
                      Partecipante
                        Post totali: 107

                        Una possibile soluzione: nella subRoutine Sub VediDopp1(Cod, dd) all’interno dell’Else sostituisci l’istruzione MsgBox "Seriali assegnati al codice " & Cod & " - " & dd & Chr(10) & Chr(10) & d, vbInformation, "Lista Seriali assegnati" con

                        With Compilazione
                            .InfoProdottoSeriali.Value = "Seriali assegnati al codice " & Cod & "-" & dd & Chr(10) & Chr(10) & d
                            .Show
                        End With

                        Ho fatto ma la maschera si apre e nella TextBox non compare acluna info… :wacko:

                      • sidsid
                        Moderatore
                          Post totali: 723
                        • sidsid
                          Moderatore
                            Post totali: 723

                            Forse ho capito; nell’evento activate del form non hai disabilitato l’istruzione
                            'Me.InfoProdottoSeriali = "QUESTA TEXT BOX VORREI CHE RIPORTASSE LE INFORMAZIONI DELLA MACRO VediDopp1"

                            mettici un apice davanti e si disabilita…..oppure eliminala

                          • AvatarKris_9951
                            Partecipante
                              Post totali: 107

                              Lo avevo fatto 😭

                              Forse avrò “toccato” qualcos’altro… 😂

                            • AvatarKris_9951
                              Partecipante
                                Post totali: 107

                                Vorrei chiederti una cosa.

                                Tu hai scritto:

                                <span style=”caret-color: #707070; color: #707070; font-family: Inconsolata, Consolas, Monaco, ‘Lucida Console’, monospace; font-size: 12px; white-space: pre; -webkit-text-size-adjust: 100%; background-color: #f9f9f9;”>With Compilazione .InfoProdottoSeriali.Value = “Seriali assegnati al codice ” & Cod & “-” & dd & Chr(10) & Chr(10) & d .Show End With</span>

                                Però io pensavo che bisognava mettere prima “.show” per aprire la maschera e dopo “.infoprodottoseriali.value ecc…”

                                Quindi un controllo di una maschera può essere “editato” anche se la maschera non è aperta?

                              • sidsid
                                Moderatore
                                  Post totali: 723

                                  Quindi un controllo di una maschera può essere “editato” anche se la maschera non è aperta?

                                  Si, l’importante che l’oggetto esiste.
                                  Puoi impostare il valore di un controllo sia da codice (sia che esso sia attivo oppure no), sia manualmente in fase di programmazione.

                                • sidsid
                                  Moderatore
                                    Post totali: 723

                                    Un consiglio per usare il tag QUOTE:
                                    seleziona la parte di testo che vuoi riportare, poi clicca su QUOTE

                                  • AvatarKris_9951
                                    Partecipante
                                      Post totali: 107

                                      Un consiglio per usare il tag QUOTE: seleziona la parte di testo che vuoi riportare, poi clicca su QUOTE

                                      Con te c’è sempre da imparare 😂

                                    • AvatarKris_9951
                                      Partecipante
                                        Post totali: 107

                                        A me funziona

                                        Sid scusami, ma io non riesco a capire perchè sul tuo file funziona e sul mio no… :cry:

                                        Ho aperto entrambi contemporaneamente paragonandoli senza trovare differenze ma nonostante tutto sul tuo file la TextBox funziona e sul mio no…

                                        Cosa mi sfugge?? :wacko:

                                        Grazie mille per il supporto!!

                                        https://www.dropbox.com/s/7sloglgicfnqvpy/BYSAL.xlsm?dl=0

                                        • Questa risposta è stata modificata 6 mesi, 2 settimane fa da Avatar Kris_9951. Ragione: Link File
                                      • sidsid
                                        Moderatore
                                          Post totali: 723

                                          Scusa ma adesso non ho modo di stare al pc. Prima di stanotte non posso aiutarti.
                                          Spero intervenga qualcuno ad aiutarti.

                                        • AvatarKris_9951
                                          Partecipante
                                            Post totali: 107

                                            Scusa ma adesso non ho modo di stare al pc. Prima di stanotte non posso aiutarti.

                                            Sid ma non preoccuparti :-)

                                            Quando vuoi!

                                            Sei stato anche fin troppo gentile.

                                            Grazie mille per il supporto!!

                                          • sidsid
                                            Moderatore
                                              Post totali: 723

                                              Scusa ma la colpa è mia
                                              Non ti ho detto che nell’evento SheetBeforeDoubleClick andava attivata l’istruzione della chiamata alla subRoutine
                                              Sub VediDopp1(Cod, dd)
                                              ed eliminare l’istruzione
                                              Compilazione.Show

                                            • AvatarKris_9951
                                              Partecipante
                                                Post totali: 107

                                                Scusa ma la colpa è mia Non ti ho detto che nell’evento SheetBeforeDoubleClick andava attivata l’istruzione della chiamata alla subRoutine Sub VediDopp1(Cod, dd) ed eliminare l’istruzione Compilazione.Show

                                                Ma è pur vero che avrei potuto notarlo anch’io ;-)

                                                Grazie mille!!

                                              • sidsid
                                                Moderatore
                                                  Post totali: 723

                                                  ….ed a fianco una TextBox la quale può accettare solo numeri

                                                  Ciao
                                                  Ti mando un file di prova in cui trovi un paio di esempio di come inserire solo numeri nella textbox
                                                  https://app.box.com/s/z5plbfbh79pl181lynj73dhh6qdhtlzu
                                                  La userform la apri con Ctrl+a

                                                  Se ti soddisfano, prova ad adattarlo al tuo file.

                                                  Ciao

                                                • AvatarKris_9951
                                                  Partecipante
                                                    Post totali: 107

                                                    Bellissimo!!!

                                                    Ed io che pensavo ad un qualcosa di più banale tipo:

                                                    If Not IsNumeric(Me.TextBox1) Then

                                                    Questo è il Top :yahoo:

                                                     

                                                    Grazie mille!!

                                                    Credo che la parte più difficile ora sia quella che riguarda l’auto compilazione dei seriali in base ai valori inseriti nelle TextBox… :wacko:

                                                  • sidsid
                                                    Moderatore
                                                      Post totali: 723

                                                      Spiegala meglio

                                                    • AvatarKris_9951
                                                      Partecipante
                                                        Post totali: 107

                                                        Alla textbox di “PRENOTA” posso mettere un numero ed una volta confermato con il pulsante OK la macro deve solo colorare di GIALLO un numero di celle pari al numero inserito, quindi se scrivo “10” deve colorare di giallo le prime 10 celle dei seriali di quel codice ma il contenuto delle celle rimane invariato. Sarebbe “figo” se potesse inserire anche una riga nuova nel caso viene inserito un numero superiore a 20 ed un altra ancora per numeri superiori a 40 e così via   La TextBox ASSEGNA deve fare la stessa cosa ma con anche  i numeri seriali disposti in modo progressivo

                                                         

                                                        Quindi considerato che in un primo momento sono a conoscenza solo delle quantità che il cliente ha ordinato per ogni prodotto ed in un secondo momento mi metteranno a conoscenza anche dei seriali di quei prodotti ordinati io ho impostato il mio flusso di lavoro così:

                                                        nella fase 1 ovvero la fase in cui sono a conoscenza delle quantità ma non ancora dei seriali io evidenzio in giallo un numero di celle pari alla quantità ordinata dal cliente (questo per iniziare quantomeno ad organizzare il lavoro) e quando verrò a conoscenza dei seriali riempirò quelle stesse celle evidenziate in precedenza con i numeri seriali.

                                                        Per questi motivi ho pensato a questi due metodi di inserimento:

                                                        – PRENOTA

                                                        – ASSEGNA

                                                        Il “PRENOTA” colora di giallo le celle in base al numero inserito mentre “ASSEGNA” ci scrive i numeri “DA” “A”

                                                        In parole povere questo è quanto ;-)

                                                      • sidsid
                                                        Moderatore
                                                          Post totali: 723

                                                          Cominciamo con l’opzione PRENOTA
                                                          Facendo riferimento al file (corretto) del post #8629

                                                          – Foglio Cliente1
                                                          – Doppioclick in C16 (codice A)
                                                          – Flag su PRENOTA
                                                          – Textbox (da ora in poi la chaimo TB) TOT PZ inserisco valore 15 (per ora inseriamo max valore 20)

                                                          Ricapitolando:
                                                          1 – Devo colorare tutte le cella del range F16:T16 (15 celle)?
                                                          2 – I valori presenti restano?

                                                        • sidsid
                                                          Moderatore
                                                            Post totali: 723

                                                            Questo il risultato che vuoi ottenere?

                                                          • AvatarKris_9951
                                                            Partecipante
                                                              Post totali: 107

                                                              Ciao Sid!

                                                              Esattamente :-)

                                                              Mi potresti apostrofare l’istruzione che cancella anche il contenuto perché non sono ancora sicuro se volercela lasciare o no…

                                                              Comunque sia il risultato è quello :-)

                                                               

                                                              Grazie mille!!

                                                            • sidsid
                                                              Moderatore
                                                                Post totali: 723

                                                                Prima di andare avanti vorrei capire una cosa per quanto riguarda il lato PRENOTA; le celle che colori resteranno sempre colorate?

                                                              • AvatarKris_9951
                                                                Partecipante
                                                                  Post totali: 107

                                                                  le celle che colori resteranno sempre colorate?

                                                                  Perdonami Sid ma non ho capito precisamente la domanda e tempo di darti risposte sbagliate.

                                                                   

                                                                  Le celle che coloro rimarranno colorate nel momento in cui il numero di celle colorare rimane lo stesso del numero di prodotti ordinati dal cliente.

                                                                  Se il cliente a posteriori dovesse modificare l’ordine incrementando o diminuendo la quantità io (manualmente) colorerò o decolorerò le celle in conformità agli eventuali cambiamenti

                                                                  Era questo che volevi sapere?

                                                                   

                                                                  p.s. grazie mille per il supporto!

                                                                • sidsid
                                                                  Moderatore
                                                                    Post totali: 723

                                                                    Le celle che coloro rimarranno colorate nel momento in cui il numero di celle colorare rimane lo stesso del numero di prodotti ordinati dal cliente.

                                                                    Significa che una volta che avrai inserito i seriali nelle celle colorate, togli il colore?

                                                                  • AvatarKris_9951
                                                                    Partecipante
                                                                      Post totali: 107

                                                                      No…

                                                                      La cella rimane sempre colorata (in base al mio modo di operare)

                                                                      quindi:

                                                                      – cella colorata ma vuota = prodotto ordinato dal cliente con seriale ancora ignoto in quanto sono in attesa di saperlo da parte degli uffici competenti

                                                                      – cella colorata con numero dentro = prodotto ordinato dal cliente con tanto di seriale già attribuito

                                                                       

                                                                      Tutti gli eventuali cambiamenti verranno gestiti manualmente.

                                                                    • sidsid
                                                                      Moderatore
                                                                        Post totali: 723

                                                                        Ti mando il file aggiornato

                                                                        https://app.box.com/s/9abkpz4222m8mq9y7xtyb56wqyj5q5yf

                                                                        Ricorda che siamo work in progress, quindi è molto facile che non funzioni come vorresti, o che vengano restituiti errori nel codice.
                                                                        Ho modificato i controlli della form (option button al posto delle checkbox), e li ho anche rinominati.
                                                                        Per ora è attiva solo l’opzione PRENOTA; quando verificheremo che funziona alla perfezione, allora passiamo all’opzione ASSEGNA

                                                                        Questo il funzionamento:
                                                                        NB
                                                                        faccio riferimento al foglio CLIENTE1, Tabella1 (codice A)

                                                                        1 – doppioclick come al solito sulle stringhe dei codici (appare il form); oltre al pulsante OK, ho
                                                                        aggiunto anche il pulsante annulla per uscire dall’operazione. (La X rossa in alto a dx l’ho disabilitata)

                                                                        2 – flag su PRENOTA (appare il frame_prenota)

                                                                        3 – inserisci il numero dei pezzi; nella TB_pz ho impostato la proprietà MaxLenght = 2; significa che puoi scrivere solo 2 cifre (max 99 pezzi); se ne vuoi di più modifica il valore a 3 o quello che vuoi. Se clicchi sul pulsante OK senza aver inserito nulla, avvisa ed esce.

                                                                        4 – dopo aver cliccato su Ok, il form si chiuderà ed apparirà una inputbox in cui ti verrà chiesto di selezionare la cella di partenza del range da colorare.
                                                                        Opzioni:
                                                                        – nessuna cella colorata: selezionerai F16
                                                                        – celle colorate da F16 a V16 (totale 17 celle, celle rimanenti della riga = 3); selezionerai W17; nel caso inserisci un valore maggiore di 3, verrà inserita una o più nuove righe nella tabella, e verranno colorate le celle rimanenti.
                                                                        – ammettiamo che hai già colorato una riga completa (F16:Y16); quindi la cella di partenza deve essere la prima di una nuova riga che ancora non esiste; in questo caso per far capire al sistema quale deve essere la cella di partenza, devi selezionare la cella successiva all’ultima cella colorata della riga precedente; quindi Z16.
                                                                        Ho provato a far selezionare la riga nera, ma è poco gestibile; putroppo meglio di così non ho saputo fare…. dovrai farci l’abitudine :(

                                                                        5 – Logicamente tutto questo è valido per ogni tabella di ogni foglio

                                                                        Mi sembra di averti detto tutto; fai molti test ed annota nel dettaglio tutto quello che non funziona come vorresti.
                                                                        Ciao.

                                                                      • sidsid
                                                                        Moderatore
                                                                          Post totali: 723

                                                                          – celle colorate da F16 a V16 (totale 17 celle, celle rimanenti della riga = 3); selezionerai W17

                                                                          Ovviamente è W16

                                                                          Scusa ma ti ho mandato il file sbagliato; questo quello giusto:
                                                                          https://app.box.com/s/9abkpz4222m8mq9y7xtyb56wqyj5q5yf

                                                                        • AvatarKris_9951
                                                                          Partecipante
                                                                            Post totali: 107

                                                                            Grazie mille Sid!!

                                                                            Tra poco più di 1 ora lo proverò con calma :-)

                                                                            Ti farò sapere subito! 👍

                                                                          • AvatarKris_9951
                                                                            Partecipante
                                                                              Post totali: 107

                                                                              Ciao Sid!

                                                                              Per prima cosa complimenti! Per me quello che vedo fa parte di un livello ancora troppo lontano per me…

                                                                              Direi che ci siamo, anzi possiamo anche farla più semplice, nel senso che possiamo anche togliere l’inputbox che chiede di scegliere da quale cella partire facendo anche in modo che parta sempre e comunque dalla prima cella disponibile ovvero quella della colonna F.

                                                                              Quindi potrebbe anche partire sempre dalla colonna F fino ad arrivare a dove gli viene chiesto di arrivare.

                                                                              Se è troppo fastidioso andare oltre 20 non è un problema in quanto posso comunque ripetere l’operazione anche per la riga successiva.

                                                                              Dico questo perchè ho visto che crea anche una nuova riga nel caso in cui le celle da colorare vanno oltre la colonna Y però nella nuova riga che si crea i campi CODICE e MODELLO rimangono vuoti. In realta basterebbe solo riempire il campo CODICE in quanto il campo MODELLO ha un CERCA.VERT.

                                                                               

                                                                              P.s. ho fatto due aggiunte stupide al codice.

                                                                              La prima aggiunta è quella di far comparire la maschera anche sulle righe dove non è presente alcun seriale e la seconda sulla macro PRENOTA in quanto ho aggiunto Activesheet.Unprotect all’inizio perchè se il foglio è protetto la macro non funzionava.

                                                                              Se vuoi puoi continuare su questo :-)

                                                                              https://www.dropbox.com/s/vije08qq1wwe3zb/BYSAL_V3.1.xlsm?dl=0

                                                                               

                                                                              Grazie ancora per il supporto!!!!!

                                                                            • sidsid
                                                                              Moderatore
                                                                                Post totali: 723

                                                                                Dico questo perchè ho visto che crea anche una nuova riga nel caso in cui le celle da colorare vanno oltre la colonna Y però nella nuova riga che si crea i campi CODICE e MODELLO rimangono vuoti.

                                                                                Risolto anche questo problema; ora inserisce anche codice e modello

                                                                                Per quanto riguarda la protezione del foglio, devi aggiungere delle condizioni per bypassare la protezione, altrimenti non ti fa aggiungere nuove righe; oltre seleziona celle sbloccate devi flaggare anche inserisci colonne e modifica oggetti; vedi immagine

                                                                                Rivisto anche le istruzione del metodo Protect, con l’aggiunta delle proprietà citate sopra.

                                                                                Questo il file aggiornato
                                                                                https://app.box.com/s/8ev25nrbroa7pgg920ymv70fx4ewhokp

                                                                                Fa sapere, ciao

                                                                              • AvatarKris_9951
                                                                                Partecipante
                                                                                  Post totali: 107

                                                                                  Ciao Sid!

                                                                                  Grazie mille!

                                                                                  Ho visto il file e funziona bene :-)

                                                                                  Per quel che mi riguarda puoi anche disabilitare l’input box che chiede di selezionare la cella di partenza e far partire la “colorazione” sempre e comunque dalla colonna F.

                                                                                  Ho due domande:

                                                                                  1 – Perché la colorazione di celle superiori a 20 funziona correttamente solo sulla prima tabella di ogni foglio, mentre sulle altre tabelle no? Se provo a colorare 25 celle partendo sempre dalla colonna F ottengo risultato esatto solo nella prima tabella in alto ma nelle altre no perché vengono colorate più di 25 celle.

                                                                                  2 – Perchè bisogna flaggare “modifica oggetti” se all’inizio della Macro PRENOTA viene disabilitata la protezione del foglio?

                                                                                  Essendo disabilitata la protezione del foglio è comunque possibile creare nuove righe in tabella durante la Macro quindi non capisco…

                                                                                  Grazie mille per il supporto!!

                                                                                   

                                                                                • sidsid
                                                                                  Moderatore
                                                                                    Post totali: 723

                                                                                    1 – Perché la colorazione di celle superiori a 20 funziona correttamente solo sulla prima tabella di ogni foglio, mentre sulle altre tabelle no?………

                                                                                    Sto provando su tutte le tabelle e funziona

                                                                                    2 – Perchè bisogna flaggare “modifica oggetti” se all’inizio della Macro PRENOTA viene disabilitata la protezione del foglio?

                                                                                    Essendo disabilitata la protezione del foglio è comunque possibile creare nuove righe in tabella durante la Macro quindi non capisco…

                                                                                    Perchè la macro viene eseguita con il doppioclick, quindi prima di entrare nel codice dove c’è l’istruzione di sproteggere il foglio; con modifica oggetti mi permette di fare il doppioclick sulla cella (che è un oggetto che in questo caso mi fa eseguire una macro…praticamente è un pulsante)

                                                                                    vedi qui

                                                                                  • AvatarKris_9951
                                                                                    Partecipante
                                                                                      Post totali: 107

                                                                                      Sto provando su tutte le tabelle e funziona

                                                                                      a me il risultato è questo a parità di operazione :-(

                                                                                      https://www.dropbox.com/s/omfcszf8ofzmort/IMG_2492.JPG?dl=0

                                                                                      Per quanto riguarda la protezione del foglio ho capito :-)

                                                                                      Grazie mille per le info!!

                                                                                    • sidsid
                                                                                      Moderatore
                                                                                        Post totali: 723

                                                                                        Per quel che mi riguarda puoi anche disabilitare l’input box che chiede di selezionare la cella di partenza e far partire la “colorazione” sempre e comunque dalla colonna F.

                                                                                        E se nella riga ci sono già celle colorate?

                                                                                      • AvatarKris_9951
                                                                                        Partecipante
                                                                                          Post totali: 107

                                                                                          Nessun problema.

                                                                                          Tanto io userò l’inserimento con maschera quando il file sarà completamente bianco. Tutte le eventuali modifiche in corso le farò manualmente 👍

                                                                                          Per caso ti sei riuscito a spiegare perché nelle altre tabelle ottengo questo risultato a parità di operazione tra la tabella in alto e la tabella di sotto?

                                                                                          https://www.dropbox.com/s/omfcszf8ofzmort/IMG_2492.JPG?dl=0

                                                                                           

                                                                                        • sidsid
                                                                                          Moderatore
                                                                                            Post totali: 723

                                                                                            Nessun problema.

                                                                                            OK; eliminato inputbox

                                                                                            Per caso ti sei riuscito a spiegare perché nelle altre tabelle ottengo questo risultato a parità di operazione tra la tabella in alto e la tabella di sotto?

                                                                                            Dovrei aver risolto anche questo; il file aggiornato:
                                                                                            https://app.box.com/s/m3phpc8iwfcjdkyjfdmderrtxi0om0sd
                                                                                            I soliti test

                                                                                          • AvatarKris_9951
                                                                                            Partecipante
                                                                                              Post totali: 107

                                                                                              Grande Sid!!! :-)

                                                                                              Alla grande!!

                                                                                              Una domanda:

                                                                                              ma perché quando si creano delle righe nuove spuntano sulla colonna E di quelle righe nuove delle formule che io avevo cancellato?

                                                                                              Non è la prima volta che mi capita questo problema… Quelle formule c’erano una volta in quella colonna ma poi io le ho cancellate ma quando crei una nuova riga spuntano fuori di nuovo 😡

                                                                                              https://www.dropbox.com/s/l6viz10cjj6b2sc/IMG_2495.JPG?dl=0

                                                                                              Grazie grazie per il supporto!!!!!!

                                                                                            • sidsid
                                                                                              Moderatore
                                                                                                Post totali: 723

                                                                                                ma perché quando si creano delle righe nuove spuntano sulla colonna E di quelle righe nuove delle formule che io avevo cancellato?

                                                                                                Avevo notato anche io questo problema; sinceramente se le formule sono state cancellate, non capisco come possano essere reinserite; tanto più che mancano anche i riferimenti alle celle, visto che restituiscono un errore #RIF!…misteri di Excel.

                                                                                                Se vuoi possiamo fare in modo di cancellare la formula quando si crea la nuova riga; di più non saprei

                                                                                              • AvatarKris_9951
                                                                                                Partecipante
                                                                                                  Post totali: 107

                                                                                                  Più che cancellare la formula, se possibile, creare nella nuova riga le stesse condizioni della riga precedente.

                                                                                                  Mi spiego meglio: in alcune tabelle la cella della colonna E è bloccata e contiene una formula (quella che conta), mentre in altre tabelle la cella della colonna E è sbloccata e non contiene formule in quanto deve essere editabile.

                                                                                                  Sarebbe buono se nel momento in cui venisse creata la nuova riga venissero in qualche modo “clonate” nelle celle della nuova riga le stesse caratteristiche delle celle della riga originaria in moto tale che dove originariamente c’è la formula la stessa viene copiata bloccando la cella e dove invece la formula non c’è non viene messo nulla e quindi sbloccando anche la cella…

                                                                                                  È un casino? 😂😂😤

                                                                                                • AvatarKris_9951
                                                                                                  Partecipante
                                                                                                    Post totali: 107

                                                                                                    Però ho notato che se converto ogni tabella in intervallo e poi ricreo la tabella sempre sullo stesso intervallo di celle il problema non si ripresenta.

                                                                                                    Siccome quelle tabelle sono frutto di diversi “copia e incolla” temo che abbiano conservato le caratteristiche originarie…

                                                                                                    Volendo potrei anche fare così:

                                                                                                    converto in intervallo tutte le tabelle e poi le ricreo nuovamente…

                                                                                                    Tu che pensi?

                                                                                                  • sidsid
                                                                                                    Moderatore
                                                                                                      Post totali: 723

                                                                                                      Sarebbe buono se nel momento in cui venisse creata la nuova riga venissero in qualche modo “clonate” nelle celle della nuova riga le stesse caratteristiche delle celle della riga originaria….

                                                                                                      La riga nuova viene inserita copiando dalla riga superiore; quindi copia laformula

                                                                                                      Volendo potrei anche fare così:
                                                                                                      converto in intervallo tutte le tabelle e poi le ricreo nuovamente…
                                                                                                      Tu che pensi?

                                                                                                      Provaci…dovrebbe funzionare.
                                                                                                      Lavora su una copia di backu…fa sapere, ciao.

                                                                                                    • AvatarKris_9951
                                                                                                      Partecipante
                                                                                                        Post totali: 107

                                                                                                        Ciao Sid!

                                                                                                        Ho portato il contenuto del file usato come esempio nel mio file di lavoro e NONOSTANTE IL FOGLIO SIA PRATICAMENTE IDENTICO ricevo questo errore nel momento in cui provo a colorare le celle:

                                                                                                        https://www.dropbox.com/s/w5kjqyg5pqhhxyz/Cattura.PNG?dl=0

                                                                                                        C’è qualcosa che mi è sfuggito nel portare i codici da un file all’altro? Non capisco perchè sul file del tuo esempio tutto funziona bene e sul mio no eppure la tabella è identica… :unsure:

                                                                                                        Grazie per il supporto!

                                                                                                        • Questa risposta è stata modificata 6 mesi, 1 settimana fa da Avatar Kris_9951. Ragione: Link Foto
                                                                                                      • sidsid
                                                                                                        Moderatore
                                                                                                          Post totali: 723

                                                                                                          Ciao
                                                                                                          Premesso che non ho modo ti testare il file; appena posso verifico.
                                                                                                          Quella è la riga incriminata, ma non so quale messaggio di errore restituisce; e sinceramente non dovrebbe dare nessun messaggio di errore anche se l’errore viene generato realmente, in quanto 3 istruzioni prima c’è il comando “On Error Resume Next” che è fatto apposta per continuare l’ezecuzione della macro anche in caso di errore.
                                                                                                          In ogni caso mandami l’immagine dell’errore.

                                                                                                        • AvatarKris_9951
                                                                                                          Partecipante
                                                                                                            Post totali: 107

                                                                                                            https://www.dropbox.com/s/w5kjqyg5pqhhxyz/Cattura.PNG?dl=0

                                                                                                            Sul tuo file funziona bene ma una volta portati i codici sul mio mi restituisce questo errore eppure le tabelle sono identiche… 😭

                                                                                                          • sidsid
                                                                                                            Moderatore
                                                                                                              Post totali: 723

                                                                                                              Ripeto: non vedo nessun errore ma solo l’istruzione evidenziata in giallo.
                                                                                                              Ti appare un messaggio a schermo?

                                                                                                            • AvatarKris_9951
                                                                                                              Partecipante
                                                                                                                Post totali: 107

                                                                                                                Scusami… credevo che la parte evidenziata dal Debug fosse l’errore :whistle:

                                                                                                                Questo è quello che mi compare prima di cliccare su Debug:

                                                                                                                https://www.dropbox.com/s/6dywss3x5w6ujrg/Cattura2.PNG?dl=0

                                                                                                                 

                                                                                                                Grazie mille per il supporto!!

                                                                                                              • sidsid
                                                                                                                Moderatore
                                                                                                                  Post totali: 723

                                                                                                                  Ok
                                                                                                                  Adesso riprova ad eseguire la macro, poi quando appare il messaggio di errore clicca su debug.
                                                                                                                  Si evidenzierà la riga come sempre.

                                                                                                                  Ora clicca lentamente per più volte su F8; vedrai che la riga gialla si spsterà sull’istruzione successiva; quello che vedi è vba che legge il codice.
                                                                                                                  Quando l’istruzione è evidenziata significa che vba deve ancora leggerla; la leggerà solo dopo quando avrai premuto F8.
                                                                                                                  Prosegui lentamente fino a che non ti apparirà un’altra volta il messaggio di errore.
                                                                                                                  Quando ti apparirà l’errore significa che l’istruzione che l’ha causato è stata l’ultima evidenziata
                                                                                                                  Non è difficile.
                                                                                                                  Prova con calma.

                                                                                                                  Sto provando ad aiutarti ma sto col cellulare.
                                                                                                                  Abbi pazienza

                                                                                                                • AvatarKris_9951
                                                                                                                  Partecipante
                                                                                                                    Post totali: 107

                                                                                                                    Abbi pazienza??

                                                                                                                    Sei tu quello che ha tutta la pazienza del mondo!! 😂😂

                                                                                                                    Lo faccio subito e ti faccio sapere 👍

                                                                                                                  • AvatarKris_9951
                                                                                                                    Partecipante
                                                                                                                      Post totali: 107

                                                                                                                      Ho fatto. :yes:

                                                                                                                      Ho premuto più volte F8 la continua sempre ad evidenziarsi quella riga:

                                                                                                                      https://www.dropbox.com/s/ebzez2h70lj5ll6/2019-05-10%2022-20-54.mp4?dl=0

                                                                                                                      Come puoi vedere, in fin dei conti la struttura del mio file è identica a quella del file del tuo esempio…

                                                                                                                      P.s. Devo dirti un particolare.

                                                                                                                      Per vedere quale riga veniva evidenziata ho commentato la riga Call PRENOTA copiando poi sotto tutta la Macro PRENOTA perchè inizialmente mi evidenziava solo Call PRENOTA quindi non capivo quale parte di PRENOTA dava problemi…

                                                                                                                      Grazie mille per il supporto!!!

                                                                                                                    • sidsid
                                                                                                                      Moderatore
                                                                                                                        Post totali: 723

                                                                                                                        Ma sei riuscito a capire qual’è l’istruzione che scatena l’errore?

                                                                                                                      • AvatarKris_9951
                                                                                                                        Partecipante
                                                                                                                          Post totali: 107

                                                                                                                          Purtroppo no :-(

                                                                                                                          Ma il video che ho registrato ti può essere utile?

                                                                                                                        • sidsid
                                                                                                                          Moderatore
                                                                                                                            Post totali: 723

                                                                                                                            Si ho visto.
                                                                                                                            In ogni caso non deve scattare l’errore, perchè prima viene letta l’istruzione
                                                                                                                            On Error Resume Next
                                                                                                                            che è fatta apposta per continuare la lettura del codice.
                                                                                                                            Qualcosa non va nel tuo file, come se ci fosse un bug.
                                                                                                                            L’unica cosa è che dovrei vedere il file.
                                                                                                                            Se vuoi puoi mandarmelo in privato; ti assicuro la massima discrezione.

                                                                                                                          • AvatarKris_9951
                                                                                                                            Partecipante
                                                                                                                              Post totali: 107

                                                                                                                              Grazie a Sid che ha risolto tutti i problemi :-)

                                                                                                                              Per quel che mi riguarda questa discussione può essere chiusa :-)

                                                                                                                            • sidsid
                                                                                                                              Moderatore
                                                                                                                                Post totali: 723

                                                                                                                                Grazie a te per il riscontro.
                                                                                                                                Alla proxima.

                                                                                                                              Devi essere loggato per rispondere a questa discussione.

                                                                                                                              Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                                                                                                                              Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                                                                                                                              Chiudi