Risultati da 1 a 11 di 11

Discussione: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.



  1. #1
    L'avatar di domeniko666
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    trapani
    Età
    39
    Messaggi
    3
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Salve,
    dato un range di celle C3:I16 , vorrei che tramite istruzione VBA in selection change in un'altra cella es: C19 sia riportato il numero di volte che è stato riscontrato, per ogni cella del range, un commento da me scritto es: firmato.


    Ho provato con la seguente istruzione ma non va:

    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim myRange As Range, cell As Range
    Dim comment As comment
    Set myRange = [C3:I16]
    For Each cell In myRange
    If cell.comment.Text = ("firmato") Then
    Cells(19, 3).Value = Cells(19, 3).Value + 1
    End If
    Next
    End Sub
    potreste aiutarmi?

    Grazie e buona giornata.

  2. #2

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7121
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2060
    Likes dati
    1298

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Non entro ne merito di quello che vuoi fare nè tanto meno nel modo in cui hai scritto il codice mi limito a correggerlo.
    Prova così:
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
        Dim myRange As Object , cell As Range
        Cells(19, 3) = ""
        Set myRange = [C3:I16]
            For Each cell In myRange
                If cell = "firmato" Then
                    Cells(19, 3).Value = Cells(19, 3).Value + 1
                End If
            Next
    End Sub
    Per evitare che ogni volta che selezioni una cella si attivi l'evento potresti modificarlo così:

    Codice: 
    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim myRange As Object, cell As Range
        Cells(19, 3) = ""
        Set myRange = [C3:I16]
            If Not Intersect(Target, myRange) Is Nothing Then
            Application.EnableEvents = False
                    For Each cell In myRange
                        If cell = "firmato" Then
                            Cells(19, 3).Value = Cells(19, 3).Value + 1
                        End If
                    Next
            Application.EnableEvents = True
            End If
    End Sub
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  3. #3

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6761
    Versione Office
    2013
    Likes ricevuti
    714
    Likes dati
    164

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Scusa Ges ma per come ho capito non dovrebbe essere

    Codice: 
    If cell.Comment.Text = "firmato" Then
    ossia se la cella ha un commento con il testo "firmato" la conteggia.
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  4. #4

    L'avatar di ges
    Clicca e Apri
    Data Registrazione
    Jun 2015
    Località
    Como
    Età
    53
    Messaggi
    7121
    Versione Office
    2011MAC 2016WIN
    Likes ricevuti
    2060
    Likes dati
    1298

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Ciao Alfredo,
    rileggendo la richiesta mi sa che hai ragione ... avevo capito di contare che nel range myRange ci fosse scritta la parola "firmato"
    Sentiamo l'interessato
    Quando si scartano tutte le ipotesi possibili, quella che resta, anche se può sembrare improbabile, non può che essere quella giusta!

  5. #5
    L'avatar di domeniko666
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    trapani
    Età
    39
    Messaggi
    3
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    salve,
    lo so il codice che ho inserito fa piangere chiedo scusa ma sono alle prime armi, comunque il mio scopo e conoscere quante celle presenti nel range hanno come commento la parola firmato.
    grazie mille.

    Ho provato cosi:

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim myRange As Object, cell As Range
    Cells(19, 3) = ""
    Set myRange = [C3:I16]
    For Each cell In myRange
    If cell.Comment.Text = "firmato" Then
    Cells(19, 3).Value = Cells(19, 3).Value + 1
    End If
    Next
    End Sub


    ma mi da errore di run-time 91 variabile oggetto o variabile del blocco with non impostata

  6. #6
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3207
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Salve a tutti
    Forse, e ripeto forse, la macro che allego risolve il problema bypassando l'allerta.
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    Dim myRange, c
        Cells(19, 3) = ""
        Set myRange = [C3:I16]
        For Each c In myRange
            aa = c.Comment.Text
            If aa = "firmato" Then
                n = n + 1
                aa = ""
            End If
        Next
        Cells(19, 3) = n
    End Sub
    Il codice va in errore ma viene bypassato dall'istruzione On Error Resume Next e, comunque, mi conta le volte che incontra il commento designato.

    Prova e fai sapere. Ciao,
    Mario

  7. #7
    L'avatar di domeniko666
    Clicca e Apri
    Data Registrazione
    Sep 2016
    Località
    trapani
    Età
    39
    Messaggi
    3
    Versione Office
    excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Grazie Mario funziona alla grande.

  8. #8

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6761
    Versione Office
    2013
    Likes ricevuti
    714
    Likes dati
    164

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Salve a tutti
    Forse, e ripeto forse, la macro che allego risolve il problema bypassando l'allerta.
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    Dim myRange, c
        Cells(19, 3) = ""
        Set myRange = [C3:I16]
        For Each c In myRange
            aa = c.Comment.Text
            If aa = "firmato" Then
                n = n + 1
                aa = ""
            End If
        Next
        Cells(19, 3) = n
    End Sub
    Il codice va in errore ma viene bypassato dall'istruzione On Error Resume Next e, comunque, mi conta le volte che incontra il commento designato.

    Prova e fai sapere. Ciao,
    Mario
    Mario ma perchè il codice precedente andava in errore che tu hai superato con On Error Resume Next?
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  9. #9

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Salve a tutti
    Forse, e ripeto forse, la macro che allego risolve il problema bypassando l'allerta.
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    On Error Resume Next
    Dim myRange, c
        Cells(19, 3) = ""
        Set myRange = [C3:I16]
        For Each c In myRange
            aa = c.Comment.Text
            If aa = "firmato" Then
                n = n + 1
                aa = ""
            End If
        Next
        Cells(19, 3) = n
    End Sub
    Il codice va in errore ma viene bypassato dall'istruzione On Error Resume Next e, comunque, mi conta le volte che incontra il commento designato.

    Prova e fai sapere. Ciao,
    Mario
    un saluto a tutti, ciao Mario
    da errore in quanto l'oggetto (cella) non contiene commento.
    Prova così:
    Codice: 
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'On Error Resume Next
    Dim myRange, c As Range
    Dim myComment As Comment
    
    
    Cells(19, 3) = ""
    Set myRange = [C3:I16]
    For Each c In myRange
        Set myComment = c.Comment
        If Not myComment Is Nothing Then
            aa = c.Comment.Text
            If aa = "firmato" Then
                n = n + 1
                aa = ""
            End If
            Cells(19, 3) = n
        End If
    Next
    
    Set myRange = Nothing
    Set myComment = Nothing
    
    
    
    End Sub

  10. #10
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3207
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Salve a tutti

    @Rubik72
    Ottimo. Una cosa alla quale non avevo assolutamente pensato.

    @alfrimpa
    Avevo notato che, pur con l'allerta, contava ugualmente le celle con commento uguale a "firmato" e, quindi, non spigandomi il motivo dell'allerta, lo bypassavo con On Resume Next. Enzo ha capito e risolto il problema. Adesso la macro non dà alcun errore anche se incontra una cella senza commento.

    Ovvio l'invito a domeniko666 ad utilizzare questa e non la mia (anche se "sembrano" simili non lo sono).

    Ciao,
    Mario

  11. #11

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6761
    Versione Office
    2013
    Likes ricevuti
    714
    Likes dati
    164

    Re: Eseguire un istruzione tramite VBA in funzione al contenuto dei commenti delle celle di excel.

    Scusate ma non esiste una proprietà HasComment dell'oggetto Range True o False?

    Io immaginavo di si ma evidentemente non è così.
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

Discussioni Simili

  1. eseguire funzione excel su variabile vba
    Di mydjembe nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 18/03/17, 12:43
  2. Modifica commenti in excel
    Di DIEGO F. nel forum Domande su Excel in generale
    Risposte: 11
    Ultimo Messaggio: 19/02/17, 23:28
  3. Eseguire formule con test su formattazione celle
    Di MattiaLoca nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 20/01/17, 16:27
  4. [Risolto] Rilevare il contenuto delle sole caselle piene.
    Di giteti58 nel forum Domande su Excel in generale
    Risposte: 4
    Ultimo Messaggio: 08/11/16, 15:04
  5. Excel nascondere il valore delle celle senza eliminare
    Di Jiexa nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 08/08/16, 13:58

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
  •