Clever-Excel-Forum

Normale Version: Suchfeld mit Textfenster in eine Dynamische Tabelle erstellen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9
Hallo, :19:

das lässt sich einfach so lösen: :21:

1. Erstelle eine neue Datei mit nur einem Tabellenblatt.
2. Mache die Kopf- und Fußzeile wie du sie brauchst rein.
3. Speicher diese Datei ab.

Dann ändere diese Codezeile...


Code:
Set wkb2 = Workbooks.Add(1)

.. so ab:


Code:
Set wkb2 = Workbooks.Add("C:\Temp\Kopf.xlsb")

Siehe hier...

Pfad- und Dateiname natürlich anpassen.

Schon hast Du die Daten in einem Sheet mit Kopf- und Fußzeile.
Hallo Case,

perfect alles funktioniert super, danke dir.

Kann ich eigentlich, beim Ausgabe der Daten in eine neu Tabelle, in der Uhrsprungstabelle, in einer bestimmte Zeile, das Ausgabedatum vermerken?
Und Letze Frage Angel , kann ich so einprogrammieren, daß wenn der gesuchte wert in eine Zeile gefunden wurde, dass diese Wert nicht mehr in anderen Zeilen mehr berücksichtigt wird?

Schon mal Besten Dank
Hallo, :19:

um Das Datum in eine Zelle zu schreiben:
Code:
Range("E5").Value = Date

Mit Uhrzeit:
Code:
Range("E5").Value = Now

"E5" musst Du noch anpassen. Und du musst/solltest das Tabellenblatt davor schreiben, um eine korrekte Referenzierung zu erreichen.

Dein weiteres Anliegen habe ich nicht verstanden, da musst du etwas ausführlicher werden.
Das Problem ist, ich bekomme die Daten über die Listbox angezeigt und die Daten die ich dann ausgebe, sollen in der Ursprungstabelle in Bestimmte Zeile "AV", das Ausgabe Datum bekommen.

Hier der Code für Suchergebnisse anzeigen:


Code:
Private Sub CommandButton1_Click()
Dim xSuche, xAdresse, xErste As String
Dim y As Boolean
Dim arr() As Variant
Dim rng As Range
Dim iCounter, iRowU As Integer
ListBox1.Clear
xSuche = TextBox1.Value
If xSuche = "" Then
    MsgBox "Bitte erst einen Suchbegriff eingeben!", vbExclamation, "Achtung!"
    Exit Sub
End If
If ComboBox1.Value = "" And CheckBox2.Value = False Then
    MsgBox "Bitte geben Sie ein, wo der Begriff gesucht werden soll!", vbExclamation, "Achtung!"
    Exit Sub
End If
For iCounter = 1 To ThisWorkbook.Sheets.Count
    If CheckBox2.Value = True Or Worksheets(iCounter).Name = ComboBox1.Value Then
        Set rng = Worksheets(iCounter).Cells.Find _
            (xSuche, lookat:=Suchart, LookIn:=xlValues)
        If Not rng Is Nothing Then
            With Worksheets(iCounter)
                xErste = rng.Address(False, False)
                y = True
                Do Until xAdresse = xErste
                    ReDim Preserve arr(0 To 50, 0 To iRowU)
                    arr(0, iRowU) = .Name
                    arr(1, iRowU) = rng.Address(False, False)
                    arr(2, iRowU) = .Cells(rng.Row, 4)
                    arr(3, iRowU) = .Cells(rng.Row, 8)
                    arr(4, iRowU) = .Cells(rng.Row, 11)
                    arr(5, iRowU) = .Cells(rng.Row, 18)
                    arr(6, iRowU) = .Cells(rng.Row, 19)
                    arr(7, iRowU) = .Cells(rng.Row, 20)
                    arr(8, iRowU) = .Cells(rng.Row, 44)
                    arr(9, iRowU) = .Cells(rng.Row, 45)
                    arr(10, iRowU) = .Cells(rng.Row, 46)
                    arr(11, iRowU) = .Cells(rng.Row, 47)
                    arr(12, iRowU) = .Cells(rng.Row, 48)
                    arr(13, iRowU) = .Cells(rng.Row, 49)
                    iRowU = iRowU + 1
                    Set rng = .Cells.FindNext(after:=rng)
                    xAdresse = rng.Address(False, False)
                Loop
                xAdresse = ""
                xErste = ""
            End With
        End If
    End If
Next iCounter
If y = False Then
    MsgBox "Der Suchbegriff wurde nicht gefunden!"
Else
    ListBox1.Column = arr
End If
End Sub


Hier der Code für Daten Ausgabe:


Code:
Private Sub CommandButton3_Click()

Dim iCounter, xCounter As Long
Set wkb1 = ThisWorkbook
Set wks2 = wkb2.Sheets(1)
wkb1.Activate
For iCounter = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(iCounter) And xOpt = 1 Or xOpt = 2 Then
        Set XBlatt = Sheets(ListBox1.List(iCounter, 0))
        XZeile = Range(ListBox1.List(iCounter, 1)).Row
        xCounter = xCounter + 1
        XBlatt.Range("AT" & XZeile & ",G" & XZeile & ",H" & XZeile & ",K" & XZeile & ",R" & XZeile & ",S" & XZeile & ",T" & XZeile & ",AJ" & XZeile & ",AK" & XZeile & ",AL" & XZeile & "").Copy wks2.Cells(xCounter, 1)
    End If
Next iCounter
wks2.Activate
End Sub

Jetzt will ich, das bei den Daten, welche ich in neue Tabelle ausgebe, automatisch das Ausgabe Datum in der Tabelle erstellt wir aus welche ich die Daten ausgebe und zwar in Spalte AV.

Zum Zweiten Anliegen: Ich will das wenn der wert in eine Zeile gefunden wurde, dass dieser wert nicht mehr in andern Zeilen berücksichtig wird:
Bsp: in Spalte 16 --> steht in Zeile A, B, C, D das gleich zum Beispiel "A" --> momentan wenn ich jetzt nach A suchen würde bekomme ich 4 Ergebnisse, ich will aber nur einen Ergebnis sehen.
Hallo, :19:

dann so:


Code:
XZeile = Range(ListBox1.List(iCounter, 1)).Row
XBlatt.Cells(XZeile, 48).Value = Date
jetzt noch zum Thema keine doppelte Ausgabe von gleichen werten :19: :19:
Hallo, :19:

da es hier zu viele Fallstricke gibt, solltest du das mal an Hand einer Beispieldatei darlegen. Es sollte in der Datei klar erkenntlich sein, was du als doppelte Ausgabe ansiehst. :21:
OK, werde ich erstellen.
Hallo Case,

hier ein Bsp zu meinen Problem:

[
Bild bitte so als Datei hochladen: Klick mich!


wie du Siehst in Spalte 1 in Zeile A ist z.b "P1B1V1" in einen Wert vorhanden, auch in Zeile B ist auch "P1B1V1" vorhanden.
Wenn ich jetzt über Markro z.B. nach P1B1V1 suche bekomme ich als Ergebnis zwei Sachen angezeigt, weil er diesen Begriff in zwei Zeilen findet in Wirklichkeit müsste nur ein Ergebnis kommen.

Ich möchte es so machen, daß wenn in eine Zeile die Zeichenreinfolge gefunden wurde, das es in der anderen Zeilen nicht mehr berücksichtigt wird.
D.h. er soll quer suchen, er soll eine Zeilenlänge als geschlossene Einheit sehen also

In Zeile 1 und in Spalte X, wurde der Begriff P1B1V1 gefunden, dann nicht mehr in Zeile 1 in anderen Spalten suchen.
Und das dann für alle Zeilen

Geht das?
Hallöchen,

Du gehst in einer Schleife über alle Zeilen und suchst jeweils von vorn:

Option Explicit

Sub Makro1()
Dim iCnt%, gefunden
For iCnt = 1 To 4
  Set gefunden = Rows(iCnt).Find(What:="A", After:=Rows(iCnt).Cells(1, 1), LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False)
  If Not gefunden Is Nothing Then MsgBox gefunden.Column
Next
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0

Seiten: 1 2 3 4 5 6 7 8 9