Excel e gli applicativi Microsoft Office Trova e sostiuisci multiplo

Login Registrati
Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
  • Autore
    Articoli
  • #26812 Score: 0 | Risposta

    sklere
    Partecipante

      buon giorno a tutti,

      ho un piccolo problemino e spero possiate aiutarmi,

      quotidianamente ricevo una lista di nomi e cognomi che hanno all'interno dei caratteri speciali come per esempio "ò, ç".

      io devo esportare questa lista ma prima devo sostituire questi caratteri con quelli normali altrimenti dove la vado ad inserire mi da errore, esiste una maniera per fare trova e sostituisci tutti i caratteri prendendoli magari da una lista esterna preimpostata?

      ho letto una vecchia discussione (  https://www.excelvba.it/Forum/story/Excel_e_gli_applicativi_Office/Find_e_Replace_multipli_per_Excel.html ) ma non essendo molto pratico di excel non riesco ad andare avanti.

      Grazie mille a tutti per l'aiuto.

       

      #26813 Score: 0 | Risposta

      sklere
      Partecipante

        Allora, sono riuscito ad eseguire la macro, e funziona tutto, facendo riferimento a quel vecchio tread.

        Ora ho un altro problema, ci sono alcune voci che hanno degli spazi alla fine che chiaramente quando vado ad esportare mi da errore, vorrei poterli sostituire con altri senza spazio.

        faccio un esempio calcolando che il simbolo - è in realtà uno spazio

        pizza----=pizza

        spero di essere stato chiaro.

        grazie

         

        #26814 Score: 0 | Risposta

        GiuseppeMN
        Partecipante
          19 pts

          Buona giornata, @sklere;
          Sarebbe opportuno allegassi un File (senza Dati sensibili) con alcuni Record significativi già inseriti e chiarissi ciò che desideri ottenere.
          Questo eviterebbe a chi desidera aiutarti dover ricostruire una probabile struttura con il rischio di non centrare l'obiettivo.

          Giuseppe

          #26815 Score: 0 | Risposta

          PMC77
          Partecipante
            18 pts

            Ciao @sklere!

            Io per eliminare gli spazi in coda ti consiglierei una macro che scorre tutte le righe del tuo foglio Excel e vefica (sulle colonne che ti interessano) se siano presenti spazi superflui in coda e li elimini!

            Ciao

            Paolo

            #26817 Score: 0 | Risposta

            sklere
            Partecipante

              l'idea è questa, è il come fare il problema 😉

              la lista purtroppo è solo di dati sensibili, dovrei farne una specifica con degli esempi.

              Nel pomeriggio se riesco la allego, nel frattempo grazie comunque grazie per la disponibilità.

               

              #26819 Score: 0 | Risposta

              sklere
              Partecipante

                Ho preparato un file di esempio su come ricevo e come vorrei che venissero modificati i nomi ed alcuni campi.

                Come potete notare, per i nomi credo di aver risolto eseguendo la macro come spiegato nel vecchio tread che ho linkato sopra che si collega al file txt che vi allego, il problema ora è sul tipo di documento.

                Mi spiego meglio, se vedete la voce IDENTITY CARD ha tre spazi alla fine, quando vado a sostiurilo automaticamente me lo sostituisce ma mi lascia i tre spazi finali, come posso fare in modo che me li tolga?

                Vorrei inoltre che la voce DIPLOMATIC PASSOPORT venisse sostiuita con Passport, ma non me lo fa e mi restituisce DIPLOMATIC Passport.

                come posso fare?

                Spero di essere stato abbastanza chiaro.

                Grazie ancora a tutti

                 

                 

                 

                Allegati:
                You must be logged in to view attached files.
                #26822 Score: 0 | Risposta

                GiuseppeMN
                Partecipante
                  19 pts

                  Buona sera, @sklere;
                  nel tuo File non ci sono Codici VBA.

                  Per eliminare gli spazi finali potresti utilizzare un Ciclo For Next, io ho utilizzato For x = 1 To 10, con un controllo dell'ultio carattere a destra di ogni Valore.
                  Se l'ultimo carattere a destra è <> " " allora esci dal Ciclo For altrimenti elimina l'ultimo carattere a destra.

                  Rimane il problema della struttura "minuscolo con il primo carattere maiuscolo"; problema risolvibile ma è veramente necessaria questa struttura?

                  Per quanto concerne "DIPLOMATIC PASSPORT = Passport" la cosa si può risolvere con un controllo dopo l'eliminazione degli spazi finali.

                  Giuseppe

                  #26853 Score: 0 | Risposta

                  sklere
                  Partecipante

                    GiuseppeMN ha scritto:

                    Buona sera, @sklere; nel tuo File non ci sono Codici VBA.

                    Ciao grazie e scusa se rispondo solo ora ma sono stato molto impegnato, allora ho problemi anche con la lista esterna, c'è un comando che posso dare direttamente nella macro che mi sostituisca le seguenti lettere con le altre?

                    Alla fine i caratteri sono e saranno sempre e solo questi:

                    Č, C
                    č, c
                    Ć, C
                    ć, c
                    ž, z
                    Đ, đ
                    Ž, Z
                    Ü, U
                    Ä, A
                    ä, a
                    Ö, O
                    ö, o
                    Ü, U
                    ü, u
                    ß, SS
                    Ñ, N
                    ñ, n
                    ё, e

                     

                    Ciao e grazie

                    #26854 Score: 0 | Risposta

                    PMC77
                    Partecipante
                      18 pts

                      Ciao @sklere!

                      Mi pare di capire che tu non voglia utilizzare il VBA...

                      Prova con la funzione SOSTITUISCI di Excel...

                      Se non ti soddisfa dovrai per forza passare ad una macro!

                      Ciao

                      Paolo

                      #26855 Score: 0 | Risposta

                      sklere
                      Partecipante

                        PMC77 ha scritto:

                        Ciao @sklere!

                        Esattamente quello che vorrei fare, ma sono poco esperto, e lo vorrei fare senza collegarmi ad un file esterno come invece spiegava nel tread linkato in alto e che ti riporto:

                        'In un Modulo:
                        Option Explicit
                        
                        Sub find_replace()
                        Dim free_file As Integer, s As String, v As Variant
                        
                            free_file = FreeFile
                            Open "lista.txt" For Input As free_file
                            
                            While Not EOF(1)
                                Line Input #1, s
                                v = Split(s, "=")
                                Cells.Replace Trim(v(0)), Trim(v(1)), MatchCase:=True
                            Wend
                            
                            Close free_file
                            
                            MsgBox "Operazioni completate.", vbInformation, "Fatto"
                        
                        End Sub
                        #26856 Score: 0 | Risposta

                        patel
                        Moderatore
                          50 pts

                          Hai già risolto il primo quesito ? più carne al fuoco metti e meno risposte avrai

                          #26860 Score: 0 | Risposta

                          Luca73
                          Partecipante
                            54 pts

                            Ciao

                            HO buttato giù una piccola macro che fa quello che richiedi

                            la prima parte sostituisce i cartteri speciali, la seconda parte togli gli spazi in eccesso.

                            Per la prima parte ho sfruttato il trova e sostituisci di excel. Per la seconda ho pensato di usare una funzione già presente in excel.

                            Sub Macro1()
                            '
                            ' Macro1 Macro
                            '
                            
                            '
                                
                            Dim MioVettore(1 To 16, 1 To 2)
                            Dim Indice
                            Dim CEllaW
                            MioVettore(1, 1) = ChrW(262)
                            MioVettore(1, 2) = "C"
                            MioVettore(2, 1) = ChrW(262)
                            MioVettore(2, 2) = "c"
                            MioVettore(3, 1) = "Ð"
                            MioVettore(3, 2) = "d"
                            MioVettore(4, 1) = "Ž"
                            MioVettore(4, 2) = "Z"
                            MioVettore(5, 1) = "Ä"
                            MioVettore(5, 2) = "A"
                            MioVettore(6, 1) = "ä"
                            MioVettore(6, 2) = "a"
                            MioVettore(7, 1) = "Ö"
                            MioVettore(7, 2) = "O"
                            MioVettore(8, 1) = "ö"
                            MioVettore(8, 2) = "o"
                            MioVettore(9, 1) = "Ü"
                            MioVettore(9, 2) = "U"
                            MioVettore(10, 1) = "ü"
                            MioVettore(10, 2) = "u"
                            MioVettore(11, 1) = "ß"
                            MioVettore(11, 2) = "SS"
                            MioVettore(12, 1) = "Ñ"
                            MioVettore(12, 2) = "N"
                            MioVettore(13, 1) = "ñ"
                            MioVettore(13, 2) = "n"
                            MioVettore(14, 1) = "IDENTITY CARD"
                            MioVettore(14, 2) = "Identity card"
                            MioVettore(15, 1) = "PASSPORT"
                            MioVettore(15, 2) = "Passport"
                            MioVettore(16, 1) = "DIPLOMATIC Passport"
                            MioVettore(16, 2) = "Passport"
                                
                            For Indice = 1 To UBound(MioVettore, 1)
                                ActiveSheet.Cells.Replace What:=MioVettore(Indice, 1), Replacement:=MioVettore(Indice, 2), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
                            '    ActiveCell.FormulaR1C1 = "=TRIM(R[-8]C[-8])"
                            '    Range("F4").Select
                            Next Indice
                            
                            ActiveSheet.UsedRange.Select
                            For Each CEllaW In ActiveSheet.UsedRange
                            CEllaW.Select
                                If CEllaW <> "" Then
                                    CEllaW.Formula = WorksheetFunction.Trim(CEllaW.Text)
                                End If
                            Next
                            End Sub

                             L'unica attenzioe sono i caratteri speciali: alcuni non vengono riconosciuti dall'editor di VBA pertanto ho dovuto cercarli nel'inserisci simboli e identificarli tramite il codice UNICODE.

                            Ciao

                            Luca

                            #26873 Score: 0 | Risposta

                            sklere
                            Partecipante

                              Luca73 ha scritto:

                              Ciao

                              Grazie mille l'ho provato ed è proprio quello che mi serviva, non so come ringraziarti, mi hai risolto un sacco di fastidiose operazioni.

                              Grazie ancora

                               

                               

                              #26936 Score: 0 | Risposta

                              sklere
                              Partecipante

                                Allora, rieccomi a riscrivere perchè ho notato che ci sono dei problemini, praticamente questa macro agisce su tutte le colonne e a volte mi stravolge alcuni dati, soprattutto quelli dei numeri di documento e delle date, è possibile far si che la macro analizzi solo specifiche colonne? nello specifico vorrei che analizzasse solo le colonne B-C e H, ovvero NOME COGNOME e TIPO DI DOCUMENTO.

                                Scusate se "rompo" ma di VBA e EXCEL  non ci capisco molto.

                                Grazie mille a tutti

                                 

                                #27189 Score: 0 | Risposta

                                sklere
                                Partecipante

                                  Up

                                  plz

                                Login Registrati
                                Stai vedendo 15 articoli - dal 1 a 15 (di 15 totali)
                                Rispondi a: Trova e sostiuisci multiplo
                                Gli allegati sono permessi solo ad utenti REGISTRATI
                                Le tue informazioni: