Thema Datum  Von Nutzer Rating
Antwort
14.02.2017 11:50:38 Ferdinand
NotSolved
15.02.2017 13:01:02 Andreas
NotSolved
15.02.2017 14:41:12 Gast38556
NotSolved
Blau Brauche Hilfe mit Tabellenvergleich
15.02.2017 17:41:29 Andreas
NotSolved

Ansicht des Beitrags:
Von:
Andreas
Datum:
15.02.2017 17:41:29
Views:
668
Rating: Antwort:
  Ja
Thema:
Brauche Hilfe mit Tabellenvergleich

Ich denke jetzt hab ichs verstanden.

habe da was vorbereitet. Teste es bitte in einer Dummydatei, nicht das am Ende noch eine Daten verloren gehen.
Wenn in VBA etwas überschrieben wird lässt es sich nicht mehr Rückgängig machen.

Erzeuge bitte zwei Module:
1x Programm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Sub Hauptprogramm()
 
Dim ProdNotInTab2 As Boolean
Dim StartZeile As Integer
Dim AnzahlZeilen As Integer
Dim ZeilenTab2  As Integer
Dim Zaehler1 As Integer
Dim Zaehler2 As Integer
Dim Zaehler3 As Integer
Dim ProduktLvl1 As String
 
ZeilenTab2 = ActiveWorkbook.Sheets("Tabelle2").Cells(Rows.Count, 1).End(xlUp).Row
 
Zaehler1 = 2
 
Do
                
    If ActiveWorkbook.Sheets("Tabelle1").Cells(Zaehler1, 1).Value = 1 Then
        ProduktLvl1 = ActiveWorkbook.Sheets("Tabelle1").Cells(Zaehler1, 3).Value
         
        For Zaehler2 = 2 To ZeilenTab2
             
            If ProduktLvl1 = ActiveWorkbook.Sheets("Tabelle2").Cells(Zaehler2, 3).Value Then
                ProdNotInTab2 = True
                Exit For
            Else
                ProdNotInTab2 = False
            End If
             
        Next Zaehler2
         
        If ProdNotInTab2 Then
         
            Zaehler3 = Zaehler2 + 1
             
            Do Until ActiveWorkbook.Sheets("Tabelle2").Cells(Zaehler3, 1) = 2 Or ActiveWorkbook.Sheets("Tabelle2").Cells(Zaehler3, 1) = ""
                Zaehler3 = Zaehler3 + 1
            Loop
             
            StartZeile = Zaehler1 + 1
            AnzahlZeilen = Zaehler3 - (Zaehler2 + 1)
             
            Call ZeileEinfuegen(StartZeile, AnzahlZeilen)
            Worksheets("Tabelle2").Range("A" & StartZeile, "D" & Zaehler1 + AnzahlZeilen).Copy
            Worksheets("Tabelle1").Range("A" & StartZeile, "D" & Zaehler1 + AnzahlZeilen).PasteSpecial xlPasteValues
        End If
     
    End If
    Zaehler1 = Zaehler1 + 1
 
Loop Until ActiveWorkbook.Sheets("Tabelle1").Cells(Zaehler1, 1).Value = Empty
 
 
End Sub

1x ZeilenEinfügen

1
2
3
4
5
6
7
8
9
10
11
Function ZeileEinfuegen(ZeileStart As Integer, AnzZeilen As Integer)
 
Dim Zaehler As Integer
 
For Zaehler = ZeileStart To ZeileStart + AnzZeilen - 1
 
    ActiveWorkbook.Sheets("Tabelle1").Cells(Zaehler, 1).EntireRow.Insert
 
Next Zaehler
 
End Function

Probiere es mal aus und melde dich wieder, wie es funktioniert hat.
Kommentare kann ich die bei Gelegenheit auch nochmal ran basteln.
Wieviele Zeilen hat Eigentlich deine Tabelle 2?
über 32000?
Das ist wichtig, da dann der Fehler Index außerhalb des Bereich auftritt, denn die Schleifen verarbeiten nur Integer.

Gruß
Andreas


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
14.02.2017 11:50:38 Ferdinand
NotSolved
15.02.2017 13:01:02 Andreas
NotSolved
15.02.2017 14:41:12 Gast38556
NotSolved
Blau Brauche Hilfe mit Tabellenvergleich
15.02.2017 17:41:29 Andreas
NotSolved