Inserire campi in una riga



  • Inserire campi in una riga
    di Luca (utente non iscritto) data: 06/12/2012 16:30:07

    Salve,
    ho questo problema, vorrei che digitando sulla colonna C un testo,
    nella stessa riga ,in automatico , nella colonna A vorrei la data e nella colonna
    B l'ora, così :

    COLONNA A // COLONNA B // COLONNA C
    1 Apr 10 /// 4.46 // bla bla bla
    2 Apr 10 /// 6.52 // bla bla bla

    Utlizzando la macro in calce quando scrivo nella colonna C, la
    colonna A e B vengono visualizzate una riga più sotto rispetto la C,
    tipo così:

    // bla bla bla
    2 Apr 10 /// 6.52 // bla bla bla


    Ringrazio per la cortese soluzione .
    Luca
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rr As Long, r As Long, c As Long
    r = ActiveCell.Row
    c = ActiveCell.Column
    rr = Cells(Rows.Count, 3).End(xlUp).Row
    Application.EnableEvents = False
    If Not Intersect(Target, Range("C1:C" & rr)) Is Nothing
    Then Cells(r, 1) = Date: Cells(r, 2) = Now()
    Application.EnableEvents = True
    End Sub
    



  • di Vecchio Frac data: 06/12/2012 16:56:04

    If Not Intersect(Target, Range("C1:C" & rr)) Is Nothing Then Cells(Target.Row, 1) = Date: Cells(Target.Row, 2) = Now()


    Però io rivedrei un pochino il codice :)





  • di HarryBosch data: 06/12/2012 16:58:42

    Se utilizzi il Target, sfruttalo fino in fondo: quell'active.cell è da togliere subito; se premi invio ti trovi già fuori dal target interessato.
    Vedi sotto
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim rr As Long
        Application.EnableEvents = False
        rr = Cells(Rows.Count, 3).End(xlUp).Row
        If Not Intersect(Target, Range("C4:C" & rr)) Is Nothing Then
            Cells(Target.Row, 1) = Date
            Cells(Target.Row, 2) = Now()
        End If
        Application.EnableEvents = True
    End Sub
    



  • di HarryBosch data: 06/12/2012 16:59:48

    Ecco! Vecchio Frac mi ha fregato ancora sul tempo! ^_^



  • di Luca (utente non iscritto) data: 06/12/2012 17:24:11

    Molte grazie!!!!!!!!!!!!!!!!!!!!!



  • di Vecchio Frac data: 06/12/2012 21:44:16

    Sintetizziamo... e precisiamo che l'intercettazione della modifica deve avvenire da C4 in giù altrimenti il risultato può essere bizzarro ^_^
     
    Private Sub Worksheet_Change(ByVal Target As Range)
        Application.EnableEvents = False
        If Not Intersect(Target, Range("C4:C" & Target.Row)) Is Nothing Then Cells(Target.Row, 1) = Date: Cells(Target.Row, 2) = Now()
        Application.EnableEvents = True
    End Sub






  • di HarryBosch data: 06/12/2012 23:19:43

    E' vero! Si può sfruttare il target anche come riferimento per la colonna stessa!
    Non ci avevo mai pensato... grande VecchioFrac, qua si aggiunge sempre qualche tassello alle proprie conoscenze ^_^