› Sviluppare funzionalita su Microsoft Office con VBA › andare a capo nella cella successiva.
-
AutoreArticoli
-
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.
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.
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.
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-
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.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?
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).
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.
Vecchio Frac
La schiera dei proseliti dell’U.C.A.S. (Ufficio Complicazioni Affari Semplici) aumenta sempre
>>>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.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).
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 -
AutoreArticoli
