tasto indietro



  • tasto indietro
    di trittico69 (utente non iscritto) data: 15/08/2017 18:12:00

    salve, a un tasto "cerca" di una form ho questo codice collegato


    che praticamente cerca dei nominativi...vorrei creare un altro tasto nella from che se in caso per la fretta supero il nome cercato e mi va al successivo perchè c'è un atro nome uguale, mi da la possibilità di tornare indietro di uno ogni volta che clicco il tasto chiamiamolo "indietro"
    grazie
     
    Private Sub CommandButton1_Click()
    Dim i As Long
    RAvvia:
    userform1.Caption = "CERCA in cella"
    TextBox1.SetFocus
    TextBox1.SelStart = 0
    TextBox1.SelLength = Len(TextBox1.Text)
    With ActiveSheet.Range("X2:AB65536, A2:d65536, e1:j65536")
    If CheckBox2.Value = True Then lAt = 1 Else lAt = 2
        If myPrimo Is Nothing Then
            myK1 = 0
            Set c = .Find(TextBox1.Text, LookIn:=xlValues, lookat:=lAt)
        Else: Set c = .FindNext(myCorr)
        End If
        If c Is Nothing Then GoTo CkCmt
        If Not myPrimo Is Nothing Then If c.Address = myPrimo.Address Then GoTo CkCmt
        c.Select
        If myPrimo Is Nothing Then Set myPrimo = c
        Set myCorr = c: userform1.Caption = "TROVATO in cella"
    End With
    Exit Sub
    CkCmt:
    userform1.Caption = "CERCA in commento"
    If myPrimo Is Nothing Then Set myPrimo = ActiveCell
    If myCorr Is Nothing Then Set myCorr = ActiveCell
    For i = myK1 + 1 To ActiveSheet.Comments.Count
    Set Kmt = ActiveSheet.Comments(i)
        If Not Application.Intersect(Kmt.Parent, Range("X2:AB65536, A2:B65536, e1:j65536")) Is Nothing Then
            myFlag = 0
    If CheckBox2.Value = True And UCase(Kmt.Text) = UCase(TextBox1.Text) Then myFlag = True
    If CheckBox2.Value = False And Len(UCase(Kmt.Text)) > Len(Replace(UCase(Kmt.Text), UCase(TextBox1.Text), "")) Then myFlag = True
    If myFlag = True Then
    
                myK1 = i: Kmt.Parent.Select
                userform1.Caption = "TROVATO in commento": Exit Sub
            End If
        End If
    Next
    FineKmt:
    userform1.Caption = "------> FINE RICERCA"
    Set myPrimo = Nothing
    End Sub
    



  • di Vecchio Frac data: 15/08/2017 21:16:23

    Trovo difficile riprodurre lo scenario per ricreare la situazione e capire il problema.
    Allega un file di esempio lavorabile con descrizione del risultato atteso.




  • Trittico
    di Trittico (utente non iscritto) data: 15/08/2017 21:58:05

    Potrebbe essere sufficiente un codice che annulla l'ultima operazione effettuata?



  • di patel data: 16/08/2017 07:32:28

    non puoi annullare, ma puoi provare lo stesso codice con FindPrevious invece che next





  • di Trittico (utente non iscritto) data: 16/08/2017 11:10:40

    Mi dice sub o function non definita...puoi dirmi cosa aggiungete all'inizio?



  • di patel data: 16/08/2017 11:36:58

    ti è stato già chiesto di allegare un file di esempio





  • di Trittico (utente non iscritto) data: 16/08/2017 12:55:49

    È un file molto grande quindi c'è molto da cancellare per poterlo pubblicare vediamo se riusciamo a risolvere così altrimenti provo a cancellare tutto



  • di trittico69 (utente non iscritto) data: 16/08/2017 12:58:10

    ho fatto cosi
     
    Private Sub CommandButton6_Click()
    Dim i As Long
    RAvvia:
    userform1.Caption = "CERCA in cella"
    TextBox1.SetFocus
    TextBox1.SelStart = 0
    TextBox1.SelLength = Len(TextBox1.Text)
    With ActiveSheet.Range("X2:AB65536, A2:d65536, e1:j65536")
    If CheckBox2.Value = True Then lAt = 1 Else lAt = 2
        If myPrimo Is Nothing Then
            myK1 = 0
            Set c = .Find(TextBox1.Text, LookIn:=xlValues, lookat:=lAt)
        Else: Set c = .FindNext(myCorr)
        End If
        If c Is Nothing Then GoTo CkCmt
        If Not myPrimo Is Nothing Then If c.Address = myPrimo.Address Then GoTo CkCmt
        c.Select
        If myPrimo Is Nothing Then Set myPrimo = c
        Set myCorr = c: userform1.Caption = "TROVATO in cella"
    End With
    Exit Sub
    CkCmt:
    userform1.Caption = "CERCA in commento"
    If myPrimo Is Nothing Then Set myPrimo = ActiveCell
    If myCorr Is Nothing Then Set myCorr = ActiveCell
    For i = myK1 + 1 To ActiveSheet.Comments.Count
    Set Kmt = ActiveSheet.Comments(i)
        If Not Application.Intersect(Kmt.Parent, Range("X2:AB65536, A2:B65536, e1:j65536")) Is Nothing Then
            myFlag = 0
    If CheckBox2.Value = True And UCase(Kmt.Text) = UCase(TextBox1.Text) Then myFlag = True
    If CheckBox2.Value = False And Len(UCase(Kmt.Text)) > Len(Replace(UCase(Kmt.Text), UCase(TextBox1.Text), "")) Then myFlag = True
    If myFlag = True Then
    
                myK1 = i: Kmt.Parent.Select
                userform1.Caption = "TROVATO in commento": Exit Sub
            End If
        End If
    FindPrevious



  • di trittico69 (utente non iscritto) data: 20/08/2017 16:40:13

    aprendo il file e cliccando sulla T si apre il tasto di ricerca nome...se io digito la lettera A mi seleziona tutti e tre i nomi, uno alla volta, perchè tutti contengono la lettera A...si dovrebbe collegare un codice al tasto "torna indietro" facendo in modo di annullare l'ultima operazione cioè tornare al nome precedentemente trovato, cliccando di nuovo torna alla penultima operazione e così via.
    allego file di esempio



  • di trittico69 (utente non iscritto) data: 20/08/2017 16:42:21

    ://drive.google.com/file/d/0B1RGwH2aNsU8SFJUd19HUkxJNzA/view?usp=sharing



  • di trittico69 (utente non iscritto) data: 20/08/2017 16:44:44

    aggiungere L'Hyper Text Transfer Protocol puntato.... non me lo fa scrivere lo vede come spam



  • di patel data: 20/08/2017 19:56:32

    nel modulo1 aggiungi
    Public c as range
    e poi
     
    Private Sub CommandButton6_Click()
    With ActiveSheet.Range("X2:AB65536, A2:d65536, e1:j65536")
             Set c = .FindPrevious(c)
             c.Select
    End With
    End Sub






  • di trittico69 (utente non iscritto) data: 21/08/2017 09:26:52

    ok funziona grazie



  • di trittico69 (utente non iscritto) data: 21/08/2017 13:09:24

    è sorto un problema
    mi evidenzia questa riga del codice nel modulo 1
    ReDim c(rt) As Integer

    errore di compilazione prevista matrice



  • di patel data: 21/08/2017 13:36:05

    utilizza una variabile con nome diverso, non conviene usare nomi uguali per scopi diversi.
    potresti chiamare cfound il range che utilizzi per il find





  • di trittico69 (utente non iscritto) data: 26/08/2017 14:35:52

    mi da sempre errore questa riga
    Set st = .FindPrevious(st)
    ho messo st a posta della c

     
    Private Sub CommandButton6_Click()
    With ActiveSheet.Range("X2:AB65536, A2:d65536, e1:j65536")
             Set st = .FindPrevious(st)
            st.Select
    End With
    End Sub
    



  • di patel data: 26/08/2017 18:07:33

    nel modulo1
    Public st as range
    e poi hai sostituito anche qui ?
     
    If CheckBox2.Value = True Then lAt = 1 Else lAt = 2
        If myPrimo Is Nothing Then
            myK1 = 0
            Set c = .Find(TextBox1.Text, LookIn:=xlValues, lookat:=lAt)
        Else: Set c = .FindNext(myCorr)
        End If
        If c Is Nothing Then GoTo CkCmt
        If Not myPrimo Is Nothing Then If c.Address = myPrimo.Address Then GoTo CkCmt
        c.Select
        If myPrimo Is Nothing Then Set myPrimo = c
        Set myCorr = c: userform1.Caption = "TROVATO in cella"






  • di Trittico (utente non iscritto) data: 26/08/2017 22:31:17

    Si ho sostituito nel modulo1
    Public st as range ....
    Non ho capito perche devo cambiare questo codice visto che ho cambiato la c in st
     
    If CheckBox2.Value = True Then lAt = 1 Else lAt = 2
        If myPrimo Is Nothing Then
            myK1 = 0
            Set c = .Find(TextBox1.Text, LookIn:=xlValues, lookat:=lAt)
        Else: Set c = .FindNext(myCorr)
        End If
        If c Is Nothing Then GoTo CkCmt
        If Not myPrimo Is Nothing Then If c.Address = myPrimo.Address Then GoTo CkCmt
        c.Select
        If myPrimo Is Nothing Then Set myPrimo = c
        Set myCorr = c: userform1.Caption = "TROVATO in cella"



  • di patel data: 27/08/2017 06:27:04

    tu hai usato la variabile c in 3 sub diverse, prima come range nella CommandButton1_Click() per il find, la seconda nella CommandButton6_Click() per il find previous e per fargli mantenere il valore precedente abbiamo definito c come variabile pubblica. Se cambi c in st devi cambiarla in ambedue le sub.
    Poi hai usato c come array in ReDim c(rt) As Integer ed essendo c diventata pubblica ti dà errore, da qui il consiglio di utilizzare 2 variabili diverse, st come range e c come array.





  • di Trittico (utente non iscritto) data: 27/08/2017 09:45:59

    Non ci capisco nulla potresti farlo tu il codice?



  • di patel data: 27/08/2017 11:00:15

    il file allegato non è più disponibile, comunque non è difficile, il FIND e il FIND PREVIOUS usano la stessa variabile che prima era c ed ora è st che deve essere anche dichiarata public (come già detto)





  • di Trittico (utente non iscritto) data: 27/08/2017 14:39:32

    Ho provato da me ma proprio non sono capace, ti allego il file se puoi farmi il favore di modificarlo tu e reinviarmelo grazie
    ://drive.google.com/file/d/0B1RGwH2aNsU8SFJUd19HUkxJNzA/view?usp=drivesdk



  • di patel data: 27/08/2017 16:30:55

    allegato sostituendo c con cfound





  • di Trittico (utente non iscritto) data: 27/08/2017 17:58:30

    Dove scarico l'allegato non lo trovo



  • di patel data: 27/08/2017 18:23:37

    in altro a destra c'è scritto in blu File allegati con una clip





  • di trittico69 (utente non iscritto) data: 28/08/2017 13:34:20

    ok...funziona..grazie..
    ti chiedo un ultimo aiuto sempre per lo stesso file che è collegato ad un file access dove estrapolo dati e li riporto in rubricagedet.
    il file acces sin trova nel server.
    ho inserito un altro foglio con altri dati con la stessa procedura che furono fatti gli atri fogli che tuttora funzionano.
    ma quando apro il file rubricagedet mi da le schermate allegate.
    puoi dirmi cosa devo fare?


    ://drive.google.com/file/d/0B1RGwH2aNsU8T3luUmo1MWpWTFE/view?usp=sharing
    ://drive.google.com/file/d/0B1RGwH2aNsU8RHRrU1pvOWtxZkk/view?usp=sharing


  • tasto indietro
    di trittico69 (utente non iscritto) data: 21/09/2017 10:17:28

    è sorto un errore..in pratica se cerco un nome e non esiste e premo per sbaglio il tasto indietro, mi esce la finestra errore. si puo fare in modo che questa finestra non esca?
    grazie


  • tasto indietro
    di trittico69 (utente non iscritto) data: 23/09/2017 09:02:07

    patel puoi aiutarmi?



  • di trittico69 (utente non iscritto) data: 25/09/2017 09:09:50

    se ti serve sapere altro fammi sapere...grazie