Selezione range di celle



  • Selezione range di celle
    di alexps81 data: 30/07/2015 14:39:36

    Salve a tutti, in allegato ho caricato un file che pian piano sto realizzando grazie all'aiuto di tutti voi esperti e qualche modifica fatta da me.

    In questa nuova discussione volevo chiedere se è possibile realizzare questa cosa:

    Nel foglio ELENCO TELEFONICO se si fa doppio click in una cella, compare una form con una serie di pulsanti e due campi per scrivere. Se si clicca su un pulsante oppure si scrive qualcosa nei campi, al click su OK automaticamente nel foglio REGISTRO TELEFONATE viene trascritto il contenuto della cella dove si è fatto il doppio click, il contenuto della scritta fatta nella form, l'ora del momento e la data attuale.

    Io volevo sapere se è possibile fare in modo che in qualsiasi cella si faccia doppio click di un qualsiasi rigo, nel foglio REGISTRO TELEFONATE compare sempre il COGNOME, il NOME e l'UFFICIO.

    Mi spiego con un esempio pratico: doppio click nella cella dove c'è scritto il numero di telefono di CLAUDIO, si apre la form, scrivo nella form CARLO, nel REGISTRO TELEFONATE deve comparire --> CLAUDIO TIZIO 3° CARLO 14.50 30/07/2015

    Grazie.



  • di Luca73 data: 30/07/2015 17:58:24

    Ciao
    sostituisci la macro Private Sub CommandButton1_Click() con quella sotto riportata
    Aggiungi una colonna D nel foglio REGISTRO TELEFONATE e chiamala UFFICIO

    TI faccio notare che ho modificato portando fuori dall'if quasi tutte le istruzioni in quanto indipendenti dall'IF stesso e pertanto semplificando il codice stesso.

    Ciao
    Luca
     
    Private Sub CommandButton1_Click()
    Dim ur As Long
    
    ur = Sheets("REGISTRO TELEFONATE").Range("A" & Rows.Count).End(xlUp).Row + 1
    With ActiveCell.EntireRow
            Sheets("REGISTRO TELEFONATE").Range("B" & ur).Value = .Cells(1, 3) & " " & .Cells(1, 2)
            Sheets("REGISTRO TELEFONATE").Range("C" & ur).Value = .Cells(1, 4)
            Sheets("REGISTRO TELEFONATE").Range("D" & ur).Value = Time
            Sheets("REGISTRO TELEFONATE").Range("E" & ur).Value = Date
            Sheets("REGISTRO TELEFONATE").Range("F" & ur).Value = TextBox2
        If TextBox1 <> "" Then
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = TextBox1
            
        ElseIf ToggleButton1.Value = True Then
            
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton1.Caption
                
        ElseIf ToggleButton2.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton2.Caption
            
        ElseIf ToggleButton3.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton3.Caption
            
        ElseIf ToggleButton4.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton4.Caption
            
        ElseIf ToggleButton5.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton5.Caption
            
        ElseIf ToggleButton6.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton6.Caption
            
        ElseIf ToggleButton7.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton7.Caption
            
        ElseIf ToggleButton8.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton8.Caption
            
        ElseIf ToggleButton9.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton9.Caption
            
        ElseIf ToggleButton10.Value = True Then
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton10.Caption
            
        ElseIf ToggleButton11.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton11.Caption
            
        ElseIf ToggleButton12.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton12.Caption
            
        ElseIf ToggleButton13.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton13.Caption
            
        ElseIf ToggleButton14.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton14.Caption
            
        ElseIf ToggleButton15.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton15.Caption
            
        ElseIf ToggleButton16.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton16.Caption
            
        ElseIf ToggleButton17.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton17.Caption
            
        ElseIf ToggleButton18.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton18.Caption
            
        ElseIf ToggleButton19.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton19.Caption
            
        ElseIf ToggleButton20.Value = True Then
        
            Sheets("REGISTRO TELEFONATE").Range("A" & ur).Value = ToggleButton20.Caption
            
        End If
    End With
    
    Unload Me
    
    End Sub






  • di Vecchio Frac data: 30/07/2015 21:49:45

    Ho la sensazione che si possa ottimizzare ^_^





  • di alexps81 data: 30/07/2015 23:02:07

    SPETTACOLARE. Funziona tutto. Grazie mille.



  • di Vecchio Frac data: 31/07/2015 09:25:35

    Sì, spettacolare, ma tutto l'ambaradan si può semplificare soprattutto se si spunta solo un checkbox alla volta (sono tutti mutuamente esclusivi? se no, togli l'Exit For).
     
       With Sheets("REGISTRO TELEFONATE")
          If TextBox1 <> "" Then
               .Range("A" & ur).Value = TextBox1
          Else
               For i = 1 To 20
                   If Controls("ToggleButton" & i).Value = True Then
                       .Range("A" & ur).Value = Controls("ToggleButton" & i).Caption
                       Exit For
                   End If
               Next
          End If
       End With






  • di Luca73 data: 31/07/2015 10:02:55

    Ecco come fare!!!

    Coi controlli sono un po' indietro, non li uso quasi mai, e ieri non riuscivo a capire come venirne a capo pertanto avevo sforbiciato dove riuscivo ma mi mancava il Controls() per eliminare tutta la serie degli else if.
    Grazie VF