No funciona mi bucle for

Hola gente, antes de nada daros las gracias por este foro que sirve de mucha ayuda para gente para solucionar las dudas que puedan existir.
A ver mi caso es el siguiente:
Tengo una hoja en excel en la cual tengo una serie de datos:
Columna A con nombre, la B con ciudades y C con edades.
Todo ello en el rango A1:C6 de la hoja2.
Bien el caso es que si el nombre es igual a un valor quiero que me lo copie en la hoja 3 columna A fila 1.
Para ello coloqué una macro con un bucle for, es la siguiente:
Private Sub CommandButton1_Click()
'Defino las variables
Dim nomre As String
Dim ciudad as String
Dim edad as Double
'Empieza a dar vueltas el bucle y coloco en una variable el valor de cada celda
For i = 1 To 7
nombre = Cells(i, 1)
ciudad=cells(i,2)
edad=cells(i,3)
'Si el nombre es igual a Miriam, entonces
   If nombre = "Miriam" The
'Copia en la hoja 3 la fila correspondiente.
     Sheets("Hoja3").Select
     Cells(i, 1) = nombre 'El nombre en la celda A1
      cells(i,2)=ciudad 'La ciudad en A2
      cells(i,3)=edad 'La edad en A3
'Vuelve a la hoja2
    Sheets("Hoja2").Select
   End If
'Cpmtinua buscando
Next i
End Sub
Alguien tiene alguna idea de porque no funciona.
La hoja no tiene títulos ni nada y esta todo bien escrito que yo sepa.
Muchas gracias y espero vuestra respuesta.
Saludos.

1 Respuesta

Respuesta
1
Tienes un error muy simple.
En la línea - If nombre = "Miriam" The - debe decir Then
Si, la macro está bien escrita no me da ningún error, pero el problema es que no me copia los datos
Private Sub CommandButton1_Click()
'Defino las variables
Dim nomre As String
Dim ciudad as String
Dim edad as Double
'Empieza a dar vueltas el bucle y coloco en una variable el valor de cada celda
For i = 1 To 7
nombre = Cells(i, 1)
ciudad=cells(i,2)
edad=cells(i,3)
'Si el nombre es igual a Miriam, entonces
   If nombre = "Miriam" Then
'Copia en la hoja 3 la fila correspondiente.
     Sheets("Hoja3").Select
     Cells(i, 1) = nombre 'El nombre en la celda A1
      cells(i,2)=ciudad 'La ciudad en A2
      cells(i,3)=edad 'La edad en A3
'Vuelve a la hoja2
    Sheets("Hoja2").Select
   End If
'Cpmtinua buscando
Next i
End Sub
El caso es que estando bien escrita lo que me extraña es porque no me copia los datos que quiero que me copie.
¿Sabes si hay alguna otra forma para hacerlo automáticamente? El caso es que quiero adaptarla a un libro donde tengo 2980, registros.
Saludos.
Yo probé tu macro en un archivo y me copiaba perfectamente los datos. Déjame trabajar un archivo y te lo subo mañana durante el día.
Te mando el archivo que cumple todos tus requerimientos. Si tienes otro, favor en una pregunta nueva.
No olvides valorar la respuesta y finalizar la pregunta.
http://www.megaupload.com/?d=ECA0HOZC
Recuerda valorar la respuesta y finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas