ayuda con crear directorios (TreeView)

16/07/2007 - 21:12 por daniel | Informe spam
Hola a todos
se puede hacer lo siguiente
dentro de un userform poner 1 TreeView llamado(TreeView1) 1 listbox
(ListBox1) 1 textbox (textbox1) 1 label (label1)
en el Tree View que aparezca el listado de carpetas y sub carpetas de la si
guiente ruta (C:\Documents and Settings\DANIEL\Mis
documentos\programdmgegt)
es decir que en piece a nombrar las carpetas apartir de esa no desde C:\.
1) que cuando se pinche en en una de las carpetas del Tree View en el
listbox1 muestre los archivos que tiene esa carpeta
2) si se puede poner que ciertos archivos con ciertas extensiones no se
puedan visualizar
en el textbox que aparezca la ruta de la carpeta y en el label la ruta
completa `del archivo al pulsar en el listbox1.



espero haber me espresado bien

un saludo y muchas gracias
Daniel

Preguntas similare

Leer las respuestas

#6 daniel
23/07/2007 - 19:54 | Informe spam
Hola Hector Miguel
si con eso funciona bien le copiaria mal el ejemplo.
se puede hacer que al seleccionar una carpeta muestre en el label1 la ruta
entera de esta.
y que en un listbox los archivos que hay dentro de esta carpeta y en el
listbox al selecionar un archivo muestre la ruta completa en el label2.
se puede hacer para que no muestre ciertos archivos con las extensiones
ejemplo(.dmg , .dmgtxt ,)
esto de las extensiones si es posible que esten puestas en una columa las
extensiones que so se puedan ver me refiero.


un saludo y muchisimas gracias
Daniel
"Héctor Miguel" escribió en el mensaje
news:%
Mostrar la cita
#7 Héctor Miguel
23/07/2007 - 23:13 | Informe spam
hola, daniel !

Mostrar la cita
1) con respecto de las EXTensiones que no quieres que se muestren, y dado que el ejemplo SOLO muestra *xls -?-
seria bueno si comentas alguna adaptacion que ya le hubiera efectuado al codigo ;)
-> revisa la instruccion en el procedimiento GetFiles donde dice:
-> If fil.Name Like "*.xls" Then ListBox1.AddItem fil.Name

2) con relacion a *separar* los archivos del TreeView y pasarlos a un control de lista...
solo necesitas modificar el procedimiento Private Sub GetFiles(...
[de preferencia, lo he separado a GetFolders para el llenado del TreeView y GetFiles para el llenado del Lixtbox]
y... he agregado una constante para el directorio *base* <= OJO
habria que hacer alguna preparacion por si esta base pudiera ser alguna *raiz* [p.e. C:\] -?-

corre algunas pruebas y... si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

' keepITcool
' mod = hmod
' Option Explicit
Private Const Base As String = "c:\documents and settings\hmod\" '<= modifica esta *base*
Private Sub tvPopulate(sPath As String)
Dim fso As FileSystemObject, fld As Folder
Set fso = New Scripting.FileSystemObject
If fso.FolderExists(sPath) Then
TreeView1.Nodes.Clear
Set fld = fso.GetFolder(sPath)
Call GetFolders(fld)
TreeView1.Nodes(1).Selected = True
Else: MsgBox "The folder path " & sPath & "does not exist"
End If
End Sub
Private Sub GetFolders(fld As Folder, Optional par As Folder = Null)
Dim kid As Folder, nod As Node
On Error Resume Next
If par Is Nothing Then
Set nod = TreeView1.Nodes.Add(, , fld.Name, fld.Name)
nod.Expanded = True
Else: TreeView1.Nodes.Add par.Name, tvwChild, fld.Name, fld.Name
End If
Application.StatusBar = "Filling nodes for " & fld.Path
For Each kid In fld.SubFolders
Call GetFolders(kid, fld)
Next
End Sub
Private Sub GetFiles(sPath As String)
Dim fso As FileSystemObject, fld As Folder, fil As File
Set fso = New Scripting.FileSystemObject
Set fld = fso.GetFolder(sPath)
ListBox1.Clear
For Each fil In fld.Files
If fil.Name Like "*.xls" Then ListBox1.AddItem fil.Name
Next
End Sub
Private Sub TreeView1_Click()
Call GetFiles(Base & TreeView1.SelectedItem.FullPath)
Label1 = Base & TreeView1.SelectedItem.FullPath
Label2 = ""
End Sub
Private Sub ListBox1_Click()
Label2 = Label1 & "\" & ListBox1.Text
End Sub
Private Sub UserForm_activate()
Call tvPopulate(Base & "mis documentos") ' aqui se *complementa* la base <= OJO
Application.StatusBar = ""
End Sub
Private Sub UserForm_Initialize()
Label1 = ""
Label2 = ""
With TreeView1
.Appearance = cc3D
.Indentation = 12
End With
End Sub
#8 daniel
24/07/2007 - 19:05 | Informe spam
Hola Hector Miguel
Muchisimas gracias era lo que queria
intentare modificar yo lo de las extensiones y si no te pido ayuda

un saludo y muchisimas gracias
Daniel
"Héctor Miguel" escribió en el mensaje
news:O$
Mostrar la cita
#9 daniel
28/07/2007 - 17:38 | Informe spam
Hola Hector Miguel
1) No consegui solucionar lo de que las extensiones que estan en la columna
C no se muestren en el listbox1.
sabes como se haria.
2) cuando haces click en el treeview y luego haces otro click para editar el
nombre se podria hacer que al cambiar el nombre de la carpeta en el treeview
esta se cambie automaticamente.
3) se puede hacer que arrastrando un archivo del listbox al treeview se
copie en donde lo e arratrado. (como pasa con el explorador de windows).


un saludo y muchas gracias
Daniel
"daniel" escribió en el mensaje
news:%23gwP$
Mostrar la cita
#10 Héctor Miguel
30/07/2007 - 07:33 | Informe spam
hola, daniel !

Mostrar la cita
1) no me queda claro si has hecho modificaciones a los codigos que se han visto/comentado/propuesto/... en este hilo -?-
si [aparentemente] el que estas usando manda al control de lista todo tipo de archivos de cada carpeta *registrada* en el treeview...
[insisto en que] convendria si lo comentas/expones [en caso de existir], ya que los codigos [vistos hasta ahora]...
-> SOLAMENTE *pasan* al control de lista... los archivos que contienen en el nombre: -> *.xls*
Mostrar la cita
2 y 3) estos *requerimientos* nuevos/complementarios/adicionales/... [como que]
me dan la impresion de que seria mejor *mostrar* el explorador de windows [o algo mas *asemejado*] que un control treeview -?-

-> para 'mover/copiar' archivos de una ubicacion a otra, puedes usar al menos dos formas:
[aparte de que habria que *encuadrarlas* en los eventos de los controles treeview y listbox]

1) una instruccion =>Name "Origen" As "Destino"< -> "Origen" y "Destino" son [una cadena de texto que 'representa'] directorio/s + nombre_archivo + EXT[ension]

a) para renombrar un archivo [mismo directorio] ... los 'requisitos' son ...
(1) que "Origen" EXISTA [y este cerrado] y...
(2) que "Destino" NO EXISTA
[p.e.] Name "C:\Misma ruta\Archivo1.abc" As "C:\Misma ruta\Archivo2.xyz"

b) si "Origen" y "Destino" son 'diferentes'... la instruccion [practicamente] 'hara lo mismo que...'

2) una instruccion =>FileCopy "Origen", "Destino"< -> en este caso, "Destino" sera INVARIABLEMENTE 'reemplazado' <= OJO

puedes consultar en la ayuda de vba el uso de 'FileCopy' y 'Name'

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Ads by Google
Search Busqueda sugerida