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

Frage Entwicklung VB for Applications

Zeilen verschiedener Tabellenblätter vergleichen

Mitglied: RicoTumb

RicoTumb (Level 1) - Jetzt verbinden

20.04.2011 um 17:39 Uhr, 2963 Aufrufe

Hallo zusammen,

ich habe folgendes Problem:
Ich habe zwei Tabellenblätter (Tabellen2 und Tabellen3). In Tablle3 sind Daten zeilenweise aufgelistet. Es wurde dann ein Filter eingesetzt und bestimmte Daten nach dem Filtern wurden in Tabelle2 kopiert. Jede Zeile hat eine VorgangsID. Es soll nun in Tabelle2 jede Zeile mit jeder Zeile in Tabelle3 verglichen werden. Falls es nicht die selbe Zeile ist (was man an der VorgangsID erkennt) und bestimmte Voraussetzungen erfüllt sind, soll die jeweilige VorgangsID der Zeile aus Tabelle3 wieder in der Tabelle3 in Zeile 348 kopiert werden. Jede weitere VorgangsID, die die Voraussetzungen erfüllt und kopiert werden soll, soll dann unter diesen Eintrag kopiert werden.

Voraussetzungen sind folgende:

WENN beim Vergleich zweier Zeilen:
Datum auf Tabelle3 soll jünger ist
UND die unternehmensID in einer der Partnerspalten auftaucht
UND in einer der tie types INTERNATIONAL vermerkt ist

Ich habe nun folgendes Problem: ich habe selbst in kurzer Zeit versucht einen Code zu schreiben, der sicher programmiertechnisch nicht wirklich gut ist, da ich VBA Anfänger bin. Das Problem ist nun, dass der Code die VorgangsID des ersten Eintrags, der die Voraussetzung erfüllt richtig kopiert... Falls jedoch ein weiterer Eintrag zutreffend ist, wird diese VorgangsID nicht übernommen. Zudem werden manche VorgansIDs doppel oder dreifach kopiert. Unten poste ich auch meinen Code.

Ich wäre sehr dankbar, wenn mir jemand helfen könnte!

Vielen Dank im voraus!
Rico

01.
Sub Probe() 
02.
 
03.
Dim datum1 As String 
04.
Dim datum2 As String 
05.
Dim zeile As Integer 
06.
Dim spalte As Integer 
07.
Dim y As Integer 
08.
Dim neuZeile As Integer 
09.
Dim neuSpalte As Integer 
10.
Dim kopierZeile As Integer 
11.
Dim kopierSpalte As Integer 
12.
Dim unternehmensID As Integer 
13.
 
14.
 
15.
 
16.
spalte = 9 
17.
neuSpalte = 2 
18.
kopierZeile = 348 
19.
kopierSpalte = 1 
20.
 
21.
Set Table = ThisWorkbook.Worksheets("Tabelle2") 
22.
 
23.
With Table 
24.
 
25.
 
26.
For zeile = 2 To 36 
27.
    neuZeile = 2 
28.
   
29.
    Do While neuZeile <= 346 
30.
     
31.
    datum1 = .Cells(zeile, spalte).Value 
32.
    datum2 = ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 7).Value 
33.
    unternehmensID = ThisWorkbook.Worksheets("Tabelle2").Cells(zeile, spalte - 6).Value 
34.
 
35.
    If (DateValue(datum2) <= DateValue(datum1)) _ 
36.
        And (.Cells(zeile, spalte - 8).Value <> ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte).Value) _ 
37.
        And ((unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 1).Value) _ 
38.
        Or (unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 21).Value) _ 
39.
        Or (unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 27).Value) _ 
40.
        Or (unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 33).Value) _ 
41.
        Or (unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 39).Value) _ 
42.
        Or (unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 45).Value) _ 
43.
        Or (unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 51).Value) _ 
44.
        Or (unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 57).Value) _ 
45.
        Or (unternehmensID) = (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 63).Value)) _ 
46.
        And ((ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 17).Value = "INTERNATIONAL") _ 
47.
        Or (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 23).Value = "INTERNATIONAL") _ 
48.
        Or (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 29).Value = "INTERNATIONAL") _ 
49.
        Or (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 35).Value = "INTERNATIONAL") _ 
50.
        Or (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 41).Value = "INTERNATIONAL") _ 
51.
        Or (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 47).Value = "INTERNATIONAL") _ 
52.
        Or (ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte + 53).Value = "INTERNATIONAL")) _ 
53.
        Then 
54.
        'WENN beim Vergleich zweier Zeilen: 
55.
        'Datum auf Tabelle3 soll jünger ist 
56.
        'UND die unternehmensID in einer der Partnerspalten auftaucht 
57.
        'UND in einer der tie types INTERNATIONAL vermerkt ist 
58.
        'DANN: 
59.
         
60.
            y = ThisWorkbook.Worksheets("Tabelle3").Cells(neuZeile, neuSpalte - 1).Value 
61.
     
62.
            ThisWorkbook.Worksheets("Tabelle3").Cells(kopierZeile, kopierSpalte).Value = y 
63.
             
64.
            kopierZeile = kopierZeile + 1 
65.
 
66.
    Else 
67.
     
68.
    End If 
69.
     
70.
    neuZeile = neuZeile + 1 
71.
     
72.
    'Vergleich mit der nächsten Zeile fortführen 
73.
     
74.
    Loop 
75.
     
76.
  
77.
Next zeile 
78.
 
79.
End With 
80.
 
81.
End Sub
Ähnliche Inhalte
Microsoft Office
Werte aus verschiedenen Tabellenblättern vergleichen, farblich markieren
Frage von frosch44Microsoft Office1 Kommentar

Hallo, ich habe 2 verschiedene Tabellenblätter. Wenn ein (einmaliger) Wert in Blatt1 in Blatt2 mind. einmal oder mehrfach vorkommt, ...

Microsoft Office
Excel Tabellenblatt finden und Zeile kopieren
gelöst Frage von Florian86Microsoft Office3 Kommentare

Hallo, ich möchte anhand von Buttons einen Zugang bzw. einen Abgang auf bestimmte Tabellenblätter kopieren. Die Tabellenblätter entsprechen der ...

Microsoft Office
Wert aus einer Spalte mit Werten in einer Spalten vergleiche, wenn Wert vorhanden, dann Wert aus der dritten Spalte in der selben Zeile ausgeben, verschiedene Tabellenblätter
gelöst Frage von DevilioMicrosoft Office5 Kommentare

Hallo Zusammen, ich habe folgendes Problem und finde keine Lösung. Ich habe 2 Tabellenblätter mit folgenden Daten: Tabelle 1: ...

Microsoft Office
Zeilen in Excel auf Gleichheit vergleichen
gelöst Frage von abuelitoMicrosoft Office6 Kommentare

Hallo an Alle, ich habe folgendes Problem und würde mich freuen, wenn ihr mir helfen könnte (benötige eine VBA ...

Neue Wissensbeiträge
Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 6 StundenLinux1 Kommentar

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Tipps & Tricks

Solutio Charly Updater Fehlermeldung: Das Abgleichen der Dateien in -Pfad- mit dem Datenobject ist fehlgeschlagen

Tipp von StefanKittel vor 1 TagTipps & Tricks

Hallo, hier einmal als Tipp für alle unter Euch die mit der Zahnarztabrechnungssoftware Charly von Solutio zu tun haben. ...

Sicherheit

Meltdown und Spectre: Wir brauchen eine "Abwrackprämie", die die CPU-Hersteller bezahlen

Information von Frank vor 1 TagSicherheit12 Kommentare

Zum aktuellen Thema Meltdown und Spectre: Ich wünsche mir von den CPU-Herstellern wie Intel, AMD oder ARM eine Art ...

Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 1 TagSicherheit9 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Heiß diskutierte Inhalte
Sicherheit
Meltdown und Spectre: Die machen uns alle was vor
Information von FrankSicherheit23 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
gelöst Frage von Windows10GegnerNetzwerkgrundlagen22 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...

Netzwerke
Packet loss bei "InternetLeitungsvollauslastung"
gelöst Frage von Freak-On-SiliconNetzwerke17 Kommentare

Servus; Ja der Titel klingt komisch, is aber so. Wenn die Internetleitung voll ausgelastet ist, hab ich extreme packet ...

Ubuntu
Ubuntu - Starter für nicht vertrauenswürdige Anwendungen
Frage von adm2015Ubuntu17 Kommentare

Hallo zusammen, Ich verwende derzeit die Ubuntu Versionen 17.10 bzw. im Test 18.04. Ich habe mehrere .desktop Dateien in ...