Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen einfügen, in Abh. von anderem Arbeitsblatt


Betrifft: Zeilen einfügen, in Abh. von anderem Arbeitsblatt von: Matthias86
Geschrieben am: 30.09.2017 11:53:30

Hallo zusammen,

aktuell bin ich dabei, ein Makro für das Anpassen einer Tabelle zu schreiben, aber leider hab ich noch relativ wenig Erfahrung mit der Makroprogrammierung, und das Anpassen kommt mir recht komplex vor. Also ich kriege es nicht hin. Vielleicht kann mir ja jemand helfen oder hat eine Idee? :-)
Und zwar habe ich zwei Arbeitsblätter/Tabellen. in Tabelle 1 entspricht jede Zeile einem Blick eines Probanden, und enthält Anfangs- und Endzeit jedes Blickes, den Ort, auf den der Blick gerichtet ist, sowie eine vierte Spalte, in der Farbnamen oder keine Werte eingetragen sind.
Tabelle 2 enthält Inhalte eines Displays, das verschiedene Farben annehmen kann; die Spalten sind hier auch Anfangs- und Endzeit, sowie die Farbe des Displays.
Nun würde ich gerne in Tabelle 1 für jede Zeile einzeln, in der die 4. Spalte keinen Wert enthält, eine variable Anzahl von Zeilen unterhalb dieser Zeile einfügen. Die Anzahl hängt davon ab, bei wie vielen Zeilen in Tabelle 2 der Anfangswert dort zwischen der Anfangs- und Endzeit der jeweiligen Zeile aus Tabelle 1 liegen.
Die größte Schwierigkeit ist für mich, dass zum einen die Ifs und For-Schleifen ziemlich verschachtelt sind, und Fehler gemeldet werden. Und zum anderen dieses Hin-und-her-Springen zwischen den Arbeitsblättern. Mir würde es schon reichen, wenn die Anzahl der Zeilen erst mal nur in Tabelle 1 (Spalte 5) übertragen wird, dann kann ich sie ja in einem zweiten Schritt zum Einfügen der Zeilen benutzen – so ist auch mein Makro aufgebaut, das folgendermaßen aussieht:

Dim r As Long

Sub Schleife()
Dim Zeile As Long
Dim ZeileEnd As Long
ZeileEnd = 100

With Tabelle1
For Zeile = 2 To ZeileEnd
    If .Cells(Zeile, 4).Value = "" Then
       With Tabelle2
            For i = 1 To 100
            r = 0
                 If .Cells(Zeile, 1).Value > .Tabelle2.Cells(Zeile, 1).Value And 
                 .Cells(Zeile, 1).Value < .Tabelle2.Cells(Zeile, 2).Value Then
           	 r = r + 1
            	 .Tabelle1.Cells(Zeile, 5) = r
                 End If
            Next i
    End If
Next Zeile
End With
End Sub
Vielen Dank schon mal für eure Antworten!

  

Betrifft: AW: Zeilen einfügen, in Abh. von anderem Arbeitsblatt von: Matthias86
Geschrieben am: 30.09.2017 11:55:27

Hier sind noch Beispieldaten!
https://www.herber.de/bbs/user/116652.xlsx


  

Betrifft: AW: Zeilen einfügen, in Abh. von anderem Arbeitsblatt von: onur
Geschrieben am: 30.09.2017 14:11:39

Meinst du so etwas?
https://www.herber.de/bbs/user/116653.xlsm


  

Betrifft: AW: Zeilen einfügen, in Abh. von anderem Arbeitsblatt von: Matthias86
Geschrieben am: 30.09.2017 14:52:33

Ah, danke Onur, aber wie kann ich das denn testen?
Ich sehe weiterhin die ersten 2 Tabellen, sowie eine dritte, die der erst gleicht. Und Makros sind aber deaktiviert?


  

Betrifft: AW: Zeilen einfügen, in Abh. von anderem Arbeitsblatt von: onur
Geschrieben am: 30.09.2017 15:20:10

Wenn makros deaktiviert, musst DU aktivieren (erscheint beim Aufmachen eine gelbe Leiste oben mit "Makros aktivieren"?).
Erste Tabelle Button drücken.
Die letzte Tabele ist nur eine Arbeitskopie der ersten, um schnell alles rückgängig machen zu können - kannst du löschen.


  

Betrifft: AW: Zeilen einfügen, in Abh. von anderem Arbeitsblatt von: Matthias86
Geschrieben am: 30.09.2017 15:42:48

Ah super, vielen Dank, Onur! Funktioniert! :-)


Beiträge aus den Excel-Beispielen zum Thema "Zeilen einfügen, in Abh. von anderem Arbeitsblatt"