Discussion:
Crear carpetas
(demasiado antiguo para responder)
Aprendiz
2004-12-22 12:54:31 UTC
Permalink
Ruego un código para crear carpetas en un directorio a elegir ???...
(¿quizás el cuadro de Windows?), cuyos nombres de carpetas (¿máximo nº de
letras?)corresponden al rango A1:A100 (puede que no todas las filas del
rango contengan un nombre, es decir estén vacias, pero si serán seguidas las
que lo contengan comenzando por A1) de una hoja llamada "Carpetas archivo",
correspondiente al libro "Archivo general".
Saludos y gracias
José Rafael
Héctor Miguel
2004-12-22 19:41:30 UTC
Permalink
hola, José Rafael !
... codigo para crear carpetas en un directorio a elegir ???...
... cuyos nombres de carpetas (¿máximo nº de letras?) corresponden al rango A1:A100 [...]
1.- revisa en la ayuda de vba acerca de las instrucciones: MkDir, RmDir, Kill
2.- toma las debidas precauciones para que los nombres NO contengan caracteres 'no validos'
3.- habra que 'validar' si algunos directorios 'ya existieran' [suponiendo que el codigo sea 'repetible']
4.- revisa el siguiente enlace: http://tinyurl.com/5ords

si cualquier duda o informacion adicional... ¿comentas?
saludos,
hector.
Aprendiz
2004-12-23 08:09:39 UTC
Permalink
De todas maneras necesito una base de código para sobre ella modificarlo
hasta conseguir lo que necesito, que no sé explicarlo mejor. Para mí es mas
facil si tengo ese código básico que simplemente ponga nombre a pestañas de
un libro. Gracias de todos modos.
José Rafael
Post by Héctor Miguel
hola, José Rafael !
... codigo para crear carpetas en un directorio a elegir ???...
... cuyos nombres de carpetas (¿máximo nº de letras?) corresponden al
rango A1:A100 [...]
Post by Héctor Miguel
1.- revisa en la ayuda de vba acerca de las instrucciones: MkDir, RmDir, Kill
2.- toma las debidas precauciones para que los nombres NO contengan caracteres 'no validos'
3.- habra que 'validar' si algunos directorios 'ya existieran' [suponiendo
que el codigo sea 'repetible']
Post by Héctor Miguel
4.- revisa el siguiente enlace: http://tinyurl.com/5ords
si cualquier duda o informacion adicional... ¿comentas?
saludos,
hector.
unknown
2004-12-23 09:47:42 UTC
Permalink
Aprendiz,

Para ejemplos de codigo podrias consultar estos links (mirate bien el hilo
entero)

Saludos,
KL

http://groups.google.es/groups?hl=es&lr=&frame=right&th=513414872baba1e5&seekm=cbqd36%243dt2%40imsp212.netvigator.com#link2

http://groups.google.es/groups?hl=es&lr=&frame=right&th=c42262ba9c05022f&seekm=%230L0GQUfDHA.3324%40TK2MSFTNGP11.phx.gbl#link2

http://groups.google.es/groups?hl=es&lr=&frame=right&th=c57ba2c2ea4953f5&seekm=%23OqgynsuEHA.3352%40tk2msftngp13.phx.gbl#link2
Post by Aprendiz
De todas maneras necesito una base de código para sobre ella modificarlo
hasta conseguir lo que necesito, que no sé explicarlo mejor. Para mí es mas
facil si tengo ese código básico que simplemente ponga nombre a pestañas de
un libro. Gracias de todos modos.
José Rafael
Post by Héctor Miguel
hola, José Rafael !
... codigo para crear carpetas en un directorio a elegir ???...
... cuyos nombres de carpetas (¿máximo nº de letras?) corresponden al
rango A1:A100 [...]
Post by Héctor Miguel
1.- revisa en la ayuda de vba acerca de las instrucciones: MkDir, RmDir,
Kill
Post by Héctor Miguel
2.- toma las debidas precauciones para que los nombres NO contengan
caracteres 'no validos'
Post by Héctor Miguel
3.- habra que 'validar' si algunos directorios 'ya existieran' [suponiendo
que el codigo sea 'repetible']
Post by Héctor Miguel
4.- revisa el siguiente enlace: http://tinyurl.com/5ords
si cualquier duda o informacion adicional... ¿comentas?
saludos,
hector.
Aprendiz
2004-12-23 12:30:49 UTC
Permalink
Saludos KL
Te agradezco los links, pero están en inglés y todavía estoy un poco verde
para entender código.
Te pediría que para ayudarme, me escribieras un código para realizar lo
siguiente:
En un libro "Archivo general", la primera hoja se llama "Carpetas archivo",
y en la celda A1 y sucesivas A2, A3, etc.. estoy escribiendo el nombre de
las siguientes hojas del libro.... solo necesito escribir en las pestañas
(hojas del libro) que todavia no se han creado, dichos nombres mediante
código VBA. Gracias
José Rafael
Post by unknown
Aprendiz,
Para ejemplos de codigo podrias consultar estos links (mirate bien el hilo
entero)
Saludos,
KL
http://groups.google.es/groups?hl=es&lr=&frame=right&th=513414872baba1e5&seekm=cbqd36%243dt2%40imsp212.netvigator.com#link2
http://groups.google.es/groups?hl=es&lr=&frame=right&th=c42262ba9c05022f&seekm=%230L0GQUfDHA.3324%40TK2MSFTNGP11.phx.gbl#link2
http://groups.google.es/groups?hl=es&lr=&frame=right&th=c57ba2c2ea4953f5&seekm=%23OqgynsuEHA.3352%40tk2msftngp13.phx.gbl#link2
Post by unknown
Post by Aprendiz
De todas maneras necesito una base de código para sobre ella modificarlo
hasta conseguir lo que necesito, que no sé explicarlo mejor. Para mí es mas
facil si tengo ese código básico que simplemente ponga nombre a pestañas de
un libro. Gracias de todos modos.
José Rafael
Post by Héctor Miguel
hola, José Rafael !
... codigo para crear carpetas en un directorio a elegir ???...
... cuyos nombres de carpetas (¿máximo nº de letras?) corresponden al
rango A1:A100 [...]
Post by Héctor Miguel
1.- revisa en la ayuda de vba acerca de las instrucciones: MkDir, RmDir,
Kill
Post by Héctor Miguel
2.- toma las debidas precauciones para que los nombres NO contengan
caracteres 'no validos'
Post by Héctor Miguel
3.- habra que 'validar' si algunos directorios 'ya existieran' [suponiendo
que el codigo sea 'repetible']
Post by Héctor Miguel
4.- revisa el siguiente enlace: http://tinyurl.com/5ords
si cualquier duda o informacion adicional... ¿comentas?
saludos,
hector.
unknown
2004-12-23 14:30:33 UTC
Permalink
Aprendiz,

Prueba el macro de abajo.

Saludos,
KL

'------Inicio Codigo-------
Sub AgregarHojaNueva()
Dim carInvalidos As Variant
Dim Celda As Range
Dim Hoja As Worksheet
Dim i As Integer
Dim NombreUnico As Boolean
Dim NombreValido As Boolean
Dim Ant As Integer
Dim Desp As Integer

carInvalidos = Array(":", "\", "/", "?", "*", "[", "]")

Application.ScreenUpdating = False
With ThisWorkbook
For Each Celda In Worksheets("Carpetas archivo").Range("A1:A10")

'comprobamos si ya existen hojas con los
'nombres q queremos usar.
NombreUnico = True
For Each Hoja In Worksheets
If Hoja.Name = Celda Then
MsgBox "Ya existe una hoja con el nombre: " _
& Celda
NombreUnico = False
Exit For
End If
Next Hoja

'comprobamos si el nombre contiene
'caracteres invalidos.
NombreValido = True
For i = 0 To UBound(carInvalidos)
If InStr(Celda, carInvalidos(i)) Then
MsgBox "El nombre " & Celda _
& " contiene caracteres invalidos."
NombreValido = False
Exit For
End If
Next i

'Creamos las hojas y asignamos los nombres validos.
If Not IsEmpty(Celda) And NombreUnico And NombreValido Then
Worksheets.Add(After:= _
Worksheets(Worksheets.Count)).Name = Celda.Value
End If
Next Celda

'Procedemos a ordenar las hojas alfabeticamente.
For Desp = 2 To Worksheets.Count
For Ant = Desp To Worksheets.Count
If UCase(Worksheets(Ant).Name) < _
UCase(Worksheets(Desp).Name) Then _
Worksheets(Ant).Move Before:=Worksheets(Desp)
Next
Next

'volvemos a la hoja principal.
Worksheets("Carpetas archivo").Activate
End With
End Sub
'------Fin Codigo-------
Post by Aprendiz
Saludos KL
Te agradezco los links, pero están en inglés y todavía estoy un poco verde
para entender código.
Te pediría que para ayudarme, me escribieras un código para realizar lo
En un libro "Archivo general", la primera hoja se llama "Carpetas archivo",
y en la celda A1 y sucesivas A2, A3, etc.. estoy escribiendo el nombre de
las siguientes hojas del libro.... solo necesito escribir en las pestañas
(hojas del libro) que todavia no se han creado, dichos nombres mediante
código VBA. Gracias
José Rafael
Post by unknown
Aprendiz,
Para ejemplos de codigo podrias consultar estos links (mirate bien el hilo
entero)
Saludos,
KL
http://groups.google.es/groups?hl=es&lr=&frame=right&th=513414872baba1e5&seekm=cbqd36%243dt2%40imsp212.netvigator.com#link2
http://groups.google.es/groups?hl=es&lr=&frame=right&th=c42262ba9c05022f&seekm=%230L0GQUfDHA.3324%40TK2MSFTNGP11.phx.gbl#link2
http://groups.google.es/groups?hl=es&lr=&frame=right&th=c57ba2c2ea4953f5&seekm=%23OqgynsuEHA.3352%40tk2msftngp13.phx.gbl#link2
Post by unknown
Post by Aprendiz
De todas maneras necesito una base de código para sobre ella modificarlo
hasta conseguir lo que necesito, que no sé explicarlo mejor. Para mí es mas
facil si tengo ese código básico que simplemente ponga nombre a
pestañas
de
un libro. Gracias de todos modos.
José Rafael
Post by Héctor Miguel
hola, José Rafael !
... codigo para crear carpetas en un directorio a elegir ???...
... cuyos nombres de carpetas (¿máximo nº de letras?) corresponden al
rango A1:A100 [...]
Post by Héctor Miguel
1.- revisa en la ayuda de vba acerca de las instrucciones: MkDir,
RmDir,
Post by unknown
Post by Aprendiz
Kill
Post by Héctor Miguel
2.- toma las debidas precauciones para que los nombres NO contengan
caracteres 'no validos'
Post by Héctor Miguel
3.- habra que 'validar' si algunos directorios 'ya existieran' [suponiendo
que el codigo sea 'repetible']
Post by Héctor Miguel
4.- revisa el siguiente enlace: http://tinyurl.com/5ords
si cualquier duda o informacion adicional... ¿comentas?
saludos,
hector.
Aprendiz
2004-12-23 15:48:56 UTC
Permalink
Muchas gracias KL, te puedo decir que aprendo muchos de todas tus respuestas
incluída ésta. Felices fiestas.
José Rafael
Post by unknown
Aprendiz,
Prueba el macro de abajo.
Saludos,
KL
'------Inicio Codigo-------
Sub AgregarHojaNueva()
Dim carInvalidos As Variant
Dim Celda As Range
Dim Hoja As Worksheet
Dim i As Integer
Dim NombreUnico As Boolean
Dim NombreValido As Boolean
Dim Ant As Integer
Dim Desp As Integer
carInvalidos = Array(":", "\", "/", "?", "*", "[", "]")
Application.ScreenUpdating = False
With ThisWorkbook
For Each Celda In Worksheets("Carpetas archivo").Range("A1:A10")
'comprobamos si ya existen hojas con los
'nombres q queremos usar.
NombreUnico = True
For Each Hoja In Worksheets
If Hoja.Name = Celda Then
MsgBox "Ya existe una hoja con el nombre: " _
& Celda
NombreUnico = False
Exit For
End If
Next Hoja
'comprobamos si el nombre contiene
'caracteres invalidos.
NombreValido = True
For i = 0 To UBound(carInvalidos)
If InStr(Celda, carInvalidos(i)) Then
MsgBox "El nombre " & Celda _
& " contiene caracteres invalidos."
NombreValido = False
Exit For
End If
Next i
'Creamos las hojas y asignamos los nombres validos.
If Not IsEmpty(Celda) And NombreUnico And NombreValido Then
Worksheets.Add(After:= _
Worksheets(Worksheets.Count)).Name = Celda.Value
End If
Next Celda
'Procedemos a ordenar las hojas alfabeticamente.
For Desp = 2 To Worksheets.Count
For Ant = Desp To Worksheets.Count
If UCase(Worksheets(Ant).Name) < _
UCase(Worksheets(Desp).Name) Then _
Worksheets(Ant).Move Before:=Worksheets(Desp)
Next
Next
'volvemos a la hoja principal.
Worksheets("Carpetas archivo").Activate
End With
End Sub
'------Fin Codigo-------
Post by Aprendiz
Saludos KL
Te agradezco los links, pero están en inglés y todavía estoy un poco verde
para entender código.
Te pediría que para ayudarme, me escribieras un código para realizar lo
En un libro "Archivo general", la primera hoja se llama "Carpetas archivo",
y en la celda A1 y sucesivas A2, A3, etc.. estoy escribiendo el nombre de
las siguientes hojas del libro.... solo necesito escribir en las pestañas
(hojas del libro) que todavia no se han creado, dichos nombres mediante
código VBA. Gracias
José Rafael
Post by unknown
Aprendiz,
Para ejemplos de codigo podrias consultar estos links (mirate bien el hilo
entero)
Saludos,
KL
http://groups.google.es/groups?hl=es&lr=&frame=right&th=513414872baba1e5&seekm=cbqd36%243dt2%40imsp212.netvigator.com#link2
http://groups.google.es/groups?hl=es&lr=&frame=right&th=c42262ba9c05022f&seekm=%230L0GQUfDHA.3324%40TK2MSFTNGP11.phx.gbl#link2
http://groups.google.es/groups?hl=es&lr=&frame=right&th=c57ba2c2ea4953f5&seekm=%23OqgynsuEHA.3352%40tk2msftngp13.phx.gbl#link2
Post by unknown
Post by Aprendiz
Post by unknown
Post by Aprendiz
De todas maneras necesito una base de código para sobre ella modificarlo
hasta conseguir lo que necesito, que no sé explicarlo mejor. Para mí
es
Post by unknown
Post by Aprendiz
Post by unknown
Post by Aprendiz
mas
facil si tengo ese código básico que simplemente ponga nombre a
pestañas
de
un libro. Gracias de todos modos.
José Rafael
Post by Héctor Miguel
hola, José Rafael !
... codigo para crear carpetas en un directorio a elegir ???...
... cuyos nombres de carpetas (¿máximo nº de letras?) corresponden al
rango A1:A100 [...]
Post by Héctor Miguel
1.- revisa en la ayuda de vba acerca de las instrucciones: MkDir,
RmDir,
Post by unknown
Post by Aprendiz
Kill
Post by Héctor Miguel
2.- toma las debidas precauciones para que los nombres NO contengan
caracteres 'no validos'
Post by Héctor Miguel
3.- habra que 'validar' si algunos directorios 'ya existieran' [suponiendo
que el codigo sea 'repetible']
Post by Héctor Miguel
4.- revisa el siguiente enlace: http://tinyurl.com/5ords
si cualquier duda o informacion adicional... ¿comentas?
saludos,
hector.
KL
2004-12-23 21:27:01 UTC
Permalink
...te puedo decir que aprendo muchos de todas tus respuestas
incluída ésta.
pues mira, yo tambien cuando respondo o leo las respuestas de otros ;)
Felices fiestas.
Lo mismo digo!

KL

Continúe leyendo en narkive:
Loading...