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 Spalten vergleichen und sortieren - VBA?

Mitglied: CorinnaM

CorinnaM (Level 1) - Jetzt verbinden

07.05.2012 um 15:27 Uhr, 13592 Aufrufe, 8 Kommentare

Hallo liebe VBA Profis,

Ich muss innerhalb eines Excel-Sheets Spalten vergleichen und sortieren. Das ganze gestaltet sich folgendermassen:

Spalte A-C enthält jeweils Artikelnummer, Artikelbezeichnung, neuer Preis.

Spalte D-F enthält jeweils Artikelnummer, Artikelbezeichnung, ALTER PREIS.

Das Problem ist, dass die Positionierung der Artikel von Spalte A-C nicht dieselbe ist wie in Spalte D-F.

Nun muss Spalte D-F genauso sortiert werden in Bezug auf Artikelnummer und Artikelbezeichnung wie die Spalten A-C und Spalte F soll natürlich weiterhin den alten Preis enthalten zu dem richtigen Produkt.

Als Beispiel:

Artikelnummer: 123
Artikelbezeichnung: Tasse
ALTER PREIS: 5.-

Der Preis über 5.- Euro soll natürlich nach der Sortierung weiterhin bei der Tasse stehen und nicht etwa beim Teller.

Spalten A-C dürfen auf gar keinen Fall geändert werden.

Die Artikelnummern sind dieselben in A-C und D-F, mit wenigen Ausnahmen, die es in A-C entweder nicht mehr oder neu dazu gibt.
In diesen Fällen soll Spalten D-F wie folgt geändert werden:
- Produkt gibt es nicht in A-C: Das Produkt in D-F löschen, und zwar die Zellen nicht die ganze Zeile und die Zellen darunter sollen nach oben geschoben werden.
- Produkt gibt es nicht in D-F: Das Produkt in D-F einfügen durch einfügen von Zellen nicht die ganze Zeile und die darunter liegenden Zellen sollen nach unten geschoben werden.

Im Dokument sind maximal ungefähr 2000 Zeilen.

Nun habe ich leider keinerlei Kenntnisse in Visual Basic und müsste aber ein solches Makro erstellen, was doch eigentlich gehen müsste?

Kann mir vielleicht jemand von euch da weiterhelfen?

Vielen Dank
Mitglied: 76109
08.05.2012 um 01:11 Uhr
Hallo CorinnaM!

Sind die Spalten G:I Leer?

Gruß Dieter
Bitte warten ..
Mitglied: Biber
08.05.2012 um 06:39 Uhr
Moin CorinnaM,

willkommen im Forum.
Selbst wenn die Spalten G ff nicht leer sind (was ich annehme) ->falls es keine regelmäßige Aktion ist, sondern etwas Einmaliges, dann mach es mit SVERWEIS().
Kopiere dazu die Spalten D-F in ein neues Tabellenblatt, ersetze die Spalten D-F im "richtigen" Sheet durch SVerweis()-Formeln und ersetze dann diese Spalten mit "Kopieren"/"Inhalte einfügen"/"Werte".

Das hast du bei den paar Daten in 10 Minuten fertig - in der Zeit hat nicht mal didi ein Makro zusammengebraten,
->Würde sich nur lohnen, wenn es eine regelmäßige Aktion wäre, aber dann würde sich die Frage stellen, durch welchen Zaubertrick denn die Spalteninhalte D-F in das Sheet gebeamt werden...

Grüße
Biber
Bitte warten ..
Mitglied: CorinnaM
08.05.2012 um 08:41 Uhr
Vielen Dank für das herzliche willkommen

Ja die Spalten G:I sind leer und ja das ganze ist eine regelmässige Aktion (monatlich). Im Grunde genommen habe ich 2 Excel Dateien. Eine mit den Preisen vom Vormonat und eine mit den Preisen vom aktuellen Monat, nur ist die Positionierung der Artikel in den Tabellen nicht gleich. Was bis anhin gemacht wurde ist, dass die alte Preisliste in die neue kopiert wurde. Danach wurden die Spalten D-F (alte Preisliste) manuell nach den Spalten A-C sortiert, was nicht nur zeitintensiv sondern auch fehleranfällig ist, daher dachte ich an ein Makro und bin bei dem Versuch schlicht an Visual Basic gescheitert.
Bitte warten ..
Mitglied: 76109
08.05.2012 um 09:36 Uhr
Hallo CorinnaM!

@Biber
Das hast du bei den paar Daten in 10 Minuten fertig - in der Zeit hat
nicht mal didi ein Makro zusammengebraten, ...
Solange hat's - wie am Code zu sehen ist - nicht gedauert

Versuchs mal hiermit:
01.
Option Explicit 
02.
 
03.
Private Const SheetName = "Tabelle1"        'Tabellenname entsprechend anpassen 
04.
Private Const StartZeile = 2                'Artikelnummer ab Zeile ? 
05.
 
06.
Sub SortToArtikelNr() 
07.
    Dim Found As Range, i As Long 
08.
     
09.
    With Sheets(SheetName) 
10.
        For i = StartZeile To .Cells(.Rows.Count, "A").End(xlUp).Row 
11.
            Set Found = .Columns("D").Find(.Cells(i, "A").Value, LookIn:=xlValues, LookAt:=xlWhole) 
12.
             
13.
            If Not Found Is Nothing Then 
14.
                Found.Resize(1, 3).Copy .Cells(i, "G") 
15.
            End If 
16.
        Next 
17.
     
18.
       .Columns("D:F").Delete 
19.
    End With 
20.
End Sub 
21.
 
Unter der Annahme, dass die Daten bereits in die Spalten D:F kopiert wurden, den Quellcode im VB-Editor in ein Modul einfügen und über die Excel-Oberfläche (Extras>Makros...) starten.

Funktion:
ArtikelNr von Spalte A in Spalte D suchen und falls gefunden, die Spalten D:F in die Spalten G:I (Zeile von A) kopieren. Anschließend die Spalten D:F löschen.

Gruß Dieter
Bitte warten ..
Mitglied: CorinnaM
08.05.2012 um 09:53 Uhr
Juhuuuu! das funktioniert! juhuuu! super! vielen vielen lieben Dank! Du hast soeben mein Leben erleichtert! juhuu! Vielen Dank Dieter! *vor Freude umherspring*
Bitte warten ..
Mitglied: 76109
08.05.2012 um 10:16 Uhr
Hallo CorinnaM!

Juhuuuu! das funktioniert! juhuuu! super! vielen vielen lieben Dank! Du hast soeben mein Leben erleichtert! juhuu!
Vielen Dank Dieter! *vor Freude umherspring*
Jepp, gern geschehen. Deinen Freudentanz hätte ich ja zu gerne gesehen

Noch einen schönen Tag!

Gruß Dieter
Bitte warten ..
Mitglied: Biber
08.05.2012 um 19:53 Uhr
Moin didi1954 und CorinnaM,

Zitat von 76109:
Solange hat's - wie am Code zu sehen ist - nicht gedauert
Na ja, ich finde zwei Zeilen Code pro Minute UND einen Kommentar pro 10 Zeilen Code schon eine durchaus respektable Leistung
Es gibt eine Menge kohlenstoffbasierte Codegeneratoren z.B. in unserer Firma, denen jedes dieser Qualitätskriterien auf immer unerreichbar bleiben wird.

> Juhuuuu! das funktioniert! juhuuu! super! vielen vielen lieben Dank! Du hast soeben mein Leben erleichtert! juhuu!
> Vielen Dank Dieter! *vor Freude umherspring*
Jepp, gern geschehen. Deinen Freudentanz hätte ich ja zu gerne gesehen
Jepp, so was Schönes hatte ich auch das letzte Mal in "Harry & Sally" gesehen...


