Macro: función SI

Hola nuevamente, te comento la situación, en una de las dudas anteriores te pregunte lo de crear las hojas para los nombres nuevos que agregue a la lista.
Ahora tengo esta macro que la idea es que la haga andar para esos nombres nuevos que aparecen en la lista, y no para los que ya estaban. Por lo que entiendo debería hacer andar una función SI, en el que le indique que empiece a andar a partir de las hojas que no poseen datos en la página (no se como escribir esto). Ademas no se bien donde poner la función SI.
Copio a continuación la macro, necesitaría que me ayuden poniendo la función SI, y la condición, que vendría a ser que haga todo el funcionamiento si es que en la hoja no hay datos escritos. Gracias
Sub FillSheets1()
Dim fila As Integer
Dim Symbol As String
Dim TargetSheet As Worksheet
Dim SourceSheet As Worksheet
Set TargetSheet = ActiveWorkbook.Worksheets("WL")
Set SourceSheet = ActiveWorkbook.Worksheets("MON")
Dim cantidad As Integer
cantidad = TargetSheet.Cells(1, 1).Value
For fila = 2 To cantidad + 1
Symbol = TargetSheet.Cells(fila, 1).Value
Set SourceSheet = ActiveWorkbook.Worksheets(Symbol)
Sheets(Symbol).Select
Range("a1:x1000").ClearContents
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://moneycentral.msn.com/investor/invsub/results/statemnt.aspx?symbol=" & Symbol _
, Destination:=Range("$A$3"))
.Name = "statemnt.aspx?symbol=" & Symbol
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "6"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Next fila
End Sub

1 respuesta

Respuesta
1
No entiendo tu pregunta. La macro que te hice efectivamente funcionaba para cuando agregas un nombre nuevo, porque me indicaste que ya tenías hojas creadas para los nombres que ya tenías. Esa macro miraba los cambios en la lista de nombres y generaba las hojas.
Lo que quieres ahora ¿es qué hagas cambios y compruebe que la hoja no exista ya? Creo que debieras haberlo dicho antes, pero bueno...
Para ello tienes que leer la lista de nombres de hojas existentes (están en la propiedad "name" de cada elemento de la colección de hojas. Puedes recorrerlos usando la sentencia for each sobre las hojas del libro.
Una vez tienes la lista tendrás que ir comparando uno a uno cada nombre con todos los de tu lista y hacer lo que necesites.
Otra opción ya que veo que la lista de nombres la sacas de otro sitio, es colocar esa lista en hoja o columna a parte y compararla con la que usamos para crear hojas. Solo se añaden nombres a ls lista cuando no estaban ya. De esa manera la macro que te hice funcionará.
Entienod que te manejas con macros y cualquiera de las dos opciones no te resultará difícil de implementar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas