elimina spazi da una stringa



  • elimina spazi da una stringa
    di luna65 (utente non iscritto) data: 02/02/2017 18:46:50

    un paio di giorni fà avevo chiesto aiuto per risolvere un problema con il percorso relativo, ora si è presentato un altro problema che devo risolvere con lo stesso codice, devo eliminare gli spazi dalla stringa, mi sono accorto che se per errore nella cella con il percorso ci sono spazi, quando lancio il codice non trova nulla. come si possono eliminare gli spazi. allego il codice con la speranza che qualcuno mi aiuti, grazie.
     
    Private Sub Cmd_Apri_Directory_Gen_Click()
    Apri_file_fisso_Gen
    End Sub
    Sub Apri_file_fisso_Gen()
    Apri_File "di Gennaio", "C12"
    End Sub
    
    Sub Apri_File(nome As String, cella As String)
    
    If MsgBox("   Stai per Aprire la Directory " & nome & " " & vbCrLf & "   Vuoi continuare ?", vbInformation + vbYesNo, "Avviso Archiviazione") = vbYes Then
    Application.ScreenUpdating = False
      Dim Path    As String
            Dim FilePath As String, Fname As String
            Path = Trim(Application.ActiveWorkbook.Path)
           
            Path = Left(Path, 3)
            
            FilePath = Path & ActiveSheet.Range(cella).Value & ""  'Elimina lo  finale
            If FilePath <> "" And Dir(FilePath) <> "" Then
                ChDrive FilePath
                ChDir FilePath
                
      Fname = Application.GetOpenFilename("(Excel 2003 Files) (*.xls), *.xls , (Excel 2010 Files) (*.xlsx), *.xlsx , (Excel 2010 con attivazione macro Files) (*.xlsm), *.xlsm")
                If Fname <> "Falso" Then
                Workbooks.Open (Fname)
    End If
            Else
                MsgBox "Attenzione Cartella Inesistente O Percorso Errato"
            End If
         End If
    End Sub



  • di alfrimpa data: 02/02/2017 19:06:16

    Ciao Luna

    Non entro nel merito del codice postato ma esiste l'istruzion Trim:

    Se la variabile "miastringa = " Luna " e scriviamo
    Trim(miastringa) il risultato sarà "Luna".

    Insomma è un ANNULLA.SPAZI lato VBA

    La butto lì:

    If Trim(Fname) <> "Falso" Then
    Workbooks.Open (Fname)

    Ripeto è solo un tentativo.

    Alfredo





  • di luna65 (utente non iscritto) data: 02/02/2017 19:58:33

    ciao alfredo, grazie per aver risposto ho provato come a fare una prova If Trim(Fname) <> "Falso" Then ma non funziona se nella stringa ci sono spazi non trova il percorso.



  • di alfrimpa data: 02/02/2017 20:04:34

    Il Trim toglie spazi iniziali e finali; per quelli intermedi potresti provare con Replace sostituendo gli spazi con una stringa nulla (" " con "").

    Ora non ricordo bene la sintassi ma dovrebbe essere qualcosa del genere.

    Replace(Fname, " ", "")

    Alfredo





  • di luna65 (utente non iscritto) data: 02/02/2017 21:26:06

    gli spazi da eliminare sono alla fine della stringa, spazi intermedi non ci sono



  • di luna65 (utente non iscritto) data: 03/02/2017 16:42:17

    qualche esperto di vba sa come posso eliminare gli spazi finali da una stringa, io ho provata ma no ci sono riuscito. Spero che qualcuno sa come posso risolvere il problema!



  • di alfrimpa data: 03/02/2017 16:55:09

    Guarda Luna che con Trim si eliminano gli spazi iniziali e finali.

    Evidentemente il problema non è quello.

    Dovrebbe intervenire chi ti ha aiutato in precedenza.

    Alfredo