Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Excel VBA Vergleich von Tabellenbereichen

Mitglied: BaseBubble

BaseBubble (Level 1) - Jetzt verbinden

14.03.2019 um 14:45 Uhr, 122 Aufrufe, 3 Kommentare

Hallo in die Runde!

Ich bin noch nicht so sehr fit mit VBA und stehe gerade etwas auf dem Schlauch.
Ich habe eine Tabelle mit 4 Spalten (erzeugt aus zweimal der gleichen Tabelle zu verschiedenen Zeitpunkten) und möchte die ersten beiden Spalten mit den Spalten 3 und 4 vergleichen. Hier mal ein Bild zur Besseren Veranschaulichung:
tabellenvergleich1 - Klicke auf das Bild, um es zu vergrößern

Ist im rechten Bereich ein Datensatz weggefallen, ist der Rest nach oben gerückt. Es können auch neue Datensätze hinzugekommen sein, diese stehen dann in den beiden rechten Spalten.
Ich möchte die beiden Teiltabellen nun soweit auswerten, dass neben weggefallene Datensätze leere Zellen eingefügt werden. So etwa:
tabellenvergleich2 - Klicke auf das Bild, um es zu vergrößern

Soviel zur Pflicht. Die Kür wäre, wenn ich diese Daten sortiert nach Identisch, Weggefallen und Neu untereinander darstellen könnte:
tabellenvergleich3 - Klicke auf das Bild, um es zu vergrößern

Leider finde ich gerade nichtmal den Anfang meines roten Fadens und brauche einen Tritt in die richtige Richtung. Auch im Internet oder hier im Forum habe ich nichts gefunden, was mich jetzt gerade weiterbringt.

Danke schonmal!

B.
Mitglied: freesolo
14.03.2019 um 15:01 Uhr
Ne einfache Pivot-Tabelle nach Nummer gruppiert, feedich .
Bitte warten ..
Mitglied: BaseBubble
14.03.2019 um 16:10 Uhr
So, ich hab mich mal ganz oldschool mit Zettel und Stift hingesetzt und überlegt, wie ich Schritt für Schritt zu meinem Ergebnis kommen könnte. Lustigerweise hat's dann ga rnicht lange gedauert und ist auch nicht übermäßig kompliziert. Vermutlich nicht der eleganteste Code, den man schreiben kann aber es funktioniert.
Es wird Zeile für Zeile geprüft, ob die Nummern von Spalte A und C gleich oder unterschiedlich sind, sind sie ungleich wird nochmnal differenziert, welche Nummer höher ist und die Daten dieser Nummer mit allem darunter eine Zeile nach unten verschoben.

Der Umweg über Pivot wäre für mich persönlich schwieriger, zumal das Problem nur ein Teil eines größeren VBA-Projektes ist.

Falls es jemandem weiterhelfen könnte, hier mal mein Code:
Sub Zellbereicheverschieben1()

'Deklaration
Dim varlngZeile As Long
Dim varlngZeileEndeA As Long
Dim varlngZeileEndeC As Long
Dim varlngZeileEnde As Long

'Maximale Zeilenzahl ermitteln
varlngZeileEndeA = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
varlngZeileEndeC = ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row
If varlngZeileEndeA > varlngZeileEndeC Then
varlngZeileEnde = varlngZeileEndeA
Else
varlngZeileEnde = varlngZeileEndeC
End If
MsgBox varlngZeileEnde

'Suchen
For varlngZeile = 1 To varlngZeileEnde
If Cells(varlngZeile, 1) <> Cells(varlngZeile, 3) Then
If Cells(varlngZeile, 1) < Cells(varlngZeile, 3) Then
Range("C" & varlngZeile & ":D" & varlngZeileEnde).Select
Selection.Cut
Cells(varlngZeile + 1, 3).Select
ActiveSheet.Paste

Else
Range("A" & varlngZeile & ":B" & varlngZeileEnde).Select
Selection.Cut
Cells(varlngZeile + 1, 1).Select
ActiveSheet.Paste
End If
Else
End If
Next

End Sub
Bitte warten ..
Mitglied: freesolo
LÖSUNG 14.03.2019, aktualisiert um 16:26 Uhr
Joa, umständlich wenns auch einfach geht .
Hier deine "Kür"
01.
Sub JaLeckMichAmArschThorstenDörnbachImmerNochDerAlteFicker()
02.
    Dim wsSource As Worksheet, wsTarget As Worksheet, rngSearch As Range, f As Range, cell As Range
03.
    Set wsSource = Sheets(1)
04.
    Set wsTarget = Sheets(2)
05.
    With wsSource
06.
        Set rngNum1 = .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
07.
        Set rngNum2 = .Range("C2:C" & .Cells(Rows.Count, "C").End(xlUp).Row)
08.
        
09.
        wsTarget.Range("A1").Value = "Identisch"
10.
        wsTarget.Range("C1").Value = "Weggefallen"
11.
        wsTarget.Range("E1").Value = "Neu"
12.
        wsTarget.Range("1:1").Font.Bold = True
13.
        For Each cell In rngNum2
14.
            Set f = rngNum1.Find(cell.Value, LookIn:=xlValues, Lookat:=xlWhole)
15.
            If Not f Is Nothing Then
16.
                cell.Resize(1, 2).Copy wsTarget.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
17.
            Else
18.
                cell.Resize(1, 2).Copy wsTarget.Cells(Rows.Count, "E").End(xlUp).Offset(1, 0)
19.
            End If
20.
        Next
21.
        For Each cell In rngNum1
22.
            Set f = rngNum2.Find(cell.Value, LookIn:=xlValues, Lookat:=xlWhole)
23.
            If f Is Nothing Then
24.
                cell.Resize(1, 2).Copy wsTarget.Cells(Rows.Count, "C").End(xlUp).Offset(1, 0)
25.
            End If
26.
        Next
27.
    End With
28.
End Sub
Bitte warten ..
Ähnliche Inhalte
VB for Applications

InStr - Vergleich schlägt fehl (Excel VBA)

gelöst Frage von MrCountVB for Applications2 Kommentare

Servus zusammen, ich habe hier ein kleines Excel-VBA Problem: Ausgangslage: Wert aus Zelle (x,y) wird in Variable "Wert" gespeichert. ...

Microsoft Office

Excel Tabellen Vergleich

gelöst Frage von Dr.CornwallisMicrosoft Office1 Kommentar

Liebe Gemeinde, ich habe einen VBA Code, dieser vergleicht eine Spalte mit anderen Spalten aus anderen Blättern. Verglichen wird ...

Microsoft Office

Excel VBA vbyesno

gelöst Frage von Florian86Microsoft Office2 Kommentare

Hallo, ich habe folgenden Code Sub AbgerundetesRechteck1_Klicken() Dim wksOrig As Worksheet Dim wksStore As Worksheet Dim lngLastRow As Long ...

Microsoft Office

Excel Filter Vergleich zweier Tabellen

gelöst Frage von Dr.CornwallisMicrosoft Office5 Kommentare

Hallo zusammen, ich möchte 2 Tabellen in einer Excel Datei vergleichen, dabei sollen die Werte aus der Tabelle "ausgeschiedene ...

Neue Wissensbeiträge
Datenschutz

SiSyPHuS Win10: Analyse der Telemetriekomponenten in Windows 10

Tipp von freesolo vor 3 TagenDatenschutz1 Kommentar

Alle die sich detailliert für die Datensammlung interessieren die unter Windows 10 stattfindet, sollten sich folgende Analyse des BSI ...

Sicherheit
Adminrechte dank Intel-Grafikkarte
Information von DerWoWusste vor 3 TagenSicherheit2 Kommentare

ist das Advisory, welches beschreibt, welche Intel HD Graphics Modelle Sicherheitslücken haben, mit denen sich schwache Nutzer zu Admins ...

Internet

EU Urheberrechtsreform: Eingriff in die Internetkultur

Information von Frank vor 4 TagenInternet1 Kommentar

Liebe Besucherin, lieber Besucher, warum erscheint das obere Banner in allen Beiträgen? Aus Protest gegen Teile der geplanten EU-Urheberrechtsreform ...

Windows Server
Windows Backup - FilterManager Event 3
Tipp von NixVerstehen vor 4 TagenWindows Server

Hallo zusammen, ich bin kein gelernter ITler und auch beruflich nicht in dem Feld tätig. Wir setzen in unserem ...

Heiß diskutierte Inhalte
Hyper-V
Hyper-V Manager startet, jedoch keine VM
Frage von NaleorHyper-V14 Kommentare

Hallo zusammen, auf meinem Windows 10 (Build 1703) Notebook von der Arbeit scheint Hyper-V plötzliche nicht mehr zu funktionieren. ...

DNS
50 EUR für Telekom-, Unitymedia- und Vodafone-Kunden
Frage von Zorro1199DNS14 Kommentare

Hallo zusammen, wie evaluieren gerade das korrekte Einhalten von DNS-TTLs durch verschiedene Provider. Aktuell suchen wir noch Kunden der ...

Windows Server
Sonntagsfrage: Welchen Sinn seht Ihr noch im Server 2019 Essentials
Frage von ashnodWindows Server13 Kommentare

Guten Morgen, ich habe gestern den Windows Server 2019 Essentials als Trial in einer VM installiert um mir das ...

Windows Server
Windows 2012 R2 - Skript um Druckerkonfiguration auszulesen und zu setzen
gelöst Frage von Der-PhilWindows Server11 Kommentare

Hallo! Kennt ihr eine Möglichkeit, per Skript die Konfiguration eines Druckers auszulesen und auf einen anderen anzuwenden? Hintergrund: Ich ...