Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Werte aus einer Tabelle vergleichen, einlesen und addieren

Frage Entwicklung VB for Applications

Mitglied: halbschuh107

halbschuh107 (Level 1) - Jetzt verbinden

28.07.2014 um 21:12 Uhr, 1237 Aufrufe, 2 Kommentare

Hallo zusammen,

leider bin ich ein absoluter Anfänger und muss mit VBA gleich eine schwierige Aufgabe auf Arbeit lösen. Hoffe ihr könnt mir helfen.
Ich habe eine Übersichtstabelle mit Namen in Spalte A und eine Anzahl von Aufträgen in Spalte D stehen.

Eine zweite Ausleitungstabelle enthält alle Aufträge in Spalte H und alle Namen der Bearbeiter in Spalte B. Hier können Namen mehrfach vorkommen.

In der Übersichtstabelle sollen die alten Werte in Spalte D addiert werden, mit den Werten wenn sie in der Ausleitungstabelle stehen. Sonst soll der alte Wert einfach übernommen werden.

Gibt es da einen Lösungsweg für Anfänger?

Vielen Dank schon einmal für eure Mühe.

Schöne Grüße
Lars
Mitglied: colinardo
29.07.2014, aktualisiert um 10:52 Uhr
Hallo Lars, Willkommen auf Administrator.de!
Dafür benötigst du noch nicht einmal VBA. Es reicht hier die Formel SummeWenn() mit der du die Summen der einzelnen Mitarbeiter in der Ausleitungstabelle aufsummierst und dann mit den Werten in Spalte D deiner Übersichtstabelle addierst.
Siehe dazu folgendes Demo-Sheet

VBA ist auch kein Problem. Da du aber nach einer Anfängerlösung suchst, ist die Formelvariante die am einfachsten zu implementierende
Falls du es dennoch in VBA benötigst, siehe dieses VBA-Demo-Sheet (Kommentare findest du im hinterlegten Code)

01.
Sub Summierung() 
02.
    Dim ws1 As Worksheet, ws2 As Worksheet, rngNames As Range, rngSearch As Range, cell As Range, c As Range 
03.
    Set ws1 = Worksheets(1) 'Übersichtstabelle 
04.
    Set ws2 = Worksheets(2) 'Ausleitungstabelle 
05.
    Set rngNames = ws1.Range("A2", ws1.Cells(Rows.Count, 1).End(xlUp))  ' Bereich der Namen in der Übersichtstabelle 
06.
    Set rngSearch = ws2.Range("B2", ws2.Cells(Rows.Count, 2).End(xlUp)) ' Bereich der Namen in der Ausleitungstabelle 
07.
    ' Für jeden Namen in der Übersichtstabelle 
08.
    For Each cell In rngNames 
09.
        'Suche den Namen in der Ausleitungstabelle 
10.
        Set c = rngSearch.Find(cell.Value, LookIn:=xlValues, Lookat:=xlWhole) 
11.
        ' Wenn der Name gefunden wurde ... 
12.
        If Not c Is Nothing Then 
13.
            firstAddress = c.Address 
14.
            ' Suche so lange weiter nach dem Namen bis er nicht mehr gefunden wird 
15.
            Do 
16.
                ' Addiere die Werte der Zellen 
17.
                cell.Offset(0, 3).Value = Int(cell.Offset(0, 3).Value) + Int(c.Offset(0, 6).Value) 
18.
                'Finde den nächsten Treffer 
19.
                Set c = rngSearch.FindNext(c) 
20.
            Loop While Not c Is Nothing And c.Address <> firstAddress 
21.
        End If 
22.
    Next 
23.
End Sub
Viel Erfolg
Grüße Uwe
Bitte warten ..
Mitglied: halbschuh107
29.07.2014 um 18:27 Uhr
Hallo Uwe,

super - vielen Dank für deine Hilfe! Du bist ja super Klasse und hast mir mehr als geholfen. Es funktioniert Klasse!!! Habe das ganze auch noch ein bisschen erweitern
können. Mit "Set ws2 = Workbooks("Ausleitungstabelle.xls").Sheets("Daten") 'Ausleitungstabelle" kann ich jetzt sogar eine externe Datei einlesen, sodass die AUsleitung nicht zwingend in der gleichen Datei sein muss

Ich hoffe, ich kann noch so einiges von hier lernen!!

Vielen Dank und hab noch einen schönen Tag.

Gruß Lars
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(1)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Werte vergleichen die nicht 100 Prozent gleich sind (4)

Frage von functionstrut zum Thema Batch & Shell ...

Datenbanken
gelöst SQL . 2 Felder bzw. Werte vergleichen und Rückmeldung 0 oder 1 (2)

Frage von wawidl zum Thema Datenbanken ...

VB for Applications
gelöst Excel VBA Werte von 2 verschiedenen Sheets vergleichen und aktualisieren (4)

Frage von drimrim zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...