3.8k Aufrufe
Gefragt in Tabellenkalkulation von little-key Mitglied (333 Punkte)
Hallo,

ein Problem jagd das andere:

In Spalte B stehen in den Zellen untereinander:
LI Licht1
LI Licht2
LI Haus1
AS Bauen
AS Kaufen
KR Steine
KR Beton
usw.

Nun soll in der Spalte nach den ersten beiden Buchstaben z.B. "LI" gesucht werden und alle gefundenen Zellen in die Spalte E ab Zeile 2 kopiert werden.

Die Suchvariable (hier LI) wird durch eine Inputbox eingegeben:

<code>
Sub Suche()
Dim i As Variant
i = InputBox("Bitte den Fachbereich in Klein-Buchstaben wählen:", "Fachbereich auswählen")
Range("D2").Select
ActiveCell = i
Columns("B:B").Select
...... hier weiter
</code>

Danke und Grüße Mario

4 Antworten

0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Kleine Ergänzung noch wenn möglich:

dann in Spalte E die ersten beiden Buchstaben der Zellen (LI) löschen.
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Mario,

Sub Uebertragen()
Dim lngZeile1 As Long
Dim lngZeile2 As Long
Dim strInputbox As String
lngZeile1 = 1
lngZeile2 = 1
strInputbox = InputBox("Bitte den Fachbereich in Klein-Buchstaben wählen:", "Fachbereich auswählen")
Do
If Left(LCase(Cells(lngZeile1, 2)), 3) = strInputbox & " " Then
Cells(lngZeile2, 5) = Mid(Cells(lngZeile1, 2), 4)
lngZeile2 = lngZeile2 + 1
End If
lngZeile1 = lngZeile1 + 1
Loop While Cells(lngZeile1, 2) <> ""
End Sub

Bis später,
Karin
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi mario :-)

wie gewuenscht :-))

gruss nighty

Option Explicit
Sub Einfuegen()
Dim SpalteB() As Variant
Dim SpalteF() As Variant
Dim Zelle As Long, Zaehler As Long
Dim SuchZelle As String
SpalteB() = Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row)
Range("F2:F" & Cells(Rows.Count, 6).End(xlUp).Row).Clear
SpalteF() = Range("F2:F" & Cells(Rows.Count, 2).End(xlUp).Row)
SuchZelle = InputBox("Bitte einen zweistelligen Fachbereich angeben") & " "
For Zelle = LBound(SpalteB()) To UBound(SpalteB())
If Mid(UCase(SpalteB(Zelle, 1)), 1, 3) = UCase(SuchZelle) Then
If Len(SuchZelle) = 3 Then
Zaehler = Zaehler + 1
SpalteF(Zaehler, 1) = Mid(SpalteB(Zelle, 1), 4, Len(SpalteB(Zelle, 1)))
End If
End If
Next Zelle
Range("F2:F" & Cells(Rows.Count, 2).End(xlUp).Row).Resize(UBound(SpalteF())) = SpalteF()
End Sub
0 Punkte
Beantwortet von little-key Mitglied (333 Punkte)
Besten Dank an Euch beide.

Klappt beides wunderbar und wie gewünscht.

Gruß Mario
...