Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
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

Oder Funktion mit Suche und Datum übetragen

Oder Funktion mit Suche und Datum übetragen
16.07.2018 17:45:11
maier
Hallo
habe eine frage.
Habe folgendes Makro:
Sub Makro2()
' Makro2 Makro
EndeTB1 = ThisWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 2).End(xlUp).Row ' Variables  _
Ende der Spalte B wird ermittelt und gespeichert
For i = 1 To EndeAESTOFF1 ' Anfang der ersten Zählschleife
If ThisWorkbook.Worksheets("Tabelle1").Cells(i, 2) = "X1"Then ' Wenn x in Spalte A (indivduelle  _
Zeile) vorhanden, dann...
EndeTB2 = ThisWorkbook.Worksheets("Zwischenschritt").Cells(Rows.Count, 1).End(xlUp).Row ' _
Ermittel letzte beschriebene Zelle auf Tabelle2
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 1) = ThisWorkbook.Worksheets(" _
AESTOFF1").Cells(i, 1) ' Trage Wert aus Spalte C in Tabelle2 in erste freie Zelle ein
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 2) = ThisWorkbook.Worksheets(" _
Tabelle1").Cells(i, 2)
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 4) = ThisWorkbook.Worksheets(" _
Tabelle1").Cells(i, 8)
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 3) = ThisWorkbook.Worksheets(" _
Tabelle1").Cells(i, 11)
End If
Next i 'Ende der Schleife
End Sub
Läuft soweit.
Was ich nicht hinbekomme.
1. Problem
Aktuell sucht er nur nach X1. Ich müsste aber von X1 bis X9 suchen. Also alles mit X und Zahl. ich habe versucht = "X1" or "X2" ging aber nicht.
Habe auch schon versucht Suchwort = "X1" or "X2" und ging leider auch nicht.
Wie kann ich nach mehreren Begriffen suchen?
2. Problem
Bei dieser Zeile:
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 3) = ThisWorkbook.Worksheets("Tabelle1").Cells(i, 11)
in Tabelle 1 Spalte 11 ist ein Datum hinterlegt. Wenn ich dies nun in die Zwischenschritt Mappe übetrage wird von ein DAtum eine Zahl. Wie kann ich Datum zu Datum kopieren?
DANKE

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

Betreff
Datum
Anwender
Anzeige
AW: Oder Funktion mit Suche und Datum übetragen
16.07.2018 18:07:45
Werner
Hallo,
das wäre wohl was für eine Select Case Anweisung.
Vorher aber ein paar Anmerkungen:
1. du hast keinerlei Variablen deklariert
2. der Variablen EndeAESTOFF1 wird (zumindest in deinem Makro) kein Wert zugewiesen
Lade doch mal eine Beispielmappe hoch.
Gruß Werner
AW: Oder Funktion mit Suche und Datum übetragen
16.07.2018 18:10:10
Oberschlumpf
Hallo,
wenn ich deinen Code kopiere und in den VBE einfüge, wird das z Bsp so angezeigt:
ThisWorkbook.Worksheets(" AESTOFF1 ").Cells(i, 1)

