Afisare date in coloanaC in functie de coloanele A si B

popa.catalin
Mesaje: 13
Membru din: Vin Oct 19, 2018 1:27 am

Afisare date in coloanaC in functie de coloanele A si B

Mesaj de popa.catalin » Mie Apr 15, 2020 10:02 pm

Buna seara.
Va rog ajutati-ma in urmatoarea problema: in coloana A am anumite coduri ~ 5000 de randuri. In coloana B am ~ 1000 coduri din coloana A. Ce vreau eu si nu reusesc, in coloana C sa imi fie afisate celelalte 4000 de coduri care nu sunt in coloana B.
Va multumesc anticipat

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Afisare date in coloanaC in functie de coloanele A si B

Mesaj de IPP » Joi Apr 16, 2020 8:11 am

Buna ziua

Atasat aveti spre testare o propunere folosind macro.
Obiectiv: generarea, pe coloana C din Sheet1 (a nu se redenumi daca nu doriti sa editati codul ulterior) a unei liste cu item-uri extrase de pe coloana A, cu conditia ca acestea sa nu se gaseasca pe coloana B.

Pentru a nu avea probleme, aveti grija ca pe coloanele A:C sa nu existe alte informatii decat cele necesare si codurile for fi scrise unele sub altele fara celule goale intre ele.

Am folosit codul:

Cod: Selectaţi tot

Sub ListItemNotExist()

'IPP - 16.04.2020

Dim sRange As Range
 Set sRange = Sheets("Sheet1").Range("A2:A" & Sheets("Sheet1").Range("A65536").End(xlUp).Row)
 
Dim fRange As Range
 Set fRange = Sheets("Sheet1").Range("B2:B" & Sheets("Sheet1").Range("B65536").End(xlUp).Row)

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual

Sheets("Sheet1").Range("C2:C65536").ClearContents

For Each c In sRange
 If Application.WorksheetFunction.CountIf(fRange, c) = 0 Then
  Sheets("Sheet1").Range("C65536").End(xlUp).Offset(1, 0).Value = c.Value
 End If
Next c

Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True

End Sub
Pentru testare: deschideti fisierul atasat, activati macro/continutul si rulati (eventual de la butonul albastru)

In alta ordine de idei, exista cel putin 2 variante fara macro:
-folosire formule de tip match sau vlookup si filtrare dupa eroarea de tip #N/A (sunt multe exemple pe acest forum) (urmata de copiere ca valori in alta parte a rezultatului
-folosire Power Query (cu generare automata a listei in alta parte si sub forma de table) daca folositi versiune de excel >=2010

IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Scrie răspuns

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”