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, 195 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: 138810
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: 138810
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
Administrator.de Feedback
Was als Noob hier mal gesagt werden musste
Information von th30ther vor 1 TagAdministrator.de Feedback2 Kommentare

Moinsen wertes Forum, ich möchte mich an dieser Stelle mal beim Forum generell und bei aqui speziell bedanken! Ich ...

Windows 10
Windows 10 Mai 2019 Update (Version 1903) ist da
Information von kgborn vor 1 TagWindows 104 Kommentare

Nur ein kurzer Infosplitter: Microsoft hat die Nacht (21. Mai 2019) das Funktionsupdate auf Windows 10 Version 1903 freigegeben. ...

E-Mail

Newsletter: Unread News - IT News in Byte Länge

Tipp von franktaylor vor 1 TagE-Mail11 Kommentare

Hallo, würde gerne auf einen Newsletter hinweisen, den ich heute per Zufall gefunden und mit euch gerne teilen möchte: ...

Outlook & Mail

Outlook 2016 stürzt ab, wenn man ein (at)- Zeichen im Text einer neuen E-Mail schreibt

Tipp von Enriqe vor 2 TagenOutlook & Mail4 Kommentare

Bei uns in der Firma häuften sich die Fälle, bei denen sich Outlook kommentarlos verabschiedet, wenn man ein - ...

Heiß diskutierte Inhalte
Hyper-V
Novell virtualisieren
Frage von spoboeHyper-V20 Kommentare

Hallo zusammen, ich habe absolut keine Ahnung von Novell, aber wir haben hier ein ganz altes Schätzchen (vermutlich Novell ...

Windows Server
Ungewollte IP Änderung am DC sorgt für Probleme
Frage von thomas-99Windows Server19 Kommentare

Hallo Zusammen, wir haben ein kleines Netz mit 5 verschiedenen VMs (DC, AD, Fileserver, Exchange, TK Anlage - alle ...

Windows Netzwerk
Netzlaufwerk: einfache Liste der täglich gelöschten, geänderten+neuen Files
gelöst Frage von mylightWindows Netzwerk17 Kommentare

wir haben Windows Clients, das zentrale Teamlaufwerk liegt auf einem Netzwerkserver (ca. 100Gb, 10.000 Verzeichnisse, 180.000Dateien), auf die Konsole ...

Netzwerkmanagement
Gateprotect Firewall - Internetseiten werden teilw. nicht geladen
Frage von KivasFNetzwerkmanagement16 Kommentare

Morgen Zusammen, ich habe ein Problem mit einer Gateprotect Firewall welches mir echt Kopfschmerzen bereitet. Die Firewall hängt an ...