Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Anzeige

Forumthread: 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
Anzeige

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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige