Poradí mi prosím někdo funkci, která by zkombinovala data z ,,Listu1" a ,,Listu2" bez duplicit na ,,List3". Na ,,Listu3" by tedy měly být uvedeny všechny data, které se vyskytly na jakémkoli listu (List1 a List2) a to bez duplicit.
Kdykoliv, kdy napíšu něco do 1. nebo 2. listu, tak se mi to promítne na 3. list a budou tam pouze originální (ne duplicitní) hodnoty. Všechno bude automatizované a pro libovolný počet položek.
Děkuju :)
zkombinování dat bez duplicit
zkombinování dat bez duplicit
- Přílohy
-
- Sešit1.xlsx
- (10.61 KiB) Staženo 23 x
-
- Sešit1.xlsx
- (10.61 KiB) Staženo 19 x
Re: zkombinování dat bez duplicit
Poněkud nejasné zadání a proto dlouho bez odpovědi.
Na ukázku:
pracuje při změně dat na List1 nebo List2 pouze ve sloupci A - sledovat celé listy by bylo poněkud komplikovanější.
Do modulu sešitu (obvykle ThisWorkbook) vložte
Na ukázku:
pracuje při změně dat na List1 nebo List2 pouze ve sloupci A - sledovat celé listy by bylo poněkud komplikovanější.
Do modulu sešitu (obvykle ThisWorkbook) vložte
Kód: Vybrat vše
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Const sDEL As String = "#"
Dim bActualize As Boolean
bActualize = Sh.Name = List1.Name And Target.Column = 1
If Not bActualize Then
bActualize = Sh.Name = List2.Name And Target.Column = 1
End If
If bActualize Then
With List3.Cells(1)
.CurrentRegion.Columns(1).ClearContents
Dim sVals As String
sVals = Join(Application.Transpose(List1.UsedRange.Columns(1).Value), sDEL)
sVals = sVals & sDEL & Join(Application.Transpose(List2.UsedRange.Columns(1).Value), sDEL)
With .Resize(Len(sVals) - Len(Replace(sVals, sDEL, vbNullString)) + 1, 1)
.Value = Application.Transpose(Split(sVals, sDEL))
.RemoveDuplicates Columns:=1, Header:=xlNo
.Sort Key1:=.Cells(1), Header:=xlNo, SortMethod:=xlPinYin
End With '.Resize(Len(sVals) - Len(Replace(sVals, sDEL, vbNullString)) + 1, 1)
End With 'List3.Cells(1)
End If
End Sub
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 7 hostů