› Sviluppare funzionalita su Microsoft Office con VBA › Seleziona cella
-
AutoreArticoli
-
Ciao a tutti, cortesemente avrei la necessità di far sì che in sede di ultimo inserimento di dati trasferiti con apposito pulsante (Transfer) dal precedente foglio, venga sempre selezionata la cella (colonna B) del nominativo appunto ultimo inserito.
Come faccio ?
Grazie mille a chi mi vorrà aiutare
p.s. allego file esempio
Allegati:
You must be logged in to view attached files.La metti alla fine del tuo codice
Cells(Rows.Count, "B").End(xlUp).SelectMa forse non ho capito se devi selezionare la cella dove hai fatto l'ultimo inserimento
o trovare la prima cella vuota per il nuovo inserimento
Io ho capito che deve posizionare il cursore nella cella in colonna "B" dell'ultimo inserimento...e dato che c'è di mezzo un ordinamento tramite Sort la cosa forse si complica.
Prova ad aggiungere questo pezzo di codice in mezzo a
Loop While MsgBox("Vuoi inserire un altro codice?", vbYesNo + vbQuestion, "PROSEGUO O ESCO?") = vbYeseExit Sub'.... '.... 'Loop While MsgBox("Vuoi inserire un altro codice?", vbYesNo + vbQuestion, "PROSEGUO O ESCO?") = vbYes Set CellaW = Range("A:A").Find(What:=Codice, SearchOrder:=xlByRows, SearchDirection:=xlPrevious) If Not CellaW Is Nothing Then Cells(CellaW.Row, "B").Select End If 'Exit Sub '.... '....in pratica andiamo a ricercare la cella dell'ultimo codice inserito all'interno della colonna "A" e poi da li ricaviamo il rigo e a quel punto selezioniamo la cella in colonna "B"
devo selezionare la cella della colonna "B" dell'ultimo inserimento fatto
Hai provato il pezzo di codice che ho pubblicato? Devi copiarti da
Set CellaW =...fino aEnd Ife lo devi inserire traLoop While MsgBoxeExit Subciao Alexps81, si grazie mille, stavo proprio provandolo e funziona perfettamente.
Volevo chiederti la cortesia, per favore, di dirmi dove andare a posizionare il codice stesso all'interno del pulsante "inserisci" presente nella userform (dopo aver cliccato il tasto AVVIA), per ottenere il medesimo risultato, ovvero posizionarsi nell'ultimo dato inserito riportato in colonna "B".
Grazie mille
Nel macro del pulsante "Inserisci" aggiungi queste 2 variabili subito dopo
Private Sub cmdInvia_Click()Dim contatore As String Dim rigaDebitore As Variantpoi al posto di
If TxtContatore = "" Thenci metti:contatore = TxtContatore.Value If contatore = "" Theninfine, prima di
End Sub(quindi siamo alla fine) ci metti questo:On Error Resume Next rigaDebitore = Application.Match(CDbl(contatore), ActiveSheet.Range("A:A"), 0) On Error GoTo 0 If Not IsError(rigaDebitore) Then Range("B" & rigaDebitore).Select End IfVedi se funziona come vorresti.
Onestamente mi sento di dirti che ci sono diversi errori strutturali nel codice. Assenza della dichiarazione esplicita delle variabili (Option Explicit), presenza eccessiva di ActiveCell, ElseIf, dichiarazioni di variabili errate (così come le dichiari sono tutte di tipo Variant, il ché comporta oltre che uno spreco di memoria ma anche di eventuali errori di interpretazione da parte del compilatore). Insomma si potrebbe fare molto meglio...
Buonasera Alex, grazie funziona tutto alla perfezione.
In merito alla tua ultima nota, dove mi dici che ci sono diversi errori, da ignorante in materia ti chiedo se, a tempo perso, potresti "aggiustarmi" tu il tutto ovviamente, dico una cosa scontata, mantenendo comunque tutte le funzionalità ed automatismi del file in senso lato.
Fammi sapere, intanto grazie ancora per tutto
-
AutoreArticoli
