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-Makro gesucht: Zusammenführen der verteilten Inhalte mehrerer markierter Zeilen in eine

Mitglied: stschuck

stschuck (Level 1) - Jetzt verbinden

03.07.2013 um 09:25 Uhr, 1899 Aufrufe, 5 Kommentare

Zwar kann ich Excel (2010) ganz gut bedienen, doch keine Makros schreiben. Hab schon viel gegooglet und ähnliche, aber keine genau passenden Lösungen gefunden.
Ich habe das Problem einer riesigen Excel-Tabelle mit ca. 6000 Zeilen und ungefähr 40 Spalten, die durch den Import vieler kleinerer Tabellen entstanden ist. Nun muß ich die über mehrere Spalten und Zeilen verteilten Informationen zu einem Produkt in einer Zeile zusammen fassen. Da im entscheidenden Feld, das mir anzeigt, welche Zeilen zusammen gehören sollen, Schreibfehler und Abweichungen vorkommen können, muss ich die Zeilen schon alle selbst anschauen und kann sie nicht automatisch vergleichen. Ich möchte daher die Zeilen, die zusammengeführt werden sollen, einfach markieren und dann das Makro ausführen, das alle Inhalte in die oberste der markierten Zeilen zusammenkopiert und die darunter stehenden löscht. Wichtig: Die Anzahl der Spalten darf sich auf keinen Fall verändern!
Beispiel:

a57cf109bc6f36dc93c9574f3706d625 - Klicke auf das Bild, um es zu vergrößern

Ich wäre dankbar für eine zeitsparende, einfache Lösung!
Vielen Dank
Stefan
Mitglied: 76109
03.07.2013, aktualisiert 04.07.2013
Hallo stschuck!

Unter der Annahme, dass der markierte Bereich in Spalte A beginnt und nur ein Wert in Spalte A (Inhalt 0) steht. Ausserdem ab der 3. Spalte C nur ein Wert pro Spalte steht...

Unter obiger Annahme könnte es hiermit gehen (Code in Modul einfügen):
01.
Option Explicit 
02.
 
03.
Const iColMax = 40 
04.
 
05.
Public Sub Zusammenfassen() 
06.
    Dim aValues As Variant, aNewValues(1 To 1, 1 To iColMax) As Variant 
07.
    Dim iRowValue As Long, iRowFirst As Long, iRowNext As Long, iRowLast As Long, r As Long, c As Long 
08.
     
09.
    If Selection.Rows.Count < 2 Then 
10.
        MsgBox "Es müssen mindestens 2 Zeilen markiert sein!", vbInformation, "Hinweis...":  Exit Sub 
11.
    End If 
12.
     
13.
    aValues = Selection.Value 
14.
     
15.
    iRowValue = GetRowValue(aValues) 
16.
    iRowFirst = Selection.Row 
17.
    iRowNext = iRowFirst + 1 
18.
    iRowLast = iRowFirst + Selection.Rows.Count - 1 
19.
     
20.
    aNewValues(1, 1) = aValues(iRowValue, 1) 
21.
    aNewValues(1, 2) = aValues(iRowValue, 2) 
22.
     
23.
    For r = 1 To UBound(aValues, 1) 
24.
        For c = 3 To iColMax 
25.
            If Not IsEmpty(aValues(r, c)) Then 
26.
                aNewValues(1, c) = aValues(r, c) 
27.
            End If 
28.
        Next 
29.
    Next 
30.
     
31.
    Rows(iRowNext & ":" & iRowLast).Delete Shift:=xlUp 
32.
    Cells(iRowFirst, 1).Resize(1, iColMax).Value = aNewValues 
33.
End Sub 
34.
 
35.
'Array-Zeile mit Wert in Spalte A ermitteln 
36.
Private Function GetRowValue(ByRef aValues) As Long 
37.
    Dim i As Long 
38.
     
39.
   'Falls Spalte A leer, dann Wert für Spalte B aus 1.er Array-Zeile 
40.
    GetRowValue = 1 
41.
 
42.
    For i = 1 To UBound(aValues, 1) 
43.
        If Not IsEmpty(aValues(i, 1)) Then 
44.
            GetRowValue = i:  Exit For 
45.
        End If 
46.
    Next 
47.
End Function
Gruß Dieter
Bitte warten ..
Mitglied: stschuck
03.07.2013 um 11:58 Uhr
Hallo Dieter,
das sieht schon beeindruckend aus - allerdings bekomme ich die Fehlermeldung: "Laufzeitfehler 9" Index außerhalb des gültigen Bereiches für diese Code-Zeile

:aNewValues(1, 1) = aValues(iRowValue, 1).

Mache ich etwas falsch?
Danke für eine Korrektur.
Viele Grüße Stefan
Bitte warten ..
Mitglied: 76109
03.07.2013 um 12:19 Uhr
Hallo stschuck!

Leider fehlt mir jetzt die Zeit für eine Korrektur, da ich gleich zur Arbeit muss...

Allerdings dürfte der Fehler auftreten, weil in Spalte A kein Wert steht?

Gruß Dieter
Bitte warten ..
Mitglied: stschuck
03.07.2013 um 12:31 Uhr
Hallo Dieter, ja, daran liegt's. In der Spalte A steht nur gelegentlich ein Wert. Ich kann aber prima damit arbeiten, wenn ich einfach die leeren betreffenden Zellen zwischenzeitlich mit einem Hilfszeichen fülle. Dann funktioniert's.
GANZ HERZLICHEN DANK - und gutes Arbeiten
Stefan.
Bitte warten ..
Mitglied: 76109
04.07.2013, aktualisiert um 01:06 Uhr
Hallo Stefan!

Habe im Code (Codezeile 40) noch eine Korrektur eingefügt, wodurch die Spalte A auch Leer sein darf.

Die Korrektur hat folgende Auswirkungen:
Ist die Spalte A im markierten Bereich leer, dann wird der Wert für Spalte B aus der 1.en markierten Zeile übernommen.
Ist die Spalte A im markierten Bereich (beliebige Zeile) nicht leer , dann wird der Wert in Spalte A und der Wert für Spalte B aus der Zeile, in der die Spalte A einen Wert enthält übernommen.

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel nur markierte Zeilen ausdrucken?
Frage von Server4AlleMicrosoft Office3 Kommentare

Hallo, ist es möglich das eine Zeile in Excel nur gedruckt wird wenn eine X in der Zeile in ...

Microsoft Office

Excel-Makro für Textdatenbank gesucht

gelöst Frage von FishersFritzMicrosoft Office2 Kommentare

Hallo zusammen, ich benötige mal wieder Eure Hilfe. Ich suche für ein Autohaus eine einfache Möglichkeit, eine Liste mit ...

VB for Applications

MIt Makro markierten Bereich nummerieren

gelöst Frage von wiedhalmVB for Applications1 Kommentar

Hallo Experten! Meine Ausstattng: VB ver 6.5.120 in MS Office Excel 2007 in Win 7 pro, 64 bit Meine ...

Microsoft Office

Excel Zeilen automatisch gruppieren (Makro)

gelöst Frage von LoneStarState01Microsoft Office2 Kommentare

Hallo zusammen, ich komme bei folgendem Problem in Excel einfach nicht weiter und wäre für jede Hilfe dankbar. Ich ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 6 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 14 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
OpenVPN Client Fehlermeldungen
Frage von chris84LAN, WAN, Wireless16 Kommentare

Hallo Zusammen, wir nutzen seit kurzem einen neuen Router und den OpenVPN Client. Die VPN Verbindung klappt; allerdings kommen ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit14 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...