Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 30 di 45

Discussione: modifica macro evidenziare numieri ripetuti



  1. #1
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1

    modifica macro evidenziare numieri ripetuti

    Ciao.
    Girando in rete ho trovato questa macro che evidenzia numeri ripetuti

    Codice: 
    
    Sub colora_duplicate()
    
        Dim t As Single
        
        t = Timer
        Dim q&, X&, i&, a
        Dim ash As Worksheet
        Set ash = ActiveSheet
        q = Range("A" & Rows.Count).End(3).row - 3
        a = Range("A2").Resize(q)
        
        Application.ScreenUpdating = False
        
        'ActiveSheet.Unprotect "123456"
        
        With Sheets.Add
            .Cells(1).Resize(q) = a
            .Cells(2) = 1: .Cells(2).Resize(q).DataSeries
            .Cells(1).Resize(q, 2).Sort .Cells(1), 1, Header:=xlNo
                 a = .Cells(1).Resize(q + 1)
                              
            For i = 1 To q
                If a(i, 1) <> a(i + 1, 1) Then
                    If i > X + 1 Then _
                        .Cells(X + 2, 1).Resize(i - X - 1).Font.ColorIndex = 3
                    X = i
                End If
            Next i
            
            .Cells(1).Resize(q, 2).Sort .Cells(2), 1, Header:=xlNo
            .Cells(1).Resize(q).Copy ash.Range("A2")
            
        Application.DisplayAlerts = False
            .Delete
        Application.DisplayAlerts = True
        
        End With
        
        ActiveSheet.Unprotect "123456"
           
        'Application.ScreenUpdating = True
        
        'MsgBox "Code took " & Format(Timer - t, "0.00 secs")
        MsgBox "controllato in " & Format(Timer - t, "0.00 secs"), 0, "Avviso"
    
        End Sub
    Colora i numeri ripetuti di rosso.
    E' possibile aggiungere oltre al messaggio "controllato in...." aggiungere un ulteriore msgbox per quanti numeri ripetuti sono stati trovati?
    Non so se sbaglio ma ogni tanto si creare un nuovo con inseriti i numeri - codici duplicati. E' possibile togliere questo?
    Un saluto e grazie in anticipo.
    max
    Invia MPPM 

  2. #2
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Sei diventato troppo esigente :167::167::167:
    Comunque fai così (aggiungi quanto evidenziato in rosso)
    in questa riga
    Codice: 
    Dim q&, X&, i&, a, d, h
    
    in questo ciclo
    Codice: 
            For i = 1 To q
                If a(i, 1) <> a(i + 1, 1) Then
                    If i > X + 1 Then _
                        .Cells(X + 2, 1).Resize(i - X - 1).Font.ColorIndex = 3 : d=d+1
                    X = i
                End If
            Next i
    Alla fine, devi aggiungere queste righe prima di Application ecc.
    Codice: 
        For i = 1 To q
            If Cells(i, 1).Font.ColorIndex = 3 Then h = h + 1
        Next i
    sostituisci il messaggio con questo
    Codice: 
    MsgBox "controllato in " & Format(Timer - t, "0.00 secs") & vbLf & _
            "trovati n. " & d & " dati" & vbLf & "ripetuti in totale per " & h & " volte su " & i, 0, "Avviso"
    La macro che "hai trovato in rete" .... (tu o chi per te ... ) così come l'hai postata non funziona. Devi togliere l'apice davanti alla riga 'Application.ScreenUpdating = True

    Prova e fai sapere.
    Ciao,
    Mario
    Invia MPPM 

  3. #3
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Ciao mario,
    la modifica funziona.
    Ho tolto l'apice a 'Application.ScreenUpdating = True
    Ho provato a mettere l'apice a
    'Application.ScreenUpdating = false e ho visto che la macro crea un foglio che poi toglie con tutti i dati dei numeri ripetuti.
    Questo non l'avevo notato.
    Ma non è una buona macro? Ne ho trovate tante per numeri ripetuti ma tutte troppe lunghe come tempo.
    Grazie,
    max
    Invia MPPM 

  4. #4
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Max;
    perdonami, ma la Funzione:
    - Formattazione condizionale
    non ti propone lo stesso risultato senza ricorrere a VBA?

    È pur vero che per il conteggio dovresti utilizzare VBA ma, i Valori duplicati verrebbero evidenziati correttamente.



    A disposizione.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013
    Invia MPPM 

  5. #5
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Ciao giuseppe.
    Ho provato la formattazione ma con più di 30000 righe il foglio diventa lentissimo.
    max
    Invia MPPM 

  6. #6
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160
    Buona giornata, Max;

    @ max62, scrive:
    Ciao giuseppe.
    Ho provato la formattazione ma con più di 30000 righe il foglio diventa lentissimo.
    Assolutamente vero.


    A disposizione.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013
    Invia MPPM 

  7. #7
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Scusate, una domanda per gli esperti.
    La macro che ho postato è una buona macro?
    max
    Invia MPPM 

  8. #8
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    Citazione Originariamente Scritto da max62 Visualizza Messaggio
    La macro che ho postato è una buona macro?
    In verità ti dico che è molto veloce. L'ho testata su 60.000 righe e gira in poco più di mezzo secondo. Però devo dirti che non mi piace molto perchè è troppo articolata. Viene creato un foglio di appoggio, procede con un ordinamento iniziale dei valori, poi alla fine della procedura riordina i valori tornando alla disposizione originale, copia ed incolla i risultati nel foglio di partenza e poi distrugge il foglio creato. Insomma mi pare un pò eccessivo. Personalmente preferisco le cose più semplici. Anche a discapito della velocità se si tratta solo di un paio di secondi ovviamente...
    Ho sviluppato questa routine che raggiunge lo stesso obiettivo in poco più di 2 secondi sempre su 60.000 righe. Alla fine mi pare un buon compromesso. La propongo giusto per stimolo a chi volesse ulteriormente migliorarne l'efficienza e le performance.
    Codice: 
    Sub ColoraDups()
    Dim Cll As New Collection
    Dim r
    Dim Lr As Long
    Dim i As Long
    Dim start As Double
    start = Timer
    Lr = Range("a" & Rows.Count).End(xlUp).Row
    Range("a1:a" & Lr).Font.ColorIndex = xlAutomatic
    r = Range("a1:A" & Lr)
        For i = 1 To Lr
            On Error Resume Next
                Cll.Add r(i, 1), Key:=CStr(r(i, 1))
                If Err.Number <> 0 Then Cells(i, 1).Font.ColorIndex = 3
            On Error GoTo 0
        Next
    MsgBox Timer - start
    Set Cll = Nothing
    Erase r
    End Sub
    Invia MPPM 

  9. I seguenti 6 utenti hanno dato un "Like" a Textomb per questo post:


  10. #9
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Ciao textomb.
    Velocissima anche la tua macro.
    E' possibile aggiungere 3 ulteriori msgbox?
    1 quanti sono i numeri totali
    2 quanti sono i numeri rupetuti
    3 quanti sono i numeri non ripetuti.
    Un saluto e grazie
    Invia MPPM 

  11. #10

    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
    Citazione Originariamente Scritto da max62 Visualizza Messaggio
    Ciao textomb.
    Velocissima anche la tua macro.
    E' possibile aggiungere 3 ulteriori msgbox?
    1 quanti sono i numeri totali
    2 quanti sono i numeri rupetuti
    3 quanti sono i numeri non ripetuti.
    Un saluto e grazie
    Prima di tutto... complimenti a Textomb,
    Codice semplice ed efficace :246:

    Se i numeri sono uno di seguito all'altro (senza righe vuote) ed iniziano dalla cella A1, il totale dei numeri sarà uguale al numero di righe (quindi alla variabile "Lr"), mentre i numeri "Doppi" saranno uguali al doppio degli "errori" riscontrati. I numeri univoci saranno di conseguenza la differenza dei due numeri ottenuti prima:

    Codice: 
    Sub ColoraDups()
    Dim Cll As New Collection
    Dim r
    Dim Lr As Long
    Dim i As Long
    Dim start As Double
    Dim Doppi As Long
    start = Timer
    Doppi = 0
    Lr = Range("a" & Rows.Count).End(xlUp).Row
    Range("a1:a" & Lr).Font.ColorIndex = xlAutomatic
    r = Range("a1:A" & Lr)
        For i = 1 To Lr
            On Error Resume Next
                Cll.Add r(i, 1), Key:=CStr(r(i, 1))
                If Err.Number <> 0 Then
                    Cells(i, 1).Font.ColorIndex = 3
                    Doppi = Doppi + 1
                End If
            On Error GoTo 0
        Next
    Doppi = Doppi * 2
    MsgBox Timer - start
    MsgBox "Numeri Totali =  " & Lr
    MsgBox "Numeri Doppi =  " & Doppi
    MsgBox "Numeri Univoci =  " & Lr - Doppi
    Set Cll = Nothing
    Erase r
    End Sub

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

  12. #11
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Ciao cromagno,
    grazie del tuo intervento ma i numeri nei nuovi msgbox sono errati.
    max
    Invia MPPM 

  13. #12
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    ciao Tore.
    ho visto l'integrazione che hai scritto per l'amico Max. Grazie.:285:
    Non sono però molto convinto che i numeri ripetuti siano il doppio della variabile "Doppi".:92:
    Invia MPPM 

  14. #13
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    In questo:
    MsgBox "Numeri Totali = " & Lr '???
    risultano tutte le celle con formule.
    Nel caso che ho provato sono 34000, invece le righe con dati visibili risultano 31045 e dovrebbe uscire questo dato nel msgbox
    Questo risulta esatto:
    MsgBox "Numeri Univoci = " & Lr - Doppi 'okk
    max
    Invia MPPM 

  15. #14

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    Citazione Originariamente Scritto da Textomb Visualizza Messaggio
    Ho sviluppato questa routine che raggiunge lo stesso obiettivo in poco più di 2 secondi sempre su 60.000 righe. Alla fine mi pare un buon compromesso. La propongo giusto per stimolo a chi volesse ulteriormente migliorarne l'efficienza e le performance.
    Qualche decimo di secondo si può limare:
    Codice: 
    Sub ColoraDups()
      Dim Cll As New Collection
      Dim rng As Range
      Dim rVal As Variant
      Dim Lr As Long
      Dim i As Long
      Dim start As Single
      
      Application.ScreenUpdating = False
      start = Timer
      Lr = Range("a" & Rows.Count).End(xlUp).Row
      Set rng = Range("a1:A" & Lr)
      rng.Font.ColorIndex = xlAutomatic
      rVal = rng
      On Error Resume Next
      For i = 1 To UBound(rVal)
        Cll.Add rVal(i, 1), Key:=CStr(rVal(i, 1))
        If Err.Number <> 0 Then
          rng.Cells(i, 1).Font.ColorIndex = 3
          Err.Clear
        End If
      Next
      Application.ScreenUpdating = True
      MsgBox Timer - start & " secondi"
      Set Cll = Nothing
      Set rng = Nothing
      Erase rVal
    End Sub
    Ovviamente le performance dipendono dal numero di errori sollevati (valori duplicati): se con 60.0000 di valori singoli impiega 1 secondo, con 60.000 righe con 59.000 valori duplicati ne impegherà 4 (sono valori ipotetici).

    Citazione Originariamente Scritto da max62
    E' possibile aggiungere 3 ulteriori msgbox?
    1 quanti sono i numeri totali
    2 quanti sono i numeri rupetuti
    3 quanti sono i numeri non ripetuti.
    Scusa, non so di quanti valori (univoci) stiamo parlando, ma una bella pivot che ti fornisce il quadro completo della situazione non sarebbe meglio, anziche tanti messagbox?
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
    Invia MPPM 

  16. I seguenti 2 utenti hanno dato un "Like" a scossa per questo post:


  17. #15

    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
    Citazione Originariamente Scritto da max62 Visualizza Messaggio
    In questo:
    MsgBox "Numeri Totali = " & Lr '???
    risultano tutte le celle con formule.
    Nel caso che ho provato sono 34000, invece le righe con dati visibili risultano 31045 e dovrebbe uscire questo dato nel msgbox
    Questo risulta esatto:
    MsgBox "Numeri Univoci = " & Lr - Doppi 'okk
    max
    Beh si,
    ho specificato in che condizioni è valido il codice che ti ho scritto (dovresti allegare il tuo file per capire come sono disposti i dati e quindi adeguare il codice).

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

  18. #16
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    @scossa
    Premesso che mi pare più giusto come hai sistemato il gestore dell'errore. Giusto per pignoleria, ho fatto una prova a parità di dataset (60.000 valori) e ho riscontrato che girano entrambi nello stesso tempo.
    La mia finisce in 2,07 secondi, la tua in 2,05 secondi. Sinceramente mi aspettavo un risultato migliore...
    Invia MPPM 

  19. #17

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    Citazione Originariamente Scritto da Textomb Visualizza Messaggio
    @scossa
    Premesso che mi pare più giusto come hai sistemato il gestore dell'errore. Giusto per pignoleria, ho fatto una prova a parità di dataset (60.000 valori) e ho riscontrato che girano entrambi nello stesso tempo.
    La mia finisce in 2,07 secondi, la tua in 2,05 secondi. Sinceramente mi aspettavo un risultato migliore...
    Sinceramente anch'io, soprattutto mi aspettavo un maggiore miglioramento utilizzando ScreenUpadating; devo provarlo in Excel 2003, forse in Excel 2010 hanno migliorato la gestione dello screen updating ...
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
    Invia MPPM 

  20. #18

    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
    Citazione Originariamente Scritto da Textomb Visualizza Messaggio
    ciao Tore.
    ho visto l'integrazione che hai scritto per l'amico Max. Grazie.:285:
    Non sono però molto convinto che i numeri ripetuti siano il doppio della variabile "Doppi".:92:
    In effetti non hai tutti i torti....
    Io ho considerato che un numero possa ripetersi una sola volta, se al contrario ci possono essere più ripetizioni allora il "moltiplicatore x 2" non è più valido.

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

  21. #19
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    73
    Messaggi
    3208
    Versione Office
    Excel2010
    Likes ricevuti
    625
    Likes dati
    155
    Buona serata a tutti
    Mi sono permesso apportare una piccola variante alla macro postata da scossa (è senza dubbio la più veloce) per avere in un colpo solo il tempo impiegato, le righe scansionate, le righe vuote, il numero dei valori duplicati e il numero dei valori univoci.
    Codice: 
    Sub ColoraDups()    'di scossa
      Dim Cll As New Collection
      Dim rng As Range
      Dim rVal As Variant
      Dim Lr As Long, d As Long, e As Long, h As Long
      Dim i As Long
      Dim start As Single
      Cells(5, 11) = Now
      Application.ScreenUpdating = False
      start = Timer
      Lr = Range("a" & Rows.Count).End(xlUp).Row
      Set rng = Range("a1:A" & Lr)
      rng.Font.ColorIndex = xlAutomatic
      rVal = rng: d = 0
      On Error Resume Next
      For i = 1 To UBound(rVal)
        If Cells(i, 1) <> "" Then h = h + 1 Else d = d + 1
        Cll.Add rVal(i, 1), Key:=CStr(rVal(i, 1))
        If Err.Number <> 0 Then
          rng.Cells(i, 1).Font.ColorIndex = 3
          Err.Clear
        ElseIf Err.Number = 0 Then
          e = e + 1: Err.Clear
        End If
      Next
      Application.ScreenUpdating = True
      Cells(5, 12) = Now
      
      MsgBox "Tempo impiegato:   " & Timer - start & " secondi" & vbLf & _
        "Righe scansionate:   " & i - 1 & vbLf & _
        "Righe vuote:              " & d & vbLf & _
        "Valori duplicati:         " & h - e - 1 & vbLf & _
        "Valori univoci:           " & e - 1
            
      Set Cll = Nothing
      Set rng = Nothing
      Erase rVal
     
    End Sub
    Ciao a tutti,
    Mario

    PS: chiedo scusa a scossa per aver "imbarbarito" il suo codice.
    Invia MPPM 

  22. I seguenti utenti hanno dato un "Like"


  23. #20
    L'avatar di rollis13
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Cordenons
    Messaggi
    812
    Versione Office
    2016 64bit
    Likes ricevuti
    147
    Likes dati
    53
    Invia MPPM 

  24. #21
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Ciao marius44.
    i numeri dei msgbox sono esatti.
    Grazie a tutti.

    Per rollis13:
    postato nell'altro forum il cross-post di questo tread

    saluti a tutti.
    Invia MPPM 

  25. #22
    L'avatar di Gianfranco55
    Clicca e Apri
    Data Registrazione
    Nov 2015
    Località
    Vicenza
    Età
    62
    Messaggi
    2071
    Versione Office
    2016
    Likes ricevuti
    552
    Likes dati
    117
    Ciao Max e Marius
    sicuri che i numeri sono esatti?
    a me è venuto il dubbio su quei -1
    MsgBox "Tempo impiegato: " & Timer - start & " secondi" & vbLf & _
    "Righe scansionate: " & i - 1 & vbLf & _
    "Righe vuote: " & d & vbLf & _
    "Valori duplicati: " & h - e - 1 &vbLf & _
    "Valori univoci: " & e - 1
    ho creato un mini file di 25 righe con due pulsanti
    uno con -1 e uno senza
    i risultati sono diversi qual è quello che considerate giusto

    grazie
    File Allegati File Allegati
    Invia MPPM 

  26. #23
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Ciao dovrebbe essere esatto così:

    MsgBox "Tempo impiegato: " & Timer - start & " secondi" & vbLf & _
    "Righe scansionate:" & (i - 1) & vbLf _
    & "Righe non vuote:" & (((i - 1) - d)) & vbLf _
    & "Righe vuote:" & (d) & vbLf _
    & "Valori duplicati:" & (((i - 1) - d) - (e - 1)) & vbLf _
    & "Valori univoci:" & (e - 1)

    max
    Invia MPPM 

  27. #24

    L'avatar di scossa
    Clicca e Apri
    Data Registrazione
    Jul 2015
    Località
    Verona Provincia
    Età
    57
    Messaggi
    1015
    Versione Office
    .
    Likes ricevuti
    366
    Likes dati
    0
    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Codice: 
    
        If Err.Number <> 0 Then
          rng.Cells(i, 1).Font.ColorIndex = 3
          Err.Clear
        ElseIf Err.Number = 0 Then
          e = e + 1: Err.Clear
        End If
    Se la condizione dell'If (Err.Number <> 0) è falsa, la condizione dell'ElseIf è per forza vera e quindi del tutto inutile, meglio usare il semplice Else.

    P.S.: trovo, opinione personale, pessima la scelta di scrivere due istruzioni su una sola riga (usando il due punti).
    Bye!
    scossa
    scossa's web site
    ___
    Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
    Invia MPPM 

  28. #25
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Citazione Originariamente Scritto da rollis13 Visualizza Messaggio
    Grazie Rollis
    Invia MPPM 

  29. #26
    L'avatar di Gerardo Zuccalà
    Clicca e Apri
    Data Registrazione
    May 2015
    Località
    Milano, Italy
    Età
    49
    Messaggi
    4916
    Versione Office
    2013
    Likes ricevuti
    1117
    Likes dati
    1126
    Buona sera Max62
    In questo forum il croosposting è vietato se non vuoi incorrere in altri avvertimenti leggiti bene tutto il regolamento

    Regola nr.3 "Crossposting" la stessa domanda vietata su più forum
    Non è consentito postare lo stesso messaggio o parti di esso in più aree del forum o su altri forum di excel, salvo casi di particolare interesse che dovranno comunque essere autorizzati da un Admin
    Messaggi crossposting verranno chiusi e quando possibile riuniti.
    Se ripetuti potranno portare all'allontanamento dell'utente.
    Invia MPPM 

  30. #27
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Buon giorno Gerardo.
    Mi scuso per il croosposting, proprio non ci avevo pensato.
    max
    Invia MPPM 

  31. #28
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Per textomb.
    Ho provato a modificare la tua macro.
    Dovrei partire dalla riga 2 e ho cambiato qui:

    Lr = Range("A" & Rows.Count).End(xlUp).Row
    Set rng = Range("A2:A" & Lr)
    rng.Font.ColorIndex = xlAutomatic
    rVal = rng: d = 0
    On Error Resume Next
    For i = 1 To UBound(rVal)
    If Cells(i, 1) <> "" Then h = h + 1 Else d = d + 1
    Cll.Add rVal(i, 1), Key:=CStr(rVal(i, 1))
    If Err.Number <> 0 Then
    rng.Cells(i, 1).Font.ColorIndex = 3
    Err.Clear
    ElseIf Err.Number = 0 Then
    e = e + 1: Err.Clear
    End If
    Next

    ma non calcola più esattamente, dove sbaglio?
    Grazie,
    max
    Invia MPPM 

  32. #29
    L'avatar di Textomb
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    47
    Messaggi
    171
    Versione Office
    Excel 2016
    Likes ricevuti
    93
    Likes dati
    11
    max62. Per il futuro... Non rivolgerti solo a me.
    Nel caso però:
    scrivi che non calcola più esattamente, ma non dici che errore riscontri...
    Invia MPPM 

  33. #30
    L'avatar di max62
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cittadella (padova)
    Età
    55
    Messaggi
    96
    Versione Office
    2003 / 2007
    Likes ricevuti
    1
    Ciao a tutti,
    ho provato a modificare la nuova macro spostando la partenza da A1 a A2 ma poi i numeri non coincidono.
    Allego un esempio con due fogli
    1 partenza da A1
    2 partenza da A2
    il primo foglio è esatto
    in secondo no, sono esatti i numeri con le celle in rosso.
    max
    File Allegati File Allegati
    Invia MPPM 

Discussioni Simili

  1. Modifica Macro VBA foglio pronosticiù
    Di giovannib nel forum Domande su Excel VBA e MACRO
    Risposte: 1
    Ultimo Messaggio: 19/09/16, 14:01
  2. Modifica codice evidenziare riga in un range.
    Di Berna11 nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 25/08/16, 23:52
  3. modifica macro
    Di D@nilo nel forum Domande su Excel VBA e MACRO
    Risposte: 8
    Ultimo Messaggio: 13/04/16, 22:06
  4. Modifica macro Sorteggio
    Di roky48 nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 31/10/15, 14:47
  5. Modifica macro
    Di nick0573 nel forum Domande su Excel VBA e MACRO
    Risposte: 3
    Ultimo Messaggio: 22/07/15, 13:10

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
  •