Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20

Associare posizione cursore con evento click in listview

  1. #1
    gagi non è in linea Novello
    Ciao a tutti, primo post e primo quesito:

    - sto lavorando in una userform in cui ho integrato una ListView, cliccando su questa popolo tutta una serie di textbox come potete leggere sotto. Per poter sfruttare questa ListView avrei però bisogno di far si che il cursore sul foglio di calcolo da cui prelevo i valori si posizioni sulla colonna A nella riga corrispondete selezionata sulla ListView che seleziono con l'evento click. Attualmente questo non succede. Sapete indicarmi il perché.

    Grazie

    Private Sub ListView1_Click()
    Dim riga As Long
    Sheets("scadenze").Select
    With ListView1.SelectedItem
    If IsNumeric(.Default) Then
    riga = Val(.Default) + 1
    Cells(riga, 1).Activate
    End If
    idimpianto = .ListSubItems(1).Text
    impianto.Caption = .ListSubItems(2).Text
    ultimarev = .ListSubItems(3).Text
    periodo = .ListSubItems(4).Text
    prossimarev = .ListSubItems(5).Text
    scaduto = .ListSubItems(6).Text
    TextBoxlink = .ListSubItems(7).Text
    contratto = .ListSubItems(8).Text
    contatto = .ListSubItems(9).Text
    End With
    End Sub
    
    Ultima modifica di AntonioG; 18-03-2014 14:38 

  2. #2
    genespos non è in linea Scribacchino
    Ciao,
    mi salta all'occhio una cosa:
    Tu hai scritto
    If IsNumeric(.Default) Then
    riga = Val(.Default) + 1
    Cells(riga, 1).Activate
    
    e se invece non è numerico?
    Dovresti inserire un "Else" altrimenti il valore di "Riga" rimane invariato o pari a zero.

    Ciao

    P.S. se indenti il codice lo leggi meglio (e lo leggono meglio anche quelli che vogliono aiutarti)

  3. #3
    gagi non è in linea Novello
    Quote Originariamente inviato da genespos Visualizza il messaggio
    Ciao,
    mi salta all'occhio una cosa:
    Tu hai scritto
    If IsNumeric(.Default) Then
    riga = Val(.Default) + 1
    Cells(riga, 1).Activate
    
    e se invece non è numerico?
    Dovresti inserire un "Else" altrimenti il valore di "Riga" rimane invariato o pari a zero.

    Ciao

    P.S. se indenti il codice lo leggi meglio (e lo leggono meglio anche quelli che vogliono aiutarti)
    Scusa non ho capito 2 cose:

    Dove lo devo mettere "Else"?

    E cosa vuoi dire con: "... se indenti il codice lo leggi meglio (e lo leggono meglio anche quelli che vogliono aiutarti)"

    VBA non é che lo palleggio benissimo.

    Grazie comunque per l'imput.

  4. #4
    L'avatar di dragone bianco
    dragone bianco non è in linea Amanuense
    Ciao gagi

    E cosa vuoi dire con: "... se indenti il codice lo leggi meglio (e lo leggono meglio anche quelli che vogliono aiutarti)"
    genespos intendeva dire di usare I tag [Code] [/Code] nella discussione tutte le volte che posti un Codice

    Invece per il codice
    If IsNumeric(.Default) Then
    riga = Val(.Default) + 1
    Cells(riga, 1).Activate
    End If
    
    è qui che devi mettere un Else

    Ma sei sicuro che "ListView1.SelectedItem.default" contenga un valore Numerico?
    Ciao
    ℹ️ Leggi di più su dragone bianco ...

  5. #5
    gagi non è in linea Novello
    Grazie per la risposta.

    La lsitView contiene in colonna A un codice numerico univoco che distingue le varie righe, in B la descrizione dell'oggetto selezionato in formato testo dell'oggetto in questione, in C la data d'inizio, in D un'altra descrizione testo, in E la data di fine.....

    Sapendo questo allora come devo modificare nel codice, "Else" come va gestito?

    Grazie per l'interesse

  6. #6
    genespos non è in linea Scribacchino
    Ti faccio un esempio per farti capire la funzione e l'importanza di "Else":

    In colonna A metti 5 righe di numeri;
    In colonna B metti 5 righe con a volte numeri ed a volte lettere

    Poi prova ad eseguire questi due codici (uno con Else e l'altro senza):
    Sub Prova_Senza_Else()
    For i = 1 To 5
        If IsNumeric(Cells(i, 2)) Then
            Fattore = Cells(i, 2)
        End If
        Cells(i, 3) = Cells(i, 1) * Fattore
    Next
    End Sub
    '
    '
    Sub Prova_Con_Else()
    For i = 1 To 5
        If IsNumeric(Cells(i, 2)) Then
            Fattore = Cells(i, 2)
        Else
            Fattore = 1
        End If
        Cells(i, 3) = Cells(i, 1) * Fattore
    Next
    End Sub
    
    Esamina i risultati dell'esecuzione dei due codici e rifletti sull'uso di un "Else".

    Per quanto riguarda la leggibilità del codice, oltre ai Tag giustamente evidenziati da Dragone Bianco, intendevo dire che devi far rientrare le righe che si trovano tra un For ed un Next o tra un If e un End If e così via, in modo da far risaltare immediatamente i "confini" di ogni gruppo.

    Ciao

  7. #7
    gagi non è in linea Novello
    OK grazie della risposta... la proverò domani quando sarò in ufficio.

    Buona giornata

  8. #8
    gagi non è in linea Novello
    Non funziona, il cursore rimane inchiodato dove si trova.

  9. #9
    gagi non è in linea Novello
    Se volete dargli un occhiata, vi allego il link da dove poterlo scaricare.

    https://drive.google.com/a/ticino.co...it?usp=sharing

  10. #10
    genespos non è in linea Scribacchino
    Quote Originariamente inviato da gagi Visualizza il messaggio
    Se volete dargli un occhiata, vi allego il link da dove poterlo scaricare.

    https://drive.google.com/a/ticino.co...it?usp=sharing
    Vuole un account google e l'accesso a googledrive.

    prova ad usare filedropper

    Ciao

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Posizione del cursore in un foglio Writer
    Da stefano1962 nel forum LibreOffice, OpenOffice e altro
    Risposte: 0
    Ultimo Post: 29-08-2020, 13:03
  2. Cursore del mouse in posizione voluta
    Da aldodellacasa nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 19-06-2013, 14:51
  3. Risolto: [VB2010] TextBox: Posizionare il cursore in una determinata posizione
    Da imbranato nel forum Visual Basic .Net
    Risposte: 8
    Ultimo Post: 14-12-2012, 09:56
  4. [ VB2010]Inserire del testo sulla posizione del cursore
    Da IAL32 nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 12-09-2012, 21:29
  5. evento item click listview
    Da The Clansman nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 28-08-2006, 00:24