Sviluppare funzionalita su Microsoft Office con VBA andare a capo nella cella successiva.

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

    IGNAZIO68
    Partecipante

      buongiorno, avrei la necessità di un vostro benevolo aiuto.

      praticamente se scrivo su una cella e la lunghezza del testo inserito è > di 7  (per esempio). la cella attiva deve diventare la successiva e così via sempre sulla stessa colonna partendo da a2

      non ho postato nessun codice perché effettivamente ho fatto tante prove ma effettivamente tutte non funzionanti e per la maggior parte tentativi "disperati" . . . mi occorre per motivi di lavoro .

      comunque in quella cella inserisco delle date senza alcun separatore es. : 11032025; ogni volta mi devo spostare con il mouse e/o con la freccia in giù perdendo un sacco di tempo. 

      anticipatamente grazie.

      #51649 Score: 0 | Risposta

      alfrimpa
      Partecipante
        33 pts

        Secondo me la cosa più semplice che puoi fare è limitare a 7 caratteri con una convalida dati la lunghezza del testo che si può inserire in una cella ma per passare alla successiva va sempre premuto Invio

        Il foglio di lavoro che io sappia non ha eventi che ti consentano di conteggiare e gestire il numero di caaratteri immessi in una cella.

        #51650 Score: 0 | Risposta

        vecchio frac
        Senior Moderator
          272 pts

          IGNAZIO68 ha scritto:

          ho fatto tante prove ma effettivamente tutte non funzionanti

          Sarebbe stato comunque interessante e piu' proficuo vedere i tuoi tentativi. Hai utilizzato l'evento Change sul Worksheet o SheetChange in ThisWorkbook?
          E poi  mi vien da chiedere: se scrivi un testo che sembra data, vuoi che compaia una data con i separatori? perche' non vedo aggravamenti in termini di tempo a scrivere del testo e premere Invio, la selezione va alla cella successiva (o quella altrimenti impostata nelle Opzioni).

          Descrivi un po' meglio lo scenario e l'esigenza, e posta pure tranquillamente un file di esempio con il risultato atteso e il codice che non riesci a far funzionare. Da qui si puo' partire anche per consigliarti alternative.

          #51651 Score: 0 | Risposta

          alfrimpa
          Partecipante
            33 pts

            Vecchio Frac con l'evento Change va comunque premuto Invio per scatenarlo; a me è sembrato di capire che si volessero conteggiare i caratteri inseriti in cella prima di dare conferma-

            #51652 Score: 0 | Risposta

            IGNAZIO68
            Partecipante

              bene, grazie per le vostre risposte.

              vi allego un file dove una casella di testo si incrementa se la lunghezza della cella > 7; il valore della casella di testo non è altro che la riga della cella e tutto funziona, però per la verifica devo cliccare sul commandbutton.

              Purtroppo non conosco gli eventi quindi magari, non so ma se questo codice venisse inserito in un keypress o keydown ? la sparo così , cosa mi consigliate per automatizzare il tutto ?

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

              alfrimpa
              Partecipante
                33 pts

                Il foglio di lavoro non ha gli eventi keypress e keydown.

                Ma a parte l’andare alla cella successiva il tuo scopo qual è quello di impedire l’inserimento in una cella di una stringa lunga più di 7 caratteri?

                #51667 Score: 0 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  alfrimpa ha scritto:

                  Il foglio di lavoro non ha gli eventi keypress e keydown.

                  E' come dice Alfri e che avevo gia' anticipato. Hai a disposizione solo l'evento Change sul foglio che pero' ha bisogno che tu prema Invio perche' si scateni (non mi sembra nemmeno cosi' assurdo, inserisci il tuo testo e lo confermi, il contatore si incrementa e la selezione si sposta nella cella in cui immettere il nuovo testo).

                  #51668 Score: 0 | Risposta

                  vecchio frac
                  Senior Moderator
                    272 pts

                    IGNAZIO68 ha scritto:

                    bene, grazie per le vostre risposte.

                    Non credo che sia quello lo scopo, quanto piuttosto facilitare l'inserimento in una specifica cella determinata in modo automatico.

                    #51671 Score: 0 | Risposta

                    alfrimpa
                    Partecipante
                      33 pts

                      Vecchio Frac

                      La schiera dei proseliti dell’U.C.A.S. (Ufficio Complicazioni Affari Semplici) aumenta sempre   

                      #51673 Score: 0 | Risposta

                      Raffaele53
                      Partecipante
                        24 pts

                        >>>che pero' ha bisogno che tu prema Invio
                        Si-No, solo capire bene quello che desidera…

                        Solo da provare, devi prima selezionare una cella vuota in colonna A e dopo scrivere sempre nella Texbox. Ad ogni otto caratteri si sposta cintinuamente nella cella più sotto.

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

                        vecchio frac
                        Senior Moderator
                          272 pts

                          Ciao Raffaele, hai fatto un buon lavoro ma io non avevo capito che lui volesse editare la textbox.

                          Anche se avrebbe senso come hai fatto tu: inserisci un valore sempre nella stessa textbox e il codice lo immette nella prima cella vuota (dopo la validazione del testo, ossia dopo sette caratteri e senza premere invio, sfruttando l'evento Change della Textbox).

                          #51709 Score: 0 | Risposta

                          IGNAZIO68
                          Partecipante

                            salve gente ! alla fine ho risolto così : 

                            tdata è la textbox di immissione dati, conta è un'altra textbox con valore impostato = 2 . . .

                            funziona secondo le mie intenzioni .

                            grazie a tutti .

                            Private Sub tdata_Change()
                                If Len(tdata) > 7 Then
                                    Cells(conta, 1) = tdata
                                    tdata = ""
                                    conta = conta + 1
                                End If
                            End Sub
                          Login Registrati
                          Stai vedendo 12 articoli - dal 1 a 12 (di 12 totali)
                          Rispondi a: andare a capo nella cella successiva.
                          Gli allegati sono permessi solo ad utenti REGISTRATI
                          Le tue informazioni: