Como se puede usar un valor de una celda dentro de una macro

21/04/2004 - 16:34 por Geronimo | Informe spam
hola como estan, tengo una duda que es la siguiente
Tengo un libro dentro del cual tengo varias hojas, cada una de estas hojas
tiene el nombre de una persona, el problema que tengo es el siguiente:
como puedo ordenar los nombres de cada hoja de manera alfabetica.
Pense en lo siguiente:
usar una hoja extra en la cual estara almacenado el nombre de la persona y
el nombre de la hoja, con la funcion buscar encuentro el nombre de la
persona el cual me va arrojar el nombre de la hoja pero como le digo a la
macro con la instruccion sheets que agarre el valor de la celda donde esta
arrojando el resultado
Sheets("Hoja1").Select <- asi esta
sheets(que debo de poner aqui).Select

O si alguien sabe otra manera de hacerlo se agradeceria

Saludos

Preguntas similare

Leer las respuestas

#1 Cesar Zapata
21/04/2004 - 17:33 | Informe spam
Aqui te mando el codigo de Chip Pearson. Pon esto en el VBE.


Sub SortWorksheets()

Dim N As Integer
Dim M As Integer
Dim FirstWSToSort As Integer
Dim LastWSToSort As Integer
Dim SortDescending As Boolean

SortDescending = False

If ActiveWindow.SelectedSheets.Count = 1 Then
FirstWSToSort = 1
LastWSToSort = Worksheets.Count
Else
With ActiveWindow.SelectedSheets
For N = 2 To .Count
If .Item(N - 1).Index <> .Item(N).Index - 1 Then
MsgBox "You cannot sort non-adjacent sheets"
Exit Sub
End If
Next N
FirstWSToSort = .Item(1).Index
LastWSToSort = .Item(.Count).Index
End With
End If

For M = FirstWSToSort To LastWSToSort
For N = M To LastWSToSort
If SortDescending = True Then
If UCase(Worksheets(N).Name) > UCase(Worksheets(M).Name) Then
Worksheets(N).Move Before:=Worksheets(M)
End If
Else
If UCase(Worksheets(N).Name) < UCase(Worksheets(M).Name) Then
Worksheets(N).Move Before:=Worksheets(M)
End If
End If
Next N
Next M

End Sub





Geronimo wrote:

hola como estan, tengo una duda que es la siguiente
Tengo un libro dentro del cual tengo varias hojas, cada una de estas hojas
tiene el nombre de una persona, el problema que tengo es el siguiente:
como puedo ordenar los nombres de cada hoja de manera alfabetica.
Pense en lo siguiente:
usar una hoja extra en la cual estara almacenado el nombre de la persona y
el nombre de la hoja, con la funcion buscar encuentro el nombre de la
persona el cual me va arrojar el nombre de la hoja pero como le digo a la
macro con la instruccion sheets que agarre el valor de la celda donde esta
arrojando el resultado
Sheets("Hoja1").Select <- asi esta
sheets(que debo de poner aqui).Select

O si alguien sabe otra manera de hacerlo se agradeceria

Saludos


Respuesta Responder a este mensaje
#2 Servando
21/04/2004 - 19:05 | Informe spam
Geronimo:

Te mando este Procedimiento para ordenar las hojas
alfabeticamente

Sub OrdenarHojas()

Dim wksH As Worksheet
Dim mtrHojas() As String
Dim intBucle As Integer
Dim blnOrdenado As Boolean
Dim strCambio As String

ReDim mtrHojas(1 To ThisWorkbook.Worksheets.Count)

For Each wksH In ThisWorkbook.Worksheets
mtrHojas(wksH.Index) = wksH.Name
Next

Do
blnOrdenado = True
For intBucle = 1 To UBound(mtrHojas) - 1
If mtrHojas(intBucle) > mtrHojas(intBucle + 1) Then
strCambio = mtrHojas(intBucle)
mtrHojas(intBucle) = mtrHojas(intBucle + 1)
mtrHojas(intBucle + 1) = strCambio
blnOrdenado = False
Exit For
End If
Next intBucle
If blnOrdenado Then Exit Do
Loop
For intBucle = UBound(mtrHojas) To LBound(mtrHojas) Step -
1
Sheets(mtrHojas(intBucle)).Move before:=Sheets(1)
Next intBucle

Set wksH = Nothing

End Sub

Saludos
Servando Villalon

hola como estan, tengo una duda que es la siguiente
Tengo un libro dentro del cual tengo varias hojas, cada


una de estas hojas
tiene el nombre de una persona, el problema que tengo es


el siguiente:
como puedo ordenar los nombres de cada hoja de manera


alfabetica.
Pense en lo siguiente:
usar una hoja extra en la cual estara almacenado el


nombre de la persona y
el nombre de la hoja, con la funcion buscar encuentro el


nombre de la
persona el cual me va arrojar el nombre de la hoja pero


como le digo a la
macro con la instruccion sheets que agarre el valor de


la celda donde esta
arrojando el resultado
Sheets("Hoja1").Select <- asi esta
sheets(que debo de poner aqui).Select

O si alguien sabe otra manera de hacerlo se agradeceria

Saludos


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida