Muy buenas gente!! Muchisimas gracias por vuestra ayuda! La verdad es que me habeis ayudado mogollón! He ido mejorando el excel poco a poco y me ha surgido una duda pequeña... En la factura que hay en la segunda pestaña ("Hoja2"), tengo que separar lo que son ACCESORIOS REQUERIDOS y ACCESORIOS OPCIONALES... - Por una parte me gustaría que me preguntara si el accesorio es opcional o no cada vez que hago click en la casilla de control de formulario. De la manera que lo he hecho yo, me pregunta todo al final y es imposible saber de que celda o accesorio me esta hablando. En caso de que no sea posible la opción en la que me el programa me pregunte cada vez que hago click en la casilla, hay alguna manera en la que el texto que aparece en el cuadro del mensaje se modifique dependiendo la celda?
- Me da un error 400 y la verdad es que no se donde tengo el error o que es lo que falla...
Esto es lo que he hecho yo:
Sub FACTURA() Dim n As Long Dim m As Long Dim v As Long Dim Fila As Long Dim Pregunta As String Dim ACC As Long Dim ACC_O As Long m = 1 n = m + 2 v = 2 Worksheets("Hoja2").Range("A3") = "ACCESORIOS OPCIONALES" Worksheets("Hoja2").Range("A1") = "ACCESORIOS NORMAL" Worksheets("Hoja2").Range("A2") = "TOTAL ACCESORIOS NORMAL" Sheets("Hoja1").Select Worksheets("Hoja2").Range("A2:A10").Clear Worksheets("Hoja2").Range("B2:B10").Clear For v = 2 To Range("A" & v).End(xlDown).Row If Range("A" & v).Value = True Then Pregunta = MsgBox("Es un Accesorio Opcional?", vbYesNo + vbQuestion, "ACCESORIOS") If Pregunta = vbNo Then ACC = Worksheets("Hoja2").Range("A" & m).Value Worksheets("Hoja2").Cells(ACC, 1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow m = m + 1 Worksheets("Hoja2").Range("A" & m).Value = Range("C" & v).Value Worksheets("Hoja2").Range("B" & m).Value = Range("D" & v).Value Else ACC_O = Worksheets("Hoja2").Range("A" & n).Value Worksheets("Hoja2").Cells(ACC_O, 1).EntireRow.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow n = n + 1 Worksheets("Hoja2").Range("A" & n).Value = Range("C" & v).Value Worksheets("Hoja2").Range("B" & n).Value = Range("D" & v).Value End If Else v = v + 1 End If Next v MsgBox "Done!" End Sub
He seguido con la respuesta que vosotros me habeis dicho pero he hecho unas modificaciones: v= es el valor de todos los accesorios que aparecen en la primera pestaña m= es el valor donde irán añadiendo todos los accesorios necesarios n= es el valor de la celda donde irán todos los accesorios opcionales.
Los accesorios irán uno detras de otro pero luego, como bien se puede ver al princípio, entre los accesorios requerido y accesorios opcional iran varios títulos.
Espero haberme explicado bien...Que tengais un buen dia!
|