Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1536to1540
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Anzeige

VBA Anzeige
02.02.2017 19:07:31
joe
Betreff: Tabellen vergleichen Level: VBA nur mit Recorder
Guten Tag:-)
in meiner Tabelle 1 stehen vom ganzen Lager der jeweilige Artikeltext.
Tabelle2
die Artikel die momentan Verfügbar sind.
Spalte C die nicht verfügbar sind.
In Tabelle 2 habe ich eine Formel drin.
A2=Index(A:A;2)
ich möchte aber nur die Artikel aufgelistet habe ,die verfügbar sind.
Also so. Tabelle 2 = (Tabelle1 gesamtArtkiel-Tabelle3 nichtVerfügbar )
Ist es verständlich? Wäre über VBA wichtig ( Schaltfläche)
https://www.herber.de/bbs/user/111113.xlsm
Danke an alle

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Anzeige
02.02.2017 22:30:17
KlausF
Hallo Joe,
logischerweise sollte Deine Grundartikelliste auch ALLE Artikel enthalten,
also auch die, die in "nicht verfügbar" stehen. Und Zitat: Spalte C die nicht verfügbar sind
muss sicherlich lauten: Tabelle3, die nicht verfügbar sind
Probier mal:
Sub ListenVergleich()
Dim wksAll As Worksheet
Dim wksYes As Worksheet
Dim wksNo As Worksheet
Set wksAll = Worksheets("Artikelgrundliste")
Set wksYes = Worksheets("verfügbar")
Set wksNo = Worksheets("nicht verfügbar")
Dim lastRowAll As Long
Dim lastRowYes As Long
Dim lastRowNo As Long
Dim i As Long
Dim a As Long
Dim strVergleich As String
Dim strArtikel As String
Application.ScreenUpdating = False
'Sheet "verfügbar" ab Zeile 3 löschen
lastRowYes = wksYes.Cells(Rows.Count, 1).End(xlUp).Row
If lastRowYes = 2 Then lastRowYes = 3
wksYes.Range("A3:C" & Cells(Rows.Count, 1).End(xlUp).Row).ClearContents
'Artikelliste nach "verfügbar" kopieren
lastRowAll = wksAll.Cells(Rows.Count, 1).End(xlUp).Row
wksAll.Range("A3:C" & lastRowAll).Copy Destination:=wksYes.Range("A3")
'Vergleichen und ggf. Zeile löschen
lastRowNo = wksNo.Cells(Rows.Count, 1).End(xlUp).Row
If lastRowNo = 2 Then MsgBox "Alles verfügbar": GoTo Ende 'nichts zu vergleichen
For i = 3 To lastRowNo
strVergleich = wksNo.Range("A" & i).Value
For a = lastRowAll To 3 Step -1
strArtikel = wksYes.Range("A" & a).Value
If strVergleich = strArtikel Then
wksYes.Rows(a).Delete
End If
Next a
Next i
Ende:
Set wksAll = Nothing
Set wksYes = Nothing
Set wksNo = Nothing
End Sub
Gruß
Klaus
Anzeige
super danke :-)
03.02.2017 18:03:01
joe
.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige