Risultati da 1 a 8 di 8

Discussione: funzione adesso in vba



  1. #1
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1167
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    570

    funzione adesso in vba

    Buongiorno a tutti nel file di esempio nella cella a1 inserisco un qualsiasi valore e dando invio dalla riga 3 della colonna c mi riporta data e ora ho assemblato due codici per ottenere questo risultato il problema è che quando cancello a1 mi registra un altra riga ....quindi vorrei sapere dove intervenire per avere la registrazione solo quando scrivo in a1 e non fare niente quando la cancello....grazie Danilo


    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)    
    
    
    
    If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
        On Error Resume Next
        Application.EnableEvents = False
        If Target <> "" Then
           End If
        Application.EnableEvents = True
        Sheets("Foglio1").Select
     Riga = 3 'si imposta il numero di una riga iniziale
     While Cells(Riga, 3) <> ""   'fino a che la cella, numero Riga, colonna 1 (la A) è diversa da vuota, quindi occupata
    Riga = Riga + 1    ' si incrementa di una unità il numero di Riga
     Wend                   'e si continua fino a che non si verifica una condizione diversa da vuota
     Cells(Riga, 3) = Now
    End Sub



    Codice: 
    Sub Macro1()'
    ' Macro1 Macro
    '
    
    
    '
        Range("A1").Select
        Selection.ClearContents
    End Sub
    File Allegati File Allegati
    Ultima modifica fatta da:Gerardo Zuccalà; 25/05/16 alle 11:27 Motivo: mancava codice

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: funzione adesso in vba

    Ciao Danilo,

    ho eliminato alcune cose che non servivano (potresti accorciare ulteriormente trovando subito l'ultima riga in colonna C):

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    
    If Not Intersect(Target, Range("A1")) Is Nothing And Target <> "" Then
        Riga = 3 'si imposta il numero di una riga iniziale
        While Cells(Riga, 3) <> ""   'fino a che la cella, numero Riga, colonna 1 (la A) è diversa da vuota, quindi occupata
            Riga = Riga + 1    ' si incrementa di una unità il numero di Riga
        Wend                   'e si continua fino a che non si verifica una condizione diversa da vuota
        Cells(Riga, 3) = Now
    End If
    
    
    End Sub

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. #3

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: funzione adesso in vba

    [EDIT]

    Ti conviene aggiungere questa riga (in rosso):

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("A1")) Is Nothing And Target <> "" Then
        Riga = 3 'si imposta il numero di una riga iniziale
        While Cells(Riga, 3) <> ""   'fino a che la cella, numero Riga, colonna 1 (la A) è diversa da vuota, quindi occupata
            Riga = Riga + 1    ' si incrementa di una unità il numero di Riga
        Wend                   'e si continua fino a che non si verifica una condizione diversa da vuota
        Cells(Riga, 3) = Now
    End If
    
    
    End Sub
    Perchè se dovessi selezionare più celle per poi cancellarle, ti andrebbe in debug.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  4. #4
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1167
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    570

    Re: funzione adesso in vba

    Grazie è come doveva essere....io avevo la parte di codice per l 'inserimento dell' orario poi ho pensato a wile e whend (che mi ha spiegato molto bene Ges) me le commenti le due righe di codice?....comunque grazie ancora

  5. #5

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: funzione adesso in vba

    Citazione Originariamente Scritto da Danilo Fiorini Visualizza Messaggio
    Grazie è come doveva essere....io avevo la parte di codice per l 'inserimento dell' orario poi ho pensato a wile e whend (che mi ha spiegato molto bene Ges) me le commenti le due righe di codice?....comunque grazie ancora
    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    
    If Target.Count > 1 Then Exit Sub   'se il Target comprende più di una cella esci dalla sub
    
    'se il cambiamento avviene nella cella A1 e se dopo il cambiamento
    'la cella A1 è diversa da "cella vuota", allora prosegui all'interno dell'IF
    If Not Intersect(Target, Range("A1")) Is Nothing And Target <> "" Then
        Riga = 3 'si imposta il numero di una riga iniziale
        While Cells(Riga, 3) <> ""   'fino a che la cella, numero Riga, colonna 1 (la A) è diversa da vuota, quindi occupata
            Riga = Riga + 1    ' si incrementa di una unità il numero di Riga
        Wend                   'e si continua fino a che non si verifica una condizione diversa da vuota
        Cells(Riga, 3) = Now
    End If
    
    
    End Sub

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  6. #6
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1167
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    570

    Re: funzione adesso in vba

    grazie per continua disponibilità....siete sempre fantastici Danilo

  7. #7
    L'avatar di D@nilo
    Clicca e Apri
    Data Registrazione
    Jan 2016
    Località
    Roma
    Età
    45
    Messaggi
    1167
    Versione Office
    Excel 2010
    Likes ricevuti
    509
    Likes dati
    570

    Re: funzione adesso in vba

    Torno un attimo sulla questione.....tutto funziona bene ma se proteggo le colonne dove vanno i risultati della sub mi da errore ho inserito unprotect e protect ma forse li ho messi male nel codice?...la riga gialla è sbloccata per consentire all'operatore di inserire i dati ma volevo proteggere le colonne dove ho i risultati...dove sbaglio? la pass è 123
    File Allegati File Allegati

  8. #8

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    4016
    Versione Office
    2013
    Likes ricevuti
    1225
    Likes dati
    923

    Re: funzione adesso in vba

    Citazione Originariamente Scritto da Danilo Fiorini Visualizza Messaggio
    Torno un attimo sulla questione.....tutto funziona bene ma se proteggo le colonne dove vanno i risultati della sub mi da errore ho inserito unprotect e protect ma forse li ho messi male nel codice?...la riga gialla è sbloccata per consentire all'operatore di inserire i dati ma volevo proteggere le colonne dove ho i risultati...dove sbaglio? la pass è 123
    Ciao Danilo,
    premetto che a me non da nessun errore, comunque la rimozione della protezione sarebbe meglio metterla dopo le condizioni degli if sono state verificate:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
    
    
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("G3")) Is Nothing And Target <> "" Then
        ActiveSheet.Unprotect "123"
        Riga = 2 'si imposta il numero di una riga iniziale
        While Cells(Riga, 8) <> ""   'fino a che la cella, numero Riga, colonna 1 (la A) è diversa da vuota, quindi occupata
            Riga = Riga + 1    ' si incrementa di una unità il numero di Riga
        Wend                   'e si continua fino a che non si verifica una condizione diversa da vuota
        Cells(Riga, 8) = Now
        Cells(Riga, 9) = Range("F4")
    End If
    ActiveSheet.Protect "123"
    End Sub
    P.S.
    Questo problema è differente rispetto al titolo della discussione, quindi dovresti aprire una nuova discussione per non creare confusione.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

Discussioni Simili

  1. Funzione indice/confronta all'interno della Funzione "O" ed "E"
    Di Rosaria79 nel forum Domande su Excel in generale
    Risposte: 6
    Ultimo Messaggio: 28/06/16, 20:57
  2. Funzione ADESSO () statica
    Di Gioly nel forum Domande su Excel in generale
    Risposte: 14
    Ultimo Messaggio: 04/05/16, 10:21
  3. formattazione condizionale "adesso"
    Di Diego nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 17/02/16, 19:11

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •