Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1872to1876
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

Text finden und Spalteninhalte kopieren

Text finden und Spalteninhalte kopieren
18.03.2022 14:08:19
Fred
Hallo Excelperten,
ich steh auf dem Schlauch ..
folgendes:
In Zeile 3 der Spalte "N" steht Text
Ab Zeile 4 (Titel) beginnt eine formatierte Tabelle
was ich möchte;
1. Den identischen Textinhalt in dieser Tabelle,- in Spalte "N" suchen
und wenn gefunden
2. aus der gefundenen Zeile den Inhalt von Spalten "J:EJ" ab "J2" einfügen.
Kann mir ein Experte bitte diese Anweisung schreiben?!
Gruss
Fred

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: angenommen Deine formatierte Tabelle ...
18.03.2022 14:45:41
neopa
Hallo Fred,
... hat den Namen Tabelle1. Dann z.B. mit folgender Formel in J2:
=WENNFEHLER(INDEX(J:J;AGGREGAT(15;6;ZEILE(Tabelle1)/(Tabelle1=$N3);1););"") und diese bis EJ2 ziehend kopieren.
Gruß Werner
.. , - ...
AW: angenommen Deine formatierte Tabelle ...
18.03.2022 15:30:36
Fred
Hallo Werner,
vielen Dank für deine Formel,- diese führt gewünschtes aus.
Kleineres Problem:
Die formatierte Tabelle ist eine PQ (Abfrage aus dem Web)
Durch deine Formel benötigt nun die Abfrage mit anschließender "Bearbeitung" merklich mehr Zeit.
Darraufhin habe ich deine Formel über ein Makro eingesetzt und anschließend ".. .AutoFill ......"
Anschließend die Formelergebnisse in reine Werte umgewandelt

Sub daten2_b()
Worksheets("import").Activate
Worksheets("import").Range("J2").FormulaLocal = "=WENNFEHLER(INDEX(J:J;AGGREGAT(15;6;ZEILE(live_daten)/(live_daten=$N3);1););"""")"
With Worksheets("import") ' ActiveSheet
.Range("J2:J2").AutoFill Destination:=Range("J2:EJ2"), Type:=xlFillDefault
End With
' Werte statt Formeln
Worksheets("import").Range("J2:EJ2").Copy
Worksheets("import").Range("J2").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub
Nun gibt es keine merkliche Zeitverzögerung in der Aktualisierung der Abfrage.
Vielleicht bitte noch eine kleine Hilfestellung für mich!
Im oberen Makro wird zu Beginn das Sheet "import" aktiviert.
Meine Frage:
Wie ändere ich das Makro,- ohne das Sheet "import" zu aktivieren?
Wie auch immer,- vielen vielen Dank für deine kompetente Unterstützung, Werner!!
Gruss
Fred
Anzeige
AW: VBA-Hilfe erbeten, thread wieder offen owT
18.03.2022 15:36:52
neopa
Gruß Werner
.. , - ...
Wenn PQ dann PQ
18.03.2022 15:51:24
Yal
Hallo Fred,
um diese Werte in N3 solltest Du eine aktive Tabelle einschalten, so kannst Du N3 in PQ übernehmen und mit Join oder Filter auf die andere Query anwenden.
Ergebnis lässt Du in J2 raus.
Dann brauchst Du weder Formeln noch VBA und die Geschwindigkeit sollte einigermassen passen.
VG
Yal
AW: Wenn PQ dann PQ
18.03.2022 16:05:28
Fred
Hallo Yal,
ja,- eine gute Idee!!!
Werde ich umsetzen.
Vielen Dank
AW: das setzt jedoch voraus ...
18.03.2022 17:09:11
neopa
Hallo Fred,
... dass in J1:EJ1 nichts steht und der Suchwert aus N3 müsste auch in eine Zelle verschoben werden, über der momentan noch nichts steht. Nur dann könnte ich eine PQ-Lösung erstellen, die interaktiv definiert wird.
Gruß Werner
.. , - ...
Anzeige
AW: angenommen Deine formatierte Tabelle ...
18.03.2022 16:09:36
ChrisL
Hi Fred
Ich bin zu 100 % bei Yal. Wieso erst viele Daten in die Tabelle ablegen, wenn du nachher sowieso nur einen kleinen Teil davon brauchst.
Trotzdem noch kurz die Frage beantwortet. Passt schon fast, aber bei Destination ging der Punkt vergessen. Zudem liesse sich die With-Klammer noch erweitern.

Sub daten2_b()
With Worksheets("import")
.Range("J2").FormulaLocal = "=WENNFEHLER(INDEX(J:J;AGGREGAT(15;6;ZEILE(live_daten)/(live_daten=$N3);1););"""")"
.Range("J2:J2").AutoFill Destination:=.Range("J2:EJ2"), Type:=xlFillDefault
.Range("J2:EJ2").Copy
.Range("J2").PasteSpecial xlPasteValues
End With
Application.CutCopyMode = False
End Sub
Und hier noch eine andere Variante:

Sub t()
Dim lngZeile As Long
With Worksheets("import")
lngZeile = Application.Match(.Range("N3"), .ListObjects("live_daten").ListColumns(5).DataBodyRange, 0)
.Range("J2:EJ2").Value = .ListObjects("live_daten").ListRows(lngZeile).Range.Value
End With
End Sub
cu
Chris
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige