VBA - Zellen nach Zeichenfolge durchsuchen

Guten Tag,

nachdem ich mir viel in VBA selbst angeeignet habe (habe vorher nur mal ein bisschen in C++ programmiert), komme ich nun nicht mehr weiter.

Ich habe aus mehreren Tabellenblättern meiner Arbeitsmappe eine Übersicht für die Inventur erstellt. Dabei stehen in der Spalte C die Artikelnummern in der Form „LI*****“ oder „PA*****“.
Die Sternchen sollen nur verdeutlichen, dass dahinter (ohne Leerzeichen) noch 5 Ziffern folgen.

Da aber in Spalte C auch eine Spaltenüberschrift sowie noch zusätzlich zu den Artikelnummern die Artikelbezeichnungen der Packmittel (z.B. Stretchfolie) stehen, kann (und möchte) ich nicht einfach bei allen Zeilen in Spalte J einen Rahmen setzen sondern nur in den Zeilen, in denen eine Artikelnummer mit „LI“ oder „PA“ steht.

Kann mir da jemand weiterhelfen???

PS: Arbeite mit Windows XP, Excel 2002

Vielen Dank schon mal im Voraus!!!

Vba ausgewählte zellen rahmen

Da aber in Spalte C auch eine Spaltenüberschrift sowie noch
zusätzlich zu den Artikelnummern die Artikelbezeichnungen der
Packmittel (z.B. Stretchfolie) stehen, kann (und möchte) ich
nicht einfach bei allen Zeilen in Spalte J einen Rahmen setzen
sondern nur in den Zeilen, in denen eine Artikelnummer mit
„LI“ oder „PA“ steht.

Hallo Le,

Option Explicit
'
Sub Makro1()
Dim Zei As Long, N As Byte
Call Loesch
For Zei = 2 To Cells(Rows.Count, 3).End(xlUp).Row
 If Left(Cells(Zei, 3).Value, 2) = "LI" Or Left(Cells(Zei, 3).Value, 2) = "PA" Then
 For N = 7 To 10
 With Cells(Zei, 3).Borders(N)
 .LineStyle = xlContinuous
 .Weight = xlThin
 .ColorIndex = xlAutomatic
 End With
 Next N
 End If
Next Zei
End Sub
'
Sub Loesch()
Columns(3).Borders(xlDiagonalDown).LineStyle = xlNone
Columns(3).Borders(xlDiagonalUp).LineStyle = xlNone
Columns(3).Borders(xlEdgeLeft).LineStyle = xlNone
Columns(3).Borders(xlEdgeTop).LineStyle = xlNone
Columns(3).Borders(xlEdgeBottom).LineStyle = xlNone
Columns(3).Borders(xlEdgeRight).LineStyle = xlNone
Columns(3).Borders(xlInsideVertical).LineStyle = xlNone
Columns(3).Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub

Gruß
Reinhard

Hallo Reinhard,

erst mal Danke für Deine schnelle Antwort.
Funktioniert auch soweit alles.

Aber ich glaube, Du hast mich etwas missverstanden.
Ich möchte in den Zeilen in Spalte C, wo PA oder LI vorkommt, nicht den Rahmen löschen, sondern in genau DIESEN Zeilen in Spalte J einen Rahmen hinzufügen.

Gruß
Victoria

Aber ich glaube, Du hast mich etwas missverstanden.
Ich möchte in den Zeilen in Spalte C, wo PA oder LI vorkommt,
nicht den Rahmen löschen, sondern in genau DIESEN Zeilen in
Spalte J einen Rahmen hinzufügen.

Hallo Victoria,

ach, das war das mit dem C und J, hatte ich als Schreibfehler gedeutet :smile:)

Option Explicit
'
Sub Makro1()
Dim Zei As Long, N As Byte
Call Loesch
For Zei = 2 To Cells(Rows.Count, 3).End(xlUp).Row
 If Left(Cells(Zei, 3).Value, 2) = "LI" Or Left(Cells(Zei, 3).Value, 2) = "PA" Then
 For N = 7 To 10
 With Cells(Zei, 10).Borders(N)
 .LineStyle = xlContinuous
 .Weight = xlThin
 .ColorIndex = xlAutomatic
 End With
 Next N
 End If
Next Zei
End Sub
'
Sub Loesch()
Columns(10).Borders(xlDiagonalDown).LineStyle = xlNone
Columns(10).Borders(xlDiagonalUp).LineStyle = xlNone
Columns(10).Borders(xlEdgeLeft).LineStyle = xlNone
Columns(10).Borders(xlEdgeTop).LineStyle = xlNone
Columns(10).Borders(xlEdgeBottom).LineStyle = xlNone
Columns(10).Borders(xlEdgeRight).LineStyle = xlNone
Columns(10).Borders(xlInsideVertical).LineStyle = xlNone
Columns(10).Borders(xlInsideHorizontal).LineStyle = xlNone
End Sub

Gruß
Reinhard

Hallo Reinhard,

nochmals Danke.
Mit ein paar kleinen Änderungen an Deinem Code
(weglassen der Zeilen

Columns(10).Borders(xlDiagonalDown).LineStyle = xlNone
Columns(10).Borders(xlDiagonalUp).LineStyle = xlNone
Columns(10).Borders(xlInsideVertical).LineStyle = xlNone
Columns(10).Borders(xlInsideHorizontal).LineStyle = xlNone )

habe ich jetzt das Ergebnis, das ich haben wollte.

Gruß
Victoria