ciclo if da sistemare



  • ciclo if da sistemare
    di Leonardo (utente non iscritto) data: 18/05/2014 16:58:38

    Salve. Grazie a Lucas87 ho creato il file che allego che funziona tutto tranne un particolare che ora spiego:
    la macro trova la cartella indicata in C3, se c'è mi riporta il nome file altrimenti msgbox "La cartella non esiste."; se la cartella è vuota msgbox "La cartella è vuota.". Funzionano tutti i casi tranne questo: se una cartella non esiste esce prima il msgbox "La cartella non esiste." e poi il msgbox "La cartella è vuota." invece dovrebbe uscire solo il msgbox "La cartella non esiste.". Come bisogna sistemarlo? Grazie
     
    Sub TrovaNomeFilePercorsoEstensione()
        [C7:C1000].ClearContents
        If [C3] = "" Then
        MsgBox "Inserire il percorso della cartella nella cella C3"
        Range("A1").Select
        Exit Sub
        Else
        End If
        If [E2] <> "" Then
        MsgBox "Inserire nella cella C3 lo  alla fine."
        Range("A1").Select
        Exit Sub
        Else
        End If
        'Percorso = "C:UsersDesktop"
        percorso = Range("C3").Text
        nomefile = Dir(percorso)
        Set fs = CreateObject("Scripting.FileSystemObject")
        If fs.folderexists(percorso) = True Then
            i = 7
            Do While nomefile <> ""
            Cells(i, 3) = nomefile
                i = i + 1
                nomefile = Dir
            Loop
        Range("A1").Select
        Else
           MsgBox "La cartella non esiste."
           Range("A1").Select
        End If
        If Dir(percorso) = "" Then
        MsgBox "La cartella è vuota."
        Range("A1").Select
        Else
        End If



  • di lepat (utente non iscritto) data: 18/05/2014 17:50:40

    prova così
     
        If fs.folderexists(Percorso) = True Then
            i = 7
            Do While nomefile <> ""
            Cells(i, 3) = nomefile
                i = i + 1
                nomefile = Dir
            Loop
        Range("A1").Select
        Else
           MsgBox "La cartella non esiste."
           Range("A1").Select
           Exit Sub
        End If
        If Dir(Percorso) = "" Then
        MsgBox "La cartella è vuota."
        Range("A1").Select
        Else
        End If
    
    End Sub
    



  • di Lucas87 data: 18/05/2014 17:56:25

    Oppure...mischiamo tutto
     
    If fs.folderexists(percorso) = True And Dir(percorso) <> "" Then ' se la cartella esiste e contiene qualcosa
        'operazioni
    ElseIf fs.folderexists(percorso) = False Then           'se la cartella NON esiste
        'non esiste
    Else                                                    'se esiste e NON contiene qualcosa
        'è vuota
    



  • di Leonardo (utente non iscritto) data: 18/05/2014 18:58:12

    Ho usato il consiglio di lepat di inserire Exit Sub in quanto è molto più semplice e funzionale. Grazie mille