Necesito filtrar por criterios desde un userform




Tengo este código:

Sub CrearReporte()

Dim wblibroactual As Workbook  
Dim wshojaactual As Worksheet  
Dim rangodatos As Range  
Dim ufila As Long  
Dim wblibronuevo As Workbook  
Dim criterio As String  
Dim campo As Integer

Set wblibroactual = Workbooks(ThisWorkbook.Name)  
Set wshojaactual = wblibroactual.ActiveSheet

Set rangodatos = wshojaactual.UsedRange


'Definimos el valor del criterio

rangodatos.AutoFilter field:=1, Criteria1:="tema 5"

ufila = wshojaactual.Range("A" & Rows.Count).End(xlUp).Row

'Copiar datos de filtro  
wshojaactual.Range("A1:G" & ufila).Copy

Set wblibronuevo = Workbooks.Add  
wblibronuevo.ActiveSheet.Paste

Application.CutCopyMode = False

Windows(wblibroactual.Name).Activate  
wshojaactual.Range("A1").Select  
Selection.AutoFilter

End Sub

Y necesito que los criterios de filtrado los tome de 2 textbox de un userform, osea que en esta línea de código:

rangodatos.AutoFilter field:=1, Criteria1:="tema 5"

El 1 sea reemplazado por lo que ingrese en un textbox del formulario y "tema5" también.
ya intentaste rangodatos.AutoFilter field:=textbox1.text, Criteria1:=textbox2.text?
yo tenía exactamente el mismo requisito. yo tenía mi propio usuario y la función de esquema y no desean migrar a la asp.net membresía esquema pero yo quería usar el asp.net mvc filtros de acción para la comprobación de autorización y las funciones. tuve que hacer una buena cantidad de cavar para encontrar exactamente lo que necesita ser hecho, pero al final fue relativamente fácil. me voy a ahorrar la molestia y diré lo que he hecho. 1) he creado una clase que deriva de sistema.de la web.de seguridad.membershipprovider. membershipprovider tiene un montón de métodos abstractos para todo tipo de autenticación relacionados con funciones como olvidé mi contraseña, cambiar contraseña, crear un nuevo usuario, etc. todo lo que quería era la capacidad de autenticar contra mi propio esquema. así que mi clase contenida principalmente vacía anula. acabo de anuló validateuser: public override bool validateuser(string username, string password) { if (string.isnullorwhitespace(username) || string.isnullorwhitespace(password)) return false; string hash = encryptpassword(password); user user = \_repository.getbyusername(username); if (user == null) return false; return user.password == hash; } 2) he creado una clase que deriva de sistema.de la web.de seguridad.roleprovider. de nuevo, yo sólo había vacío implementaciones para toda la pelusa no me necesita, como la creación y el cambio de roles. acabo de anuló dos métodos: public override string[] getrolesforuser(string username) { user user = \_repository.getbyusername(username); string[] roles = new string[user.role.rights.count + 1]; roles[0] = user.role.description; int idx = 0; foreach (right right in user.role.rights) roles[++idx] = right.description; return roles; } public override bool isuserinrole(string username, string rolename) { user user = \_repository.getbyusername(username); if(user!=null) return user.isinrole(rolename); else return false; } 3) luego he conectado a estas dos clases en mi web.config: eso es todo. el valor predeterminado de autorización de la acción de los filtros de utilizar estas clases. usted todavía tendrá que manejar la página de inicio de sesión y sesión. solo usar la autenticación de formularios de las clases para este como lo haría normalmente. hola compañera. 
felicidades por el esfuerzo. 
sobre tu consulta, podríamos mejorarla especificando el join que por default nos da el sistema, enlazando el encabezado y detalle del mismo documento: 
[imagen] 
por lo tanto, quedaría dela siguiente manera: 

select t0.docentry, t0.docnum, ‘los campos … amigos les comparto la solución:

si alguien conoce que valores se le puede poner al campo i\_sgfunct por que con la “c” te muestra el paso a paso del proceso.

observen:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/c/5/c5599222f216c73cbaa60eba0c4ce2d109725223.png "image")
[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/f/0/f068ab9b0e27a375b953093037dd8a7bd1072a30.png "image")
[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/d/4/d448f934275234f3c7f8757fb1d4963123777dc9.png "image")

paso 1:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/9/b/9bcdcb9a236d604a71fd0e56bc2ca844d5fc8f4b.png "image")

paso 2:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/e/8/e859f68266fadd858aca3fef5ad15782fd65df02.png "image")

paso 3:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/c/f/cf4eaa2b483c117668b07c17e8e93c6d503ef805.png "image")

paso 4:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/0/f/0f52f083bd907828651e6fe3c760eb3e7c6fb977.png "image")

paso 5:

[[image]](https://foros.consultoria-sap.com/uploads/db7262/original/3x/0/7/07422411c986279788cc7ce415eb5e8f266280b3.png "image")

paso… <p>sí.</p><pre><code>thisworkbook.refreshall </code></pre><p>o, si su versión de excel es lo suficientemente antigua,</p><pre><code>dim sheet as worksheet, pivot as pivottable for each sheet in thisworkbook.worksheets for each pivot in sheet.pivottables pivot.refreshtable pivot.update next next </code></pre> rodolfo aqu&iacute; ubicas lo que necesitas:<br/><a href='https://www.google.com.co/search?q=stk433-320+datasheet&amp;tbm=isch&amp;tbo=u&amp;source=univ&amp;sa=x&amp;ved=0ahukewji9b7w4phvahupziykhvh1c0uqsaqilw&amp;biw=1600&amp;bih=794#imgrc=hjmz4gkpm8petm:' rel='nofollow' target='\_blank'>https://www.google.com.co/search?q=stk433-320+datasheet&amp;tbm=isch&amp;tbo=u&amp;source=univ&amp;sa=x&amp;ved=0ahukewji9b7w4phvahupziykhvh1c0uqsaqilw&amp;biw=1600&amp;bih=794#imgrc=hjmz4gkpm8petm:</a> Aquí está la solución. Puede utilizar el siguiente código: 


```
context.Table.Where(x => x.Field1 > 0).Update(y => new Table { Field2 = y.Field2 + 1 });

```
  Espero que ayude. no cursor, mientras lazo, o por el usuario función necesaria.sólo necesito ser creativo con for xml y trayectoria.[nota: esta solución sólo funciona en sql 2005 y posteriores. pregunta original no ha especificado la versión en uso.]create table #yourtable ([id] int, [name] char(1), [value] int) insert into #yourtable ([id],[name],[value]) values (1,'a',4) insert into #yourtable ([id],[name],[value]) values (1,'b',8) insert into #yourtable ([id],[name],[value]) values (2,'c',9) select [id], stuff(( select ', ' + [name] + ':' + cast([value] as varchar(max)) from #yourtable where (id = results.id) for xml path(''),type).value('(./text())[1]','varchar(max)') ,1,2,'') as namevalues from #yourtable results group by id drop table #yourtable <p>añadir palabras clave a la barra de direcciones:</p><p>por ejemplo, puede configurar su navegador para buscar <code>bread</code> en stackoverflow.com simplemente escribiendo <code>so bread</code> en el omnibar.</p><p>haga esto haciendo clic derecho en la barra de búsqueda en el sitio web que busca comúnmente. puede hacer esto para el campo de búsqueda en <em> cualquier sitio web </em>.</p><p> <a href="https://i.stack.imgur.com/gfg0o.png"><img src="https://i.stack.imgur.com/gfg0o.png" alt="right click on the search bar"></a> </p><p>específicamente:</p><ol> <li>vaya al sitio que desea utilizar para buscar</li> <li>haga clic derecho en el cuadro de búsqueda que complete en su página (no en firefox)</li> <li>seleccione "agregar una palabra clave"</li> <li>ingrese la palabra clave que usará cuando desee buscar en ese sitio (por ejemplo: "así que")</li> </ol> vea este artículo <http://msdn.microsoft.com/en-us/library/bb738695.aspx> y <http://msdn.microsoft.com/en-us/library/bb386870.aspx> muestra acerca de la actualización con EF.   
 Y esta pregunta SO sobre ApplyCurrentValues: [ApplyCurrentValues en EF 4](https://stackoverflow.com/questions/2272325/applycurrentvalues-in-ef-4) para ver cómo trabajar con AppliCurrentValues. *Cattelan Piel En Italia Comedor 2019Lindos Sofá De Silla Magda rdoeCBx*Me da la impresión de que iterparse es lo que quieres. Mirando
la sección "Eventos de etiqueta selectiva" en [http://lxml.de/parsing.html](/parsing.html) parece que
eso te da lo que deseas:



```
context = etree.iterparse(xmlfile, tag="yourSubTree")
action, elem = context.next()
etree.iterwalk(elem, ...)...

```

Parece que XPath también podría funcionar, pero supongo que
XPath lee en todo el árbol antes de regresar, mientras que yo
esperaría que iterparse caminara solo hasta que tuviera una
coincidencia. Valdría la pena perfilar los dos enfoques.