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, 109 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
Sicherheits-Tools
Putty hat heftige Bugs korrigiert!
Information von Lochkartenstanzer vor 1 TagSicherheits-Tools5 Kommentare

Moin, Wie man aus herauslesen kann, sind in den Versionen vor 0.71 gravierende Bugs, die es angeraten erscheinen lassen, ...

Off Topic
Sachen die die Welt nicht braucht - Platz 1
Tipp von brammer vor 4 TagenOff Topic18 Kommentare

Hallo, ich habs als Tipp angelegt als Erfahrungsbericht nein Danke brammer

Humor (lol)
Spirit of Health-Kongress in Berlin
Information von AnkhMorpork vor 4 TagenHumor (lol)5 Kommentare

tgif! Beim dritten Spirit of Health-Kongress trafen sich am Wochenende Alternativmediziner und Naturheilkundler im Maritim Hotel Berlin, um sich ...

Windows 7

Updates zum Nachrüsten des SHA-2-Support für Windows 7 SP1, Windows Server 2008 (R2) und WSUS 3.0 SP2 sind da

Information von kgborn vor 5 TagenWindows 7

Wie bereits früher angekündigt (Windows 7 u. Server 2008 (R2) SHA-2-Update kommt am 12. März 2019) hat Microsoft die ...

Heiß diskutierte Inhalte
Cloud-Dienste
Remotedesktopverbindungen beeinflussen sich gegenseitig
gelöst Frage von Samy89Cloud-Dienste15 Kommentare

Moin, ich habe mehrere RDPs gleichzeitig laufen, auf denen jeweils ein Script via Powershell läuft. In diesem Prozess benutzt ...

DNS
Größere DNS Probleme nach zweitem DC. Eigentlich sollte es auch dadurch besser werden
Frage von TeWutzDNS12 Kommentare

Hallo zusammen, nachdem ich letzte Woche erfolgreich einen zweiten DC ) an den Start gebracht habe melden sich weiterhin ...

LAN, WAN, Wireless
Switch als Verbindung von 2 Netzwerken
gelöst Frage von Lutz-ReLAN, WAN, Wireless12 Kommentare

Guten Tag Ich hab folgendes Problem 2 Rechner und 2 IP Kameras sind ohne dhcp in einen IP4 Netzwerk ...

Netzwerkgrundlagen
Reicht 10GBit Uplink Port für Stacking für ein 10GBit Switch?
gelöst Frage von walnickNetzwerkgrundlagen12 Kommentare

Hallo, Ich habe eine frage. Ich überlege gerade 2 neue Switche von CiscoSG350XG-24F  zu kaufen und die als Core ...