Wenn es denn nun ein regelmäßiger Ablauf/Geschäftsprozess ist (jeden Monat) wieder, dann würde ich empfehlen, den manuellen Vorlaufschritt "Kopieren der drei Spalten D-F" auch noch wegzuautomatisieren.

Das Makro könnte - mit drei weiteren Zeilen + Sicherheitsabfrage - auf Knopfdruck auch diese drei Spalten aus einer zweiten Exceldatei lesen, die jeden Monat wieder unter dem gleichen Namen (oder Namensprefix+Datumsendung) wie zum Beispiel "Preise_2012-06.xls" in einem Verzeichnis X:\Austausch" bereitgestellt wird.

@Didi: Du würdest doch bestimmt gerne noch einmal einen so schönen..ääh .... Freudentanz provozieren, oder?

Grüße
Biber
Bitte warten ..
Mitglied: BerndZ
09.02.2013 um 22:51 Uhr
Hallo Didi,

ich bin auf der Suche nach einer Problemlösung durch Zufall auf dieses Makro gestossen - und muss sagen, dass dieses "kurze" Makro schon nahezu alle meine Probleme gelöst hat.

Lediglich ein Problem bleibt noch:
Wenn jetzt ein Artikel dabei ist, der vorher nicht mit in der Artikelliste aufgeführt war (neuer Artikel), wird dieser Artikel so leider noch nicht berücksichtigt.
Wie müsste ich dieses Makro anpassen, damit ein "neuer" Artikel unten an die Liste angehängt wird.
Spalte "A" ist die "vorhandene" Liste mit Artikelnummern
- In Spalte "B" sortiere ich (mit dem Makro) die aktuelle Liste mit Artikelnummern und
- und in Spalte "C" kommen (auch mit dem Makro) die dazugehörigen Werte (in meinem Fall Verkaufszahlen)

einige Zellen in den Spalten "B" + "C" bleiben leer, da manchmal Artikel vorübergehend oder endgültig rausgenommen werden.
"Neue Artikel" müssen unten angefügt werden (in den Spalten "B" + "C")

Danke im voraus,
Bernd
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Excel VBA gefilterte Spalten vergleichen
gelöst Frage von YotYotVB for Applications3 Kommentare

Aloha! Ich bin seit satten fünf Stunden auf der Suche nach einer funktionierenden Lösung und scheitere daran, dass ich ...

Microsoft Office
Excel 2010 mit VBA sortieren ?
gelöst Frage von dressaMicrosoft Office4 Kommentare

Hallo miteinander, Ich habe die Aufgabe mit Excel einen Dateiordner auszulesen und diese in Excel nach 2 Kriterien in ...

VB for Applications
Inhalte vergleichen - Excel VBA
gelöst Frage von Acht85VB for Applications10 Kommentare

Hallo lieber User, ich habe ein kurze Frage und würde mich sehr freuen, wenn ihr mir damit weiterhelfen könnt. ...

Microsoft Office

Excel-VBA: Alle Werte einer Spalte in einer anderen Suchen

gelöst Frage von KevinPMicrosoft Office4 Kommentare

Hallo, ich hänge jetzt schon seit Tagen dran und komm nicht zu Rande. Ich versuche jeden Wert eines Tabellenblattes ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 2 StundenWindows 10

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 4 StundenAdministrator.de Feedback8 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 22 StundenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 1 TagGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Server-Hardware
Welche Rolle spielt Design bei Enterprise IT Hardware?
Frage von ApolloXServer-Hardware17 Kommentare

Ich arbeite für einen internationalen Elektronikhersteller in der Forschung und meine Aufgabe ist es, Feedback von Nutzern in Hinsicht ...

Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Switche und Hubs
Cisco SG350X-48 AdminIP in anderes VLAN
Frage von lcer00Switche und Hubs14 Kommentare

Hallo zusammen, ich habe ein Problem mir einem Cisco SG350X-48 bei der Erstinstallation wurde eine IP 192.168.0.254 (Default VLAN ...