tag:blogger.com,1999:blog-4623278671508370136.post446350153196780406..comments2023-08-01T13:39:53.991+02:00Comments on EXCEL FORO: Un blog de Excel: VBA: cómo generar una carpeta o directorioExcelforo - Ismael Romerohttp://www.blogger.com/profile/17680553534095355222noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-4623278671508370136.post-47425894423300180772016-04-20T08:50:36.269+02:002016-04-20T08:50:36.269+02:00;-)
Slds;-)<br />SldsExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-36868829993013774872016-04-19T20:05:24.368+02:002016-04-19T20:05:24.368+02:00Amigos solucionado, solo me falta cerrar el objeto...Amigos solucionado, solo me falta cerrar el objeto de creacion <br />abajo de la linea "Set ObjTF= objFSO.CreateTextFile("F:\" & Nombre & ".txt", True)<br />"<br />falta esta linea <br />objTF.close <br />Y lsistoIng Gonzalo Reyeshttps://www.blogger.com/profile/13163580774591734761noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-28066122178050181562016-04-19T18:35:25.223+02:002016-04-19T18:35:25.223+02:00Me pueden apoyar con este codigo, el cual me marca...Me pueden apoyar con este codigo, el cual me marca un error de "Error 70, Permiso Denegador"<br />le muestro el codigo a continuacion <br /><br />Private Sub CommandButton2_Click()<br />Dim objFSO<br />Dim objTF<br />Dim i As Integer<br />Dim Nombre, Archivo As String<br />Nombre = InputBox("Ingrese Nombre del Archivo a Generar")<br /> Set objFSO = CreateObject("scripting.filesystemobject")<br />' 'create a txt file<br /> Set objTF = objFSO.CreateTextFile("F:\" & Nombre & ".txt", True)<br /><br />Open "F:\" & Nombre & ".txt" For Output As #1<br />For i = 0 To ListBox1.ListCount<br />Print #1, ListBox1.List(i)<br />Next i<br />Close #1<br />End Sub<br /><br />Y revice la seguridad del archivo y no tiene ningun problema para abrirlo manual, pero al querer abrirlo por el codigo no me deja, me aparece el error de permiso denegado. <br /><br />Gracias cualquier aporte es bien venido <br />saludos a todos. Ing Gonzalo Reyeshttps://www.blogger.com/profile/13163580774591734761noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-33412660759853130452012-04-06T13:32:36.368+02:002012-04-06T13:32:36.368+02:00Hola Arthur,
efectivamente hay dos IF, pero uno de...Hola Arthur,<br />efectivamente hay dos IF, pero uno de ellos está completo en una misma linea, es decir, <br />IF.. THEN ... ELSE<br />sólo se requiere un END IF cuando lo partes, por motivos varios, en varias líneas<br />IF ... THEN<br />código<br />código<br />[ELSE<br />código X]<br />END IF<br /><br />Dependiendo de qué necesitemos incorporar al condicional interesa una forma u otra.<br />Un saludo!!Excelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-58237192477278114702012-04-02T20:22:13.211+02:002012-04-02T20:22:13.211+02:00Gracias por la respuesta bajo el Procedimiento o m...Gracias por la respuesta bajo el Procedimiento o macro GenerarCarpeta(), el procedimiento es corto y sustancioso y funciona perfectly, la unica duda es porque cierras con un solo End if si existen 2 If's abiertos<br />Gracias<br />ArthurAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-15427614022604340262012-02-02T08:43:34.415+01:002012-02-02T08:43:34.415+01:00Hola Rodrigo,
he probado tu código, con una ruta d...Hola Rodrigo,<br />he probado tu código, con una ruta de mi PC un poco más corta, y funciona perfectamente tal cual lo tienes, lo único que en el cósdigo del Hyperlink el Anchor lo he diridgido a la misma celda activa desde la que has creado la carpeta, esto es<br /><b>Anchor:=Range("A10")</b><br />lo demás lo veo bien y además funciona...<br />¿que es lo que te falla???<br />SldsExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-45881214864679613602012-02-01T18:42:11.898+01:002012-02-01T18:42:11.898+01:00hola, he tratado de hacer que esta macro aparte de...hola, he tratado de hacer que esta macro aparte de crear una carpeta con el nombre de la celda especificada, me genere un hipervinculo al interior de la carpeta creada. no se que poner en address... <br /><br />Sub Crear_carpetas()<br />Application.ScreenUpdating = False<br />Set fso = CreateObject("Scripting.FileSystemObject")<br />ruta = "C:\Documents and Settings\rodrigo.sims\Escritorio\Ficha Proveedor\Base Datos (Hipervinculos)\Proveedores"<br />Range("A10").Select<br /><br />If Not fso.FolderExists(ruta & "\" & ActiveCell.Value) Then<br />fso.CreateFolder (ruta & "\" & ActiveCell.Value)<br />End If<br /><br />ActiveSheet.Hyperlinks.Add _<br />Anchor:=Range("B10"), _<br />Address:="C:\Documents and Settings\rodrigo.sims\Escritorio\Ficha Proveedor\Base Datos (Hipervinculos)\Proveedores\", _<br />TextToDisplay:="Documentos del Proveedor", _<br />ScreenTip:="Enlace a Carpeta Proveedor"<br /><br />Set fso = Nothing<br /><br />Application.ScreenUpdating = True<br />End Sub<br /><br /><br />ojala me puedan ayudar me tiene super complicado esto, saludosRodrigonoreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-47544669874287545262011-05-17T09:59:26.766+02:002011-05-17T09:59:26.766+02:00Muchas gracias Ricardo por compartirlo...
desde lu...Muchas gracias Ricardo por compartirlo...<br />desde luego todas las colaboraciones son bienvenidas... por mi parte lo revisaré y aprenderé todo lo que pueda de tu código.<br />Un saludoExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-72789398769943302932011-05-16T16:16:10.389+02:002011-05-16T16:16:10.389+02:00Hola soy nuevo en esto de compartir información en...Hola soy nuevo en esto de compartir información en un blog desde ya mis disculpas si no soy lo suficientemente prolijo.<br />Me quedé con la creación de una carpeta y encontré que una posible dificultad que habría sería que si el usuario tuviera la unidad del sistema con otra letra diferente a la “C” adiós al código, nos daría un error.<br />Pense en subsanarlo mediante una verificación previa de cuáles son las letras asignadas a las unidades lógicas usando algunas funciones de Windows.<br /><br />Una de ellas es la función GetLogicalDriveStrings <br /><br />Declare Function GetLogicalDriveStrings Lib "Kernel32" Alias "GetLogicalDriveStringsA" _<br /> (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long<br /><br />Public Sub ObtenerUnidadesLogicas()<br /> Dim Texto As String<br /> Dim Longitud As Long<br /> Dim CadenaResultante As Long<br /> Dim i As Integer<br /> 'Inicializamos las variables<br /> Texto = String(255, 0) 'Generamos una cadena de 255 caracteres de valor nulo<br /> Longitud = Len(Texto)<br /> CadenaResultante = GetLogicalDriveStrings(Longitud, Texto) <br /> 'CadenaResultante = Devuelve el numero de caracteres no vacíos. Cero en caso de error.<br /> <br /> Texto = Left(Texto, CadenaResultante) 'Truncamos la cadena al valor de CadenaResultante eliminando así los caracteres vacíos a la derecha de texto<br /> Debug.Print Texto<br /> For i = 1 To CadenaResultante Step 4<br /> Debug.Print Mid(Texto, i, 3)<br /> Next i<br /><br />End Sub<br /><br />Otra posible solución sería preguntarle a Windows cuál es su directorio, el cual ya tendría asignada la letra correspondiente.<br /><br />Declare Function GetWindowsDirectory Lib "Kernel32" Alias "GetWindowsDirectoryA" _<br /> (ByVal f As String, ByVal fLen As Long) As Long<br /><br />Sub DirectorioWindows()<br />Dim DirWin As String<br />Dim TamañoDevuelto As Long<br /><br />'Generamos una cadena de 255 caracteres de valor nulo para que la función <br /> deposite el valor del directorio de windows<br />DirWin = String(255, 0)<br /><br />'Llamado a la función GetWindowsDirectory para obtener información del directorio.<br />'TamañoDevuelto=longitud de la cadena devuelta por la DLL<br />'DirWin=cadena con el directorio de windows<br /><br />TamañoDevuelto = GetWindowsDirectory(DirWin, Len(DirWin))<br /><br />'Ajustamos la cadena al tamaño devuelto<br />DirWin = Left(DirWin, TamañoDevuelto)<br />Debug.Print DirWin<br />End Sub<br /><br />La función retornará: >> C:\WINDOWS<br />Recortamos la cadena y ya está.RICARDO QUIRQUEhttps://www.blogger.com/profile/06246500899216826053noreply@blogger.com