Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1820to1824
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wenn in Zeile ein Wert, dann kopieren

Wenn in Zeile ein Wert, dann kopieren
02.04.2021 14:30:13
Alaattin
Hallo,
ich habe folgendes Problem. Ich möchte gerne aus verschiedenen worksheets (Montag, Dienstag, Mittwoch, Donnerstag, Freitag) einen Wert z.B. 8a nacheinander Zeilen (insgesamt 12 Zeilen, 100 Spalten) durchsuchen lassen und dann in einer Tabelle1 in die erste Spalte den zuerst gefundenen Wert, in die zweite Spalte den zweiten gefundenen Wert und den dritten Fund in die dritte Spalte kopieren. Das muss zeilenweise funktionieren. Mit VBA wird es wahrscheinlich was kurzes sein. Ich bedanke mich schon im Voraus für die Hilfe.
BEISPIEL:
WorksheetMontag
Spalte1. / Spalte 2. /Spalte 3. /Spalte4. /..........
Zeile1 leer. / 8a groß. /leer. /leer. /leer. /8a muster. / leer ...
Zeile 2. 8a Meier. /leer. /leer. /8a. / leer. /leer. / 8a Schneider
Ziel Tabelle 1
Spalte1. /Spalte2. /Spalte3.
8a Groß. /8a Muster. / leer
8a Meier. /8a. /8a Schneider
....

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn in Zeile ein Wert, dann kopieren
02.04.2021 14:34:40
onur
Ist es denn sooo schwer, eine Beispielsdatei zu posten stat die Datei mit Worten zu beschreiben ?

AW: Wenn in Zeile ein Wert, dann kopieren
02.04.2021 15:06:51
Alaattin
Hier eine Beispieldatei. Wobei ich die Datenmenge reduziert darstellen musste. So wie Montag (volle Datenmenge) gibt es Dienstag-Freitag.
https://www.herber.de/bbs/user/145276.xlsx

AW: Wenn in Zeile ein Wert, dann kopieren
02.04.2021 15:17:23
onur
Und wenn 5 gefunden werden statt der max 3, die du vorgesehen hast?

AW: Wenn in Zeile ein Wert, dann kopieren
02.04.2021 15:46:08
Alaattin
Es können nur max. drei Einträge pro Zeile auftauchen, da nur drei Räume zur Verfügung stehen.

AW: Wenn in Zeile ein Wert, dann kopieren
02.04.2021 14:39:42
alaattin
Hallo Onur,
selbstverständlich ist es nicht. schwer. Aus datenschutzrechtlichen Gründen hätte ich viele Daten ändern müssen. Deshalb kurz und knapp eingegeben.
Wenn durch meine Eingaben es nicht klar geworden ist, würde ich mich gleich an eine Besipieldatei machen.

Anzeige
AW: Wenn in Zeile ein Wert, dann kopieren
02.04.2021 15:04:46
onur
"Wenn durch meine Eingaben es nicht klar geworden ist, ...."?
1) Warum sonst habe ich wohl so geantwortet?
2) Es geht nicht nur um "klar geworden" oder nicht, es geht auch darum, dass man auch ein Umfeld braucht, um Makros/Formeln auch testen zu können - Sollen WIR deine Datei deswegen nachbauen?
3) Ich schrieb "BEISPIELS-Datei" - deine geheimen Daten interessieren wirklich Niemanden.

AW: Wenn in Zeile ein Wert, dann kopieren
02.04.2021 19:23:04
Werner
Hallo,
teste mal:
  • Option Explicit
    Sub Schaltfläche1_Klicken()
    Dim varBlätter As Variant, i As Long, a As Long, x As Long, y As Long, z As Long
    varBlätter = Array("Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag")
    For i = LBound(varBlätter) To UBound(varBlätter)
    a = 6
    With Worksheets(varBlätter(i))
    For x = 4 To .Cells(.Rows.Count, "A").End(xlUp).Row
    y = 2 + 2 * i
    For z = 2 To 73
    If Left(.Cells(x, z), 2) = "8A" Then
    Worksheets("Tabelle1").Cells(a, y + i) = .Cells(x, z)
    Worksheets("Tabelle1").Cells(a + 1, y + i) = .Cells(2, z)
    y = y + 1
    End If
    Next z
    a = a + 2
    Next x
    End With
    Next i
    End Sub
    

  • Gruß Werner

    Anzeige
    AW: Wenn in Zeile ein Wert, dann kopieren
    03.04.2021 11:32:49
    Alaattin
    Hallo Werner,
    du warst mir eine große Hilfe. Danke für die Mühe!
    Ich habe eine kleine Veränderung vorgenommen, damit ich das Suchkriterium in Tabelle1 (A1) eingeben kann und mit einer eingefügten Schaltfläche das Makro aufrufe. Zudem lösche ich vorher die beschriebenen Zellen.
    Das mit dem Raum, der oberhalb der ausgegeben Klasse erscheinen soll, habe ich gelassen. Wie gesagt, es wäre ein Schmankerl ;-) und ich wollte es nicht mit einer Formel. Ich denke, es könnte man auch in das Makro packen. Wie, weiß ich nicht.
    Dim varBlätter As Variant, i As Long, a As Long, x As Long, y As Long, z As Long
    varBlätter = Array("Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag")
    With Worksheets("Tabelle1")
    .Range("B4:P15").ClearContents
    End With

    For i = LBound(varBlätter) To UBound(varBlätter)
    a = 1
    With Worksheets(varBlätter(i))
    For x = 4 To .Cells(.Rows.Count, "A").End(xlUp).Row
    y = 2 + 2 * i
    For z = 2 To 73
    If Left(.Cells(x, z), 3) = Range("A1") Then
    Worksheets("Tabelle1").Cells(a, y + i) = .Cells(x, z)
    Worksheets("Tabelle1").Cells(a + 1, y + i) = .Cells(2, z)
    y = y + 1
    End If
    Next z
    a = a + 2
    Next x
    End With
    Next i
    End Sub

    Anzeige
    sorry, aber von welcher....
    03.04.2021 20:18:11
    welcher....
    Hallo,
    ...Raumbezeichnung sprichst du denn? Mein Code trägt doch die Daten aus Zeile 2 (bei der ich davon ausgegangen bin, dass es sich dabei um die Raumbezeichnungen handelt) im Tabellenblatt ein?
    Gruß Werner

    AW: alternativ dazu, eine Formel würde reichen ...
    02.04.2021 19:44:21
    neopa
    Hallo alaattin,
    ... wenn man es möchte. Dazu müsste man allerdings INDIREKT() einsetzen, was ich vermeiden würde.
    Für Montag: in B6:
    =WENNFEHLER(WENN($A6="Raum";INDEX(Montag!$2:$2;AGGREGAT(15;6;SPALTE($B6:$BZ6)/(INDEX(Montag!$B$4:$BZ$9;$A5;)&gt0);SPALTE(A5)));INDEX(Montag!$4:$9;$A6;AGGREGAT(15;6;SPALTE($B6:$BZ6)/(INDEX(Montag!$B$4:$BZ$9;$A6;)&gt0);SPALTE(A6))));"")
    und diese für Montag nach rechts und kopieren.
    Ohne INDIREKT() die gleiche Formel auch für die anderen Wochentage, eben nur da eben in der Formel "Montag" entsprechend ersetzen.
    Gruß Werner
    .. , - ...
    Anzeige

    336 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige