Anzeige
Archiv - Navigation
1832to1836
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
In Spalte suchen
28.05.2021 23:33:44
Eberhard
Guten Abend
Ich möchte das in Spalte F im Tabellenblatt1 nach Zahlen oder Buchstaben (kann auch ein Wort sein) gesucht wird. Die gefundenen Zeilen sollen anschliessend von Spalte A bis F ins Tabellenblatt2 ab Zeile 2 untereinander kopiert werden. Die Suche kann in einer Combobox1 die sich auf einer UserForm befindet ausgewählt werden. Nun habe ich das Problem, dass wenn ich zum Beispiel einen Buchstaben "A" auswähle, auch die Zeilen welche sich zum Beispiel "RA" drin befinden kopiert. Dies sollte eigentlich nicht sein!
Die Spalte F wo sich der Inhalt für die ComboBox befüllen befindet , ändert sich nach Anwender auch ständig. Also ist zum Beispiel der Buchstabe "A" einmal in Zeile 1 und ein andermal in Zeile 12. Jedoch immer in Spalte F.
Hat da jemand eine Idee?
Da wäre mein Code, der fast funktioniert! :-)

Dim rng As Range
Dim Suchen As String
Dim sFirstAdress As String
Application.ScreenUpdating = False
Suchen = ComboBox1
Set rng = Worksheets("Tabelle1").Range("F:F").Find(Suchen)
If rng Is Nothing Then
MsgBox "Lagerort " & Suchen & " nicht gefunden!", vbInformation
Else
sfirstaddress = rng.Address
Do
rng.EntireRow.Copy
Worksheets("Tabelle2").Cells(Rows.Count, "A").End(xlUp) _
.Offset(1, 0).PasteSpecial Paste:=xlPasteAll
Set rng = Worksheets("Tabelle1").Range("F:F").FindNext(rng)
Loop While Not rng Is Nothing And rng.Address  sfirstaddress
End If
Application.CutCopyMode = False
Application.ScreenUpdating = True
Gruss Daniel

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Spalte suchen
28.05.2021 23:41:56
GerdL
Moin Daniel,
dann präzisiere die Sucheinstellungen.

Set Rng = Worksheets("Tabelle1").Range("F:F").Find(Suchen, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
Gruß Gerd
AW: In Spalte suchen
30.05.2021 09:40:32
Eberhard
Hallo Gerd/Hallo zusammen
Vielen Dank für die Anpassung der Suche. Funktioniert!
Habe aber noch ein anderes Problem. Mit dem Code kopiere ich ja die gefunden Zeilen in ein neues Tabellenblatt. Funktioniert auch. Nun sollte es mir die Spaltenlänge im Bereich "A3: bis letzte gefüllte Spalte" automatisch anpassen. Habe folgendes versucht aber funktioniert leider nicht!

Dim LetzteZeile, LetzteSpalte As Integer
Dim ws As Worksheet
Set ws = Worksheets("Lagerliste_drucken")
LetzteZeile = ws.Cells(Rows.Count, 1).End(xlUp).Row
LetzteSpalte = ws.Cells(LetzteZeile, Columns.Count).End(xlToLeft).Column
'Zeilenlänge automatisch anpassen
Worksheets("Lagerliste_drucken").Range("A3:" & Cells(LetzteZeile, LetzteSpalte).Address(False, False)).Columns.AutoFit
Passe ich jede Spalte im Tabellenblatt selber auf die Länge an, so schreibt es mir den Inhalt auf eine Zeile. Wenn ich mein Code starte, so habe ich bei einer gewissen Länge immer zwei Zeilen in einer Zelle!
Wie muss ich das ändern? Müssen die Spalten auf den längsten "Textinhalt" geprüft werden, und anschliessend die Spaltenlänge angepasst werden?
Wenn ja, wie mache ich das in einem Bereich?
Besten Dank für Eure Hilfe.
Gruss Daniel
Anzeige
AW: In Spalte suchen
30.05.2021 10:25:06
Werner
Hallo,
deine Beschreibung ist unverständlicht. Was meinst du mit "Spaltenlänge"? Eine Spalte hat eine Breite.
So wie ich das sehe, willst du die Breite der Spalten von Spalte A bis zur letzten belegten Spalte der Zeile 3 in ihrer Breite anpassen.

With ws
.Range(.Cells(3, 1), .Cells(3, .Cells(3, .Columns.Count).End(xlToLeft).Column)).Columns.AutoFit
End With
Gruß Werner
AW: In Spalte suchen
30.05.2021 11:02:34
Eberhard
Hallo Werner
Ja eigentlich meinte ich schon die Breite.
Es soll in Spalte A bis Spalte F ab Zeile 3 bis zur letzten gefüllten Zeile, auf die Breite einstellen, wo sich der längste Text befindet.
Ein Beispiel:
In Spalte A Zeile 5 steht "Hanspeter Krähenbühl". Dies ist der längste Name der Spalte A. Nun soll die Spaltenbreite auf diesen Namen angepasst werden.
In Spalte B Zeile 3 steht "Mazda 3 SkyG Revolution 160 PS". Dies ist der längste Text der Spalte B. Nun soll die Spaltenbreite auf diesen Text angepasst werden.
usw....
Hoffe Du meinst jetzt was ich in etwa meine?
Gruss Daniel
Anzeige
AW: In Spalte suchen
30.05.2021 11:41:01
Eberhard
Sorry, habe den Hacken nicht gesetzt!
Gruss Daniel
AW: In Spalte suchen
31.05.2021 09:45:48
Werner
Hallo,
meinst du so?

Option Explicit
Public Sub Spaltenbreite()
Dim loSpalte As Long, i As Long, dblBreite As Double
Application.ScreenUpdating = False
With Worksheets("Lagerliste_drucken")
loSpalte = .Cells(3, .Columns.Count).End(xlToLeft).Column
.Range(.Cells(1, 1), .Cells(1, loSpalte)).Columns.AutoFit
For i = 1 To loSpalte
If .Cells(3, i).ColumnWidth > dblBreite Then
dblBreite = .Cells(3, i).ColumnWidth
End If
Next i
.Range(.Cells(1, 1), .Cells(1, loSpalte)).ColumnWidth = dblBreite
End With
End Sub
Gruß Werner
Anzeige
AW: In Spalte suchen
01.06.2021 08:24:10
Eberhard
Hallo Werner
Ja genau sowas habe ich gesucht. Vielen Dank.
Gruss Daniel
Gerne u. Danke für die Rückmeldung. o.w.T.
01.06.2021 13:01:46
Werner

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige