testo barrato



  • testo barrato
    di Jolly (utente non iscritto) data: 18/02/2015 19:23:24

    Ciao a tutti,
    ho un file excel molto grande e pieno di testo nelle varie caselle.. in diverse celle ho del testo barrato che vorrei eliminare. Avete qualche idea di come fare una macro per velocizzare?

    Grazie mille a tutti ragazzi!!



  • di Santuberto (utente non iscritto) data: 18/02/2015 19:30:07

    Buonasera. Non basta intervenire sul formato cella?



  • di Lisa B. data: 18/02/2015 19:34:03

    Esatto... Selezioni tutte le celle e togli il barrato



  • di jolly (utente non iscritto) data: 18/02/2015 19:40:40

    :) ottima osservazione! Ma dovrei eliminare il testo barrato! Non il barrato dal testo :)!



  • di Vecchio Frac data: 18/02/2015 20:40:24

    Propongo una soluzione strampalata che si appoggia a Word :o)
    Occorre pre-selezionare il range di Excel che si vuole scandagliare e lanciare la macro (da inserire in un modulo).
    Vengono eliminati dalla selezione tutti i caratteri barrati e viene lasciato il resto.
     
    Option Explicit
    
    Sub clean_strikeout_text()
    Dim word_app As Object, word_doc As Object, rng As Range
    
        Set rng = Selection
    
        Set word_app = CreateObject("Word.Application")
        Set word_doc = word_app.Documents.Add
        
        rng.Copy
        word_doc.Range.Paste
        word_doc.Bookmarks("StartOfDoc").Select
        
        With word_doc.Range.Find
            .ClearFormatting
            .Font.Strikethrough = True
            .Font.DoubleStrikeThrough = False
            .Replacement.ClearFormatting
            .Text = ""
            .Replacement.Text = ""
            .Forward = True
            .Wrap = 1   ' <<< wdFindContinue
            .Format = True
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
            .Execute Replace:=2     ' <<< wdReplaceAll
        End With
            
        word_doc.Content.Select
        word_app.Selection.MoveLeft Extend:=True
        word_app.Selection.Copy
        rng.Cells(1, 1).Select
        ActiveSheet.Paste
        
        word_doc.Close False
        word_app.Quit
        Set word_app = Nothing
        
        MsgBox "Finito"
    
    End Sub






  • di Jolly (utente non iscritto) data: 19/02/2015 00:26:28

    Ehehehe.. Come sempre il buon Vecchio Frac trova la soluzione perfetta!! Sei un grande.. grazie mille! :)