Imprimir página | Cerrar ventana

completar hoja con valores no contenidos en otra

Impreso de: Foro de Access y VBA
Categoría: Otros de Microsoft: Windows y Office
Nombre del foro: Excel
Descripción del foro: Foro de Excel y VBA de Excel
URL: http://www.mvp-access.com/foro/forum_posts.asp?TID=86707
Fecha de impresión: 26/Marzo/2026 a las 18:44


Tema: completar hoja con valores no contenidos en otra
Publicado por: acilu
Asunto: completar hoja con valores no contenidos en otra
Fecha de publicación: 01/Junio/2023 a las 13:52
Quiero completar una columna de valores con aquellos que figuran en otra columna de otra hoja y que no están en la primera.
lo mas que se me ocurre es esto, pero no me funciona:
------------------------------------------------------------------
Sub rellenarinexistentes()
Dim f As Integer
Dim muni As Integer
'cuento las filas de la hoja "estadistica" y me situo en la ultima fila
Worksheets("estadistica").Activate
Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
r = ActiveCell.Row
'paso a la tabla "municipios" para recorrerlos uno a uno y ver los faltan en "estadistica" y añadirlos
Worksheets("municipios").Activate
f = 2
 
    Do Until ActiveSheet.Cells(f, 1) = ""

'aqui es donde se para por "no coinciden los tipos"
        If Application.VLookup("municipios!A" & f & ", estadistica!B2:"& r &", 1, False) = False Then
    muni = municipios.ActiveCell.Value
        estadistica.ActiveCell.Value = muni
        estadistica.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select

            End If
f = f + 1
 
Loop
End Sub

¿Alguien me puede ayudar a descubir mi error?



Respuestas:
Publicado por: lbauluz
Fecha de publicación: 02/Junio/2023 a las 18:14
Prueba así:

If (Application.VLookup("municipios!A" & f, "estadistica!B2:" & r, 1, False)) = False Then

Un saludo.

Luis


-------------
El Búho es un pajarraco


Publicado por: acilu55
Fecha de publicación: 02/Junio/2023 a las 22:24
sigue dando 
error 13 en tiempo de ejecución 
no coinciden los tipos
el cado es que poniendo en una celda 
=BUSCARV(municipios!$A1;Estadistica!B:B;1;FALSO) da el resultado correcto, es decir el valor donde esta y #N/D donde no existe el valor.
En Acces si consigo hacerlo pero me cambia el formato de las tablas lo que es un engorro, pero para salir del paso por ahora me vale, seguiré haciendo pruebas  en excel, porque no encuentro el error


-------------
Gracias a todos de antemano


Publicado por: AnSanVal
Fecha de publicación: 05/Junio/2023 a las 20:59

Prueba con este otro código:

Sub RellenaFaltantes()
  Dim celda As Range, filaM·U&, filaE&
  Worksheets("Municipios").Activate
  filaM·U = Cells(Rows.Count, 1).End(xlUp).Row
  With Worksheets("Estadística")
    filaE = .Cells(Rows.Count, 1).End(xlUp).Row + 1
    For Each celda In Range("A2:A" & filaM·U).Cells
'Compruebo con BUSCARX que (si no existe) no devuelve error.
      If WorksheetFunction.XLookup(celda.Value, .Range("A2:A" & _
          filaE - 1), .Range("A2:A" & filaE - 1), "") = "" Then
        .Cells(filaE, 1).Value = celda.Value
        filaE = filaE + 1
      End If
    Next celda
  End With
End Sub


ADITADO: Aquí supongo que los municipios están (en ambas hojas) a partir de A2 (títulos en A1).





-------------
Saludos desde Tenerife.


Publicado por: acilu55
Fecha de publicación: 21/Febrero/2024 a las 19:14
perfecto: podeis cerrar el hilo que ya funciona

-------------
Gracias a todos de antemano



Imprimir página | Cerrar ventana