Macro con IF y Then

alexoigres

Board Regular
Joined
Dec 2, 2005
Messages
184
Hola a todos

Tengo un problema con un macro que quiero crear y nadie me ha podido ayudar. No tengo mucho experiencia en Macros por lo cual les pido sean un poco de pacientes con mis preguntas. A lo mejor y es algo simple pero pues para mi es algo que no he podido lograr y muchas personas en el foro de ingles tampoco han logrado hacerlo...

Mi caso es:

Tengo un archivo en excel con un macro ya corriendo a la perfieccion, pero quiero agregar un modulo nuevo para que tener dos macros en el mismo archivo de excel....

Lo que quiero es que el macro pueda distinguir una celda y si la celda concuerda con la funcion entonces borre alguna informacion....
Este es mi intento de Codigo:

Code:
Option Explicit
Dim bookCode As String
 
Sub FormatRPO()
 
Dim LastRow As Long
Dim iRow As Long
 
LastRow = Range("C65536").End(xlUp).Row
 
For iRow = 2 To LastRow
bookCode = Cells(iRow, "C")
GENNPO
Next iRow
msgbox "Format RPO Complete"
End Sub
 
Private Sub GENNPO()
 
If (InStr(bookCode, "RJ") <> 0) Then
Call RPORJ
 
End If
 
End Sub
 
 
Private Sub RPORJ()
 
Call RPO1
 
End Sub
 
Private Sub RPO1()
 
With Columns("AK")
.Replace What:="02L", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows
End With
End Sub
******************
Lo que quiero es que si tengo RJ en la columna C llame a RPORJ, para que borre el codigo "02L" de la columna AK.

Se que suena facil pero este es sola la idea ya que tengo RT,2T, RV etc y cada uno de ellos tienen como 1000 codigos que debo borrar.

Tengo un archivo nuevo cada semana por lo que me gustaria crear un macro solo para eliminarlos en un instante y asi ahorrarme mucho trabajo

Muchas Gracias por la ayuda

SG
 
Last edited by a moderator:

Excel Facts

Difference between two dates
Secret function! Use =DATEDIF(A2,B2,"Y")&" years"&=DATEDIF(A2,B2,"YM")&" months"&=DATEDIF(A2,B2,"MD")&" days"
¿Siempre hay que buscar "RJ" en la columna C:C y donde encontrado, reemplazar código "XYZ" en columna AK con ""? ¿O es que hay parejas como?
  • "buscar «RJ» en C:C y reemplazar (borrar) los «02L» en AK"
  • "buscar «RT» en C:C y reemplazar (borrar) los «2T» en AK"
  • "buscar «RV» en C:C y reemplazar (borrar) los «ABC» en AK"
 
Last edited:
Upvote 0
Hola Greg,

Mira en mi columna C siempre voy a tener o RJ, o RV, o 2T, o RT puedo tener 100 renglones de RJ y uno de 2T depende mucho del archivo o puedo tener 100 de cada uno... o solamente 200 de un solo codigo...com decia antes puede variar.

Lo que yo quiero eliminar esta en mi columna "AK" y en la columna tengo algo asi:

&EXP&RHD&A32&DG2&5QD&W6N&81I-B19/L91

De este renglon quiero eliminar algunos codigos por ejemplo:

Si tengo en mi columna "C" el codigo RT entonces quiero eliminar W6N
y quiero que me quede asi:

&EXP&RHD&A32&DG2&5QD&81I-B19/L91

Pero asi como quiero eliminar W6N de RT hay otros 900 que tambien tengo que eliminar. Al igual tengo que eliminar codigos diferentes para RV,RJ y 2T.

Mi otro problema que me di cuenta es que necesito eliminar el simbolo que esta antes del codigo, a veces puedo tener &W6N o /W6N...... estos codigos estan divididos en positivos y negativos y mi problema es que si corro el macro y elimina el simbolo antes del codigo, cuando este sea negativo por ejemplo -B19... si lo quiero eliminar el codigo /L91 pasaria al lado de los positivos... ya que elimine el codigo -B19 con si simbolo negativo....

Alguna idea o sugerencia?
Espero y puedas ayudarme la verdad...

Debe existir una forma de hacer esto mas facil por que yo tenia pensado escribir esto tres veces... una para simbolos con / y otra para simbolo con & y otra para que solo quitara el codigo.
Code:
.Replace What:="/02L", Replacement:="", LookAt:=xlPart, _ 
        SearchOrder:=xlByRows 
.Replace What:="&02L", Replacement:="", LookAt:=xlPart, _ 
        SearchOrder:=xlByRows 
.Replace What:="02L", Replacement:="", LookAt:=xlPart, _ 
        SearchOrder:=xlByRows

Ahora imaginate que tengo 1000 para RJ, otros mil para RV etc... mi macro seria enorme.

MUCHAS GRACIAS
 
Last edited by a moderator:
Upvote 0
Si todo me va bien hoy en el trabajo tal vez tenga un poco de tiempo para pensar en esto. ¿Me puede hacer un favorcito y copiar una muestra de unos treinta o cuarenta ringlones de datos para usar en pruebas/desarrollo?
 
Upvote 0
te puedo enviar el archivo en excel el cual estoy usando con unas 30 rengolnes de informacion....

pero no encuentro a que mail enviarlo....me dices a que mail te lo puedo mandar?

Lo que pasa es que hacer copy paste aqui de un renglon va hacer que se pierda el formato

Saludos y gracias de antemano

SG
 
Upvote 0
Bueno, aquí en la parte inferior de cada discusión hay un vínculo que dice «Colo's HTML Maker utility for displaying your Excel Worksheet on the board.» Un ejemplo de lo que hace HTML Maker
Lists of Special Program Parts.xls
ABCD
1Part NumberProgramFlag
2A1603611AOptical BlockTRUE
3A1603624AOptical BlockTRUE
4A1606006AOptical BlockTRUE
5A1606008AOptical BlockTRUE
6A1606010AOptical BlockTRUE
7A1606039AOptical BlockTRUE
Special Program Parts


También en el foro para preguntas en inglés hay un «sticky» que dice «Recommended Add-ins and Links». Si sigue el vínculo, se ve otro vínculo para ASAP Utilities. ASAP Utilities también ofrece una herramienta para convertir celdas a HTML para poner aquí. Pero si usa ASAP, vea lo que escribí aquí que es una rutina para suprimir líneas en el HTML. Sin hacer eso se pone demasiados líneas en blanco.

Un ejemplo de lo que hace ASAP:<table width="200" border="1" bordercolor="#C0C0C0" bordercolordark="#FFFFFF" cellspacing="0" cellpadding="2"><tr valign="top" style="white-space:nowrap;"><th align="center" valign="bottom"><font face="Monospace" size="1"Part Number</font></th><th align="center" valign="bottom"><font face="Monospace" size="1"Program</font></th><th align="center" valign="bottom"><font face="Monospace" size="1"Flag</font></th></tr><tr valign="top" style="white-space:nowrap;"><td align="center" valign="bottom"><font face="Monospace" size="1">A1603611A</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">Optical Block</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">TRUE</font></td></tr><tr valign="top" style="white-space:nowrap;"><td align="center" valign="bottom"><font face="Monospace" size="1">A1603624A</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">Optical Block</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">TRUE</font></td></tr><tr valign="top" style="white-space:nowrap;"><td align="center" valign="bottom"><font face="Monospace" size="1">A1606006A</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">Optical Block</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">TRUE</font></td></tr><tr valign="top" style="white-space:nowrap;"><td align="center" valign="bottom"><font face="Monospace" size="1">A1606008A</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">Optical Block</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">TRUE</font></td></tr><tr valign="top" style="white-space:nowrap;"><td align="center" valign="bottom"><font face="Monospace" size="1">A1606010A</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">Optical Block</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">TRUE</font></td></tr><tr valign="top" style="white-space:nowrap;"><td align="center" valign="bottom"><font face="Monospace" size="1">A1606039A</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">Optical Block</font></td><td align="center" valign="bottom"><font face="Monospace" size="1">TRUE</font></td></tr></table>


Sería mejor poner los datos aquí por que asi cualquier otro también puede ayudarle, no solamente yo.
 
Upvote 0
Sorry I can't Remove the blanck space..... i've been trying all day..... : (
Can you tell me what to do to remove it...
Thanks
*********************
*************************
******************************
BORRE ESTE CODIGO Y LO VOY A TRATAR DE HACER DE NUEVO SOLO PEGANDO COLUMNAS C Y AK.... GRACIAS POR TODO Y PERDON LA MOLESTIA
SG
 
Upvote 0
Bueno, mejor editar ese post para que no contenga nada y vaya a la salón de pruebas hasta que aprende como hacer lo bien.

El problem viene de los "line feeds" que hace ASAP. Por ejemplo, para formar el siguiente:

<table width="200" border="1" bordercolor="#C0C0C0" bordercolordark="#FFFFFF" cellspacing="0" cellpadding="2"> <tr valign="top" style="white-space:nowrap;"> <th bgcolor="#CCFFCC" valign="bottom"><font face="Monospace" size="1"Part Nbr</font></th> <th bgcolor="#CCFFCC" valign="bottom"><font face="Monospace" size="1"Part Desc</font></th> </tr> <tr valign="top" style="white-space:nowrap;"> <td valign="bottom"><font face="Monospace" size="1">A1058689A</font></td> <td valign="bottom"><font face="Monospace" size="1">Q BOX ASSY ’AUTH NEEDED’</font></td> </tr> <tr valign="top" style="white-space:nowrap;"> <td valign="bottom"><font face="Monospace" size="1">A1348038A</font></td> <td valign="bottom"><font face="Monospace" size="1">D COMPLETE</font></td> </tr></table>

ASAP va a escribir:
Rich (BB code):
<table width="200" border="1" bordercolor="#C0C0C0"  bordercolordark="#FFFFFF" cellspacing="0" cellpadding="2">
   <tr valign="top" style="white-space:nowrap;">
     <th bgcolor="#CCFFCC" valign="bottom"><font face="Monospace" size="1"Part Nbr</font></th>
     <th bgcolor="#CCFFCC" valign="bottom"><font face="Monospace" size="1"Part Desc</font></th>
   </tr>
   <tr valign="top" style="white-space:nowrap;">
     <td valign="bottom"><font face="Monospace" size="1">A1058689A</font></td>
     <td valign="bottom"><font face="Monospace" size="1">Q BOX ASSY ’AUTH NEEDED’</font></td>
   </tr>
   <tr valign="top" style="white-space:nowrap;">
     <td valign="bottom"><font face="Monospace" size="1">A1348038A</font></td>
     <td valign="bottom"><font face="Monospace" size="1">D COMPLETE</font></td>
   </tr>
</table>

El problema es que el software de MrExcel.com quiere hacer una línea nueva por cada "line feed" entonces hay que suprimir esos caracteres para que el text se ve asi:
Rich (BB code):
<table width="200" border="1" bordercolor="#C0C0C0"  bordercolordark="#FFFFFF" cellspacing="0" cellpadding="2">   <tr valign="top" style="white-space:nowrap;">     <th bgcolor="#CCFFCC" valign="bottom"><font face="Monospace" size="1"Part Nbr</font></th>     <th bgcolor="#CCFFCC" valign="bottom"><font face="Monospace" size="1"Part Desc</font></th>   </tr>   <tr valign="top" style="white-space:nowrap;">     <td valign="bottom"><font face="Monospace" size="1">A1058689A</font></td>     <td valign="bottom"><font face="Monospace" size="1">Q BOX ASSY ’AUTH NEEDED’</font></td>   </tr>   <tr valign="top" style="white-space:nowrap;">     <td valign="bottom"><font face="Monospace" size="1">A1348038A</font></td>     <td valign="bottom"><font face="Monospace" size="1">D COMPLETE</font></td>   </tr></table>

Si usted copia la rutina en ese vínculo que proveí arriba al cuaderno en uso o a su cuarderno Personal.xls (si tiene uno) una vez de correr la utilidad de ASAP, haces Ctrl+F8 y corres ese otra macro mío. [Note que para que funcione el macro mío, se necesita una referencia a la biblioteca de Forms. La manera más fácil de hacer eso es interar un UserForm al proyecto y después suprimir el UserForm. La referencia a Forms siempre queda en el proyecto. O se puede hacer a mano en el VBE con Tools | References... y hacer un cheq para Microsoft Forms 2.0 Object Library.]
 
Upvote 0
Otro comentario... para poder ayudarle mejor con hacer pruebas mejor copiar solamente el contenido de columnas C y AK a otra hoja y pegar eso aquí. No necesitaríamos los datos de todos esas otras columnas.
 
Upvote 0
EJEMPLOS

Aqui pongo los ejemplos de mas o menos algunos codigos...Espero y me puedas ayudar con alguna idea.... gracias...

<table border="1" bordercolor="#C0C0C0" bordercolordark="#FFFFFF" cellspacing="0" cellpadding="2"> <tr> <th valign="bottom"><font face="Tahoma" size="2"><nobr>book_cd</nobr></font></th> <th align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>GM_OPT</nobr></font></th> </tr> <tr> <td align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>RJ</nobr></font></td> <td align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>&L79&MG4/MLK&NQT/NQP/NT2-L91</nobr></font></td> </tr> <tr> <td align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>RJ</nobr></font></td> <td align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>&L79&MG4/MLK&NT3</nobr></font></td> </tr> <tr>
<td align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>2T</nobr></font></td> <td align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>&L79&MG4/MLK-E09&L51</nobr></font></td> </tr> <tr> <td align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>RV</nobr></font></td> <td align="center" valign="bottom"><font face="Tahoma" size="2"><nobr>&L79/L34&MG4/MLK/MFE</nobr></font></td>
</tr> </table>
 
Upvote 0

Forum statistics

Threads
1,223,958
Messages
6,175,637
Members
452,663
Latest member
MEMEH

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top