Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VBA] Ricerca cartella con nome parziale

    Salve a tutti, vi espongo il mio problema.
    Devo creare un programma in vba che dato il numero di commessa vada nella cartella corrispondente e apra un file.
    Es. commessa 11S24
    deve aprire Z:\ArchivioCommesse\_comm 2011\11S24 - ciao\prova.xls
    ho provato a cercare e riadattare alcuni dei vostri cerca ma non ci sono riuscito.
    La mia idea era quella di andare fare la lista delle sottocartelle di _comm2011 e poi cercare la cartella cossispondente utilizzando il numero della commessa.
    P.S. se avete un buo manuale da consigliarmi, vene sarei molto grato.
    Ho il pacchetto office 2010. Grazie in anticipo.

  2. #2
    Mi viene in mente una cosa del genere:

    codice:
    Sub Macro10()
    Dim nome_commessa As String, sFilename As String
        nome_commessa = InputBox("Inserire il nome della commessa:", "Inserisci nome file")
        sFilename = "Z:\ArchivioCommesse\_comm 2011\" & nome_commessa & " - ciao\prova.xls"
        Workbooks.Open Filename:=sFilename
    End Sub

  3. #3
    Ok dormo in piedi -.-....quel ciao è variabile cambia da commessa a commessa...mi sono espresso male sorry....

  4. #4
    Prova una cosa del genere:

    codice:
    Sub CercaPartFolder()
    Dim subf() As String, nome_cartella As String, path As String, cartella_presente As Boolean, file_name As String
    
    path = "Z:\ArchivioCommesse\_comm 2011\"
    file_name = "prova.xls"
    
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set sf = FSO.GetFolder(path)
    Set fc = sf.SubFolders
    
    commessa = InputBox("Inserire il nome della commessa:", "Nome commessa")
    
        For Each f1 In fc
        ReDim Preserve subf(i)
            subf(i) = f1.name
            i = i + 1
        Next
        
    cartella_presente = False
        
        For i = 0 To UBound(subf)
            'Debug.Print subf(i)
            If InStr(1, subf(i), commessa) = 1 Then
                nome_cartella = subf(i)
                cartella_presente = True
                Exit For
            End If
        Next
    If cartella_presente = False Then
        a = MsgBox("Nessuna cartella corrispondente trovata")
        Else
        Workbooks.Open (path & "\" & nome_cartella & "\" & file_name)
    End If
    End Sub

  5. #5
    Grazie mille, perfetto funziona alla grande!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.