heißt eine der Tabellen wirklich " AESTOFF1 " (leerzeichen zu Beginn + am Ende), oder ist das hier im Forum ein Anzeigefehler, und die Tabelle heißt richtig "AESTOFF1" (ohne Leerzeichen im Namen)?
Ciao
Thorsten
Anzeige
AW: Oder Funktion mit Suche und Datum übetragen
16.07.2018 18:23:44
maier
Hier ist nun mein richtiges Makro aus meiner Datei mit den richtigen TAbellen Namen
Die eine Tabelle heißt AESTOFF1 und die andere Zwischenschritt
Das mit dem Datum habe ich nun hinbekommen.
Was mir noch fehlt ist die Suche nach mehreren Begriffen.
Ich brauche eine Funktion wo ich anstatt nur nach M1 mehrere Suchbegriffe finden kann.
Ich muss suchen nach M1 bis M9 und L1 bis L9 und Q1 bis Q9
Sub Makro2()
' Makro2 Makro
EndeAESTOFF1 = ThisWorkbook.Worksheets("AESTOFF1").Cells(Rows.Count, 2).End(xlUp).Row '  _
Variables Ende der Spalte B wird ermittelt und gespeichert
For i = 1 To EndeAESTOFF1 ' Anfang der ersten Zählschleife
If ThisWorkbook.Worksheets("AESTOFF1").Cells(i, 2) = "M1" Or ThisWorkbook.Worksheets("AESTOFF1") _
.Cells(i, 2) = "M2" Then ' Wenn x in Spalte A (indivduelle Zeile) vorhanden, dann...
EndeTB2 = ThisWorkbook.Worksheets("Zwischenschritt").Cells(Rows.Count, 1).End(xlUp).Row ' _
Ermittel letzte beschriebene Zelle auf Tabelle2
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 1) = ThisWorkbook.Worksheets(" _
AESTOFF1").Cells(i, 1) ' Trage Wert aus Spalte C in Tabelle2 in erste freie Zelle ein
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 2) = ThisWorkbook.Worksheets(" _
AESTOFF1").Cells(i, 2)
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 4) = ThisWorkbook.Worksheets(" _
AESTOFF1").Cells(i, 8)
ThisWorkbook.Worksheets("Zwischenschritt").Cells(EndeTB2 + 1, 3) = ThisWorkbook.Worksheets(" _
AESTOFF1").Cells(i, 11)
Cells(EndeTB2 + 1, 3).Select
Selection.NumberFormat = "m/d/yyyy"
End If
Next i 'Ende der Schleife
End Sub

Anzeige
AW: Oder Funktion mit Suche und Datum übetragen
16.07.2018 18:33:50
Oberschlumpf
Hi
auch wenn du 1. gelöst hast, weiß ich noch immer nicht, wie deine Tabellen heißen.
Im VBE wird der kopierte Text wieder mit Leerzeichen gezeigt.
Du schreibst zwar
Die eine Tabelle heißt AESTOFF1 und die andere Zwischenschritt
aber auch aus dem Satz geht nicht ganz genau hervor, wo beginnen die Tabellennamen + wo hören sie auf.
Unabhängig davon, wieso zeigst du uns nicht per Upload eine Bsp-Datei, wie von Werner vorgeschlagen?
Die Datei sollte Bsp-Daten und natürlich deinen VBA-Code enthalten.
Ciao
Thorsten
AW: Oder Funktion mit Suche und Datum übetragen
16.07.2018 20:39:02
maier
Hallo
also hier die Beispiel Datei
https://www.herber.de/bbs/user/122722.xlsb
Was ich noch brauche. Das Makro muss in Spalte B des Arbeitsblatt "Tabelle 1" nach M1 bis M9 und nach L1 bis L9 suchen. Wenn Treffer dann Makro durchführen das die Spalten in das Arbeitsblatt "Zwischenschritt" übetragen werden.
Aktuell funktioniert es nur mit M1.
Danke
Anzeige
AW: Oder Funktion mit Suche und Datum übetragen
16.07.2018 23:07:32
Oberschlumpf
Hallo,
hier, teste mal
https://www.herber.de/bbs/user/122723.xlsb
Ich habe deinen Code stark "vereinfacht" (und dadurch weniger fehleranfällig gemacht). Damit meine ich, dass der Code jetzt viel besser zu lesen ist.
Wenn du dich erinnerst, hast du sehr oft
ThisWorkbook.Worksheets("Tabelle1")
und
ThisWorkbook.Worksheets("Zwischenschritt")
geschrieben.
ThisWorkbook.Worksheets("Tabelle1") habe ich abgekürzt, in dem ich eine Worksheet-Variable namens lshTab1 erstellt habe.
Mit Set lshTab1 = ... habe ich Tabelle1 mit der Variablen verknüpft.
lshTab1 ist viel kürzer zuschreiben, hat aber alle Eigenschaften, Methoden, usw von ThisWorkbook.Worksheets("Tabelle1").
Die Benutzung von ThisWorkbook.Worksheets("Zwischenschritt") habe ich vereinfacht, in dem ich das Konstrukt
With ThisWorkbook.Worksheets("Zwischenschritt")
End With
eingesetzt habe.
Jeder Befehl, der innerhalb von With.../End With mit . beginnt, "gehört" zu dem Teil, der hinter With steht, in diesem Fall zu ThisWorkbook.Worksheets("Zwischenschritt").
Dein Problem, dass alle "L1-L9" + "M1-M9" gefunden werden sollen, habe ich mit einer zusätzlichen For/Next-Schleife gelöst.
Innerhalb dieser Schleife wird jede Datenzeile geprüft, ob in Spalte B L1-L9" oder "M1-M9" enthalten ist.
Wenn JA, dann Eintrag in Zwischenschritt.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Oder Funktion mit Suche und Datum übetragen
17.07.2018 07:23:22
maier
funktioniert. danke!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige