You are here:--[RISOLTO] Sostituire caratteri speciali
[RISOLTO] Sostituire caratteri speciali 2018-12-10T18:37:25+00:00

Home Forum Domande su Excel VBA e MACRO [RISOLTO] Sostituire caratteri speciali

  • Autore
    Articoli
  • rexottantotto
    Partecipante
      Post totali: 130
      #7537 |

      Ciao,
      nelle Celle A1:A150 del Foglio1 ho alcuni dati con questi caratteri:
      À, È, Ì, Ò, Ù, &, ’, °
      Come posso fare con vba per sostituire:
      À, È, Ì, Ò, Ù, &
      con
      à, è, ì, ò, ù, e
      ed eliminare l’apostrofo ’ e il carattere °

      Grazie

      • Questo argomento è stato modificato 10 ore, 2 minuti fa da sid sid.
    • rexottantotto
      Partecipante
        Post totali: 130

        Volevo precisare.

        I caratteri speciali si trovano in alcune celle del Range A1:A150 del Foglio1.

      • sidsid
        Moderatore
          Post totali: 502

          Puoi postare un file di prova? grazie

        • rexottantotto
          Partecipante
            Post totali: 130

            Ho fatto un esempio con poche celle.

            Gli spazi stanno a significare che le celle che contengono le stringhe con caratteri speciali non è detto che devono essere una dopo l’altra.

            http://www.filedropper.com/caratterispeciali

          • rexottantotto
            Partecipante
              Post totali: 130

              Mi ero dimenticato un altro carattere che va sostituito:

              la virgola con il punto.

              Esempio:

              Cella A37

              1200,48

              la virgola va sostituita con il punto, per cui diventa

              1200.48

            • sidsid
              Moderatore
                Post totali: 502

                ed eliminare l’apostrofo ’ e il carattere °

                L’aiuola diventa Laiuola o L aiuola?

              • rexottantotto
                Partecipante
                  Post totali: 130

                  Laiuola

                • sidsid
                  Moderatore
                    Post totali: 502

                    Questa macro è adattata al file di prova che hai mandato.
                    Inserisce le stringhe modificate nella colonna B.
                    Se va bene possiamo adattarlo al file originale.

                    Sub prova()
                    
                    Dim vAccento As Variant, vNoAccento As Variant
                    Dim rng As Range, cl As Range
                    Dim j As Long
                    
                    vAccento = Array("à", "á", "è", "é", "ì", "í", "ò", "ó", "ù", "ú", _
                                "À", "Á", "È", "É", "Ì", "Í", "Ò", "Ó", "Ù", "Ú", "&", "°", "'", ",")
                    vNoAccento = Array("a", "a", "e", "e", "i", "i", "o", "o", "u", "u", _
                                "A", "A", "E", "E", "I", "I", "O", "O", "U", "U", "e", "", "", ".")
                    
                    Set rng = Sheets("Foglio1").Range("A1:A35") 'nome tuo foglio
                    
                    For Each cl In rng
                        For j = LBound(vAccento) To UBound(vAccento)
                            If InStr(1, cl.Value, vAccento(j), vbBinaryCompare) > 0 Then
                                cl.Offset(0, 1).Value = Application.WorksheetFunction.Substitute(cl.Value, vAccento(j), vNoAccento(j))
                            End If
                        Next j
                    Next cl
                    Set rng = Nothing
                    End Sub

                    fa sapere, ciao.

                  • rexottantotto
                    Partecipante
                      Post totali: 130

                      Funziona tutto.

                      In un messaggio precedente avevo anche aggiunto un altro dato nell’esempio:

                      Nella Cella A37 ho questo importo 1200,48

                      La macro dovrebbe sostituire con il punto, per cui diventa

                      1200.48

                      Si potrebbe aggiungere alla macro?

                      Grazie

                    • rexottantotto
                      Partecipante
                        Post totali: 130

                        Mi correggo.

                        Ho visto che nella macro il range era

                        A1:A35

                        l’ho modificato in

                        A1:A37

                        soltanto che nella cella B37 riporta lo stesso importo:

                        1220,48

                      • rexottantotto
                        Partecipante
                          Post totali: 130

                          Ho corretto il formato della Cella A37 da “Generale” a “Testo”.

                          Ho richiamato la macro e adesso funziona.

                          Si può mettere

                          RISOLTO

                          Grazie

                        La discussione ‘[RISOLTO] Sostituire caratteri speciali’ è chiusa a nuove risposte.

                        Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. maggiori informazioni

                        Questo sito utilizza i cookie per fornire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o cliccando su "Accetta" permetti il loro utilizzo.

                        Chiudi