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

Zelleninhalt suchen wenn gefunden dann...

Zelleninhalt suchen wenn gefunden dann...
16.11.2008 14:44:22
Ernst
Hallo Fachleute,
ich möchte mit einem Makro eine Tabelle (möglichst nur einen vorher definierten Bereich) auf bestimmte Zellinhalte durchsuchen und wenn es einen Inhalt findet soll es dort eine Zeile einfügen und von mir im Makro definierten Text einfügen.
Nähere Anleitung in der Datei.
Jetzt schon mal Danke!
https://www.herber.de/bbs/user/56824.xls

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalt suchen wenn gefunden dann...
16.11.2008 15:20:20
Tino
Hallo,
hier mal ein Beispiel, man könnte sich auch vorstellen für die Begriffe Auto oder Computer usw. jeweils eine Liste anzulegen, diese anhand der Liste abarbeiten.
Option Explicit

Sub Test()
Dim Bereich As Range, SuchZelle As Range
Dim SuchBergiff
Set Bereich = Range("F:F") 'Suchbereich 

'Hier Handeingabe, oder aus einer Zelle übernehmen 
SuchBergiff = "Auto" 'Dein Suchbegriff 


Set SuchZelle = Bereich.Find(SuchBergiff, , xlValues, xlWhole)

If Not SuchZelle Is Nothing Then
Application.ScreenUpdating = False
 Select Case SuchZelle
  
  Case "Auto"     '************** 
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "Mazda"
    Farbe SuchZelle.Offset(1, 0)
   Rows(SuchZelle.Row + 1).Insert Shift:=xlUp: SuchZelle.Offset(1, 0) = "Ferrari"
    Farbe SuchZelle.Offset(1, 0)
  
  Case "Dach"     '************** 
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "flach"
    Farbe SuchZelle.Offset(1, 0)
  
  Case "Computer" '************** 
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "Pentium"
    Farbe SuchZelle.Offset(1, 0)
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "AMD"
    Farbe SuchZelle.Offset(1, 0)
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "Selaron"
    Farbe SuchZelle.Offset(1, 0)
  'usw... 
  '... 
  '... 
  
 End Select
 Application.ScreenUpdating = True
End If


End Sub

Sub Farbe(rZelle As Range)
'kommt auf die Finstellung an welche Farbe dies ist. 
'Standart 3 = rot 
rZelle.Font.ColorIndex = 3
End Sub


Gruß Tino

Anzeige
noch ein Versuch
16.11.2008 17:04:49
Tino
Hallo,
ok. hier die erweiterte Variante
Option Explicit

Sub Test()
Dim Bereich As Range, SuchZelle As Range
Dim SuchBergiff
Dim A As Long
Set Bereich = Range("F:F") 'Suchbereich 


SuchBergiff = Split("Auto;Computer;Dach", ";") 'Dein Suchbegriffe durch ; trennen 

Application.ScreenUpdating = False
For A = Lbound(SuchBergiff) To Ubound(SuchBergiff)

Set SuchZelle = Bereich.Find(SuchBergiff(A), , xlValues, xlWhole)

If Not SuchZelle Is Nothing Then

 Select Case SuchZelle
  
  Case "Auto"     '************** 
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "Mazda"
    Farbe SuchZelle.Offset(1, 0)
   Rows(SuchZelle.Row + 1).Insert Shift:=xlUp: SuchZelle.Offset(1, 0) = "Ferrari"
    Farbe SuchZelle.Offset(1, 0)
  
  Case "Dach"     '************** 
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "flach"
    Farbe SuchZelle.Offset(1, 0)
  
  Case "Computer" '************** 
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "Pentium"
    Farbe SuchZelle.Offset(1, 0)
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "AMD"
    Farbe SuchZelle.Offset(1, 0)
   Rows(SuchZelle.Row + 1).Insert Shift:=xlDown: SuchZelle.Offset(1, 0) = "Selaron"
    Farbe SuchZelle.Offset(1, 0)
  'usw... 
  '... 
  '... 
  
 End Select

End If
Next A
 Application.ScreenUpdating = True

End Sub

Sub Farbe(rZelle As Range)
'kommt auf die Finstellung an welche Farbe dies ist. 
'Standart 3 = rot 
rZelle.Font.ColorIndex = 3
End Sub


Gruß Tino

Anzeige
AW: noch ein Versuch
16.11.2008 17:14:05
Ernst
Ok 100% zufrieden herzlichen Danke funzt pima!
AW: Zelleninhalt suchen wenn gefunden dann...
16.11.2008 15:47:00
Franc
ich würde es lieber so lösen
bei der Lösung vom Kollegen wird auch aktuell nur nach "Auto" gesucht und nicht nach den anderen 2 Begriffen.

Sub suchen_und_ersetzen()
Dim Zelle As Range
Application.ScreenUpdating = False
For Each Zelle In Range("A1:M30") ' Der Bereich in dem gesucht werden soll
Select Case Zelle
Case Is = "Auto"
Cells(Zelle.Row + 1, Zelle.Column).Insert Shift:=xlDown
Cells(Zelle.Row + 1, Zelle.Column).Insert Shift:=xlDown
Cells(Zelle.Row + 1, Zelle.Column) = "Ferrari"
Cells(Zelle.Row + 2, Zelle.Column) = "Mazda"
Case Is = "Dach"
Cells(Zelle.Row + 1, Zelle.Column).Insert Shift:=xlDown
Cells(Zelle.Row + 1, Zelle.Column) = "flach"
Case Is = "Computer"
Cells(Zelle.Row + 1, Zelle.Column).Insert Shift:=xlDown
Cells(Zelle.Row + 1, Zelle.Column).Insert Shift:=xlDown
Cells(Zelle.Row + 1, Zelle.Column).Insert Shift:=xlDown
Cells(Zelle.Row + 1, Zelle.Column) = "Pentium"
Cells(Zelle.Row + 2, Zelle.Column) = "AMD"
Cells(Zelle.Row + 3, Zelle.Column) = "Selaron"
End Select
Next
Application.ScreenUpdating = True
End Sub


Anzeige
AW: Zelleninhalt suchen wenn gefunden dann...
16.11.2008 16:47:00
Ernst
Danke erstmal an beide!
So wie Frank es gelöst hat ist fast perfekt für mich nur solle es eine ganze Zeile einfügen nicht nur eine Zelle.
Ich bekomme es leider nicht hin eine ganze Zeile einzufügen kann mir bitte noch mal jemand helfen?
AW: Zelleninhalt suchen wenn gefunden dann...
16.11.2008 17:14:47
Franc
ah k, steht ja auch Zeile da ...

Sub suchen_und_ersetzen()
Dim Zelle As Range
Application.ScreenUpdating = False
For Each Zelle In Range("A1:M30") ' Der Bereich in dem gesucht werden soll
Select Case Zelle
Case Is = "Auto"
Cells(Zelle.Row + 1, Zelle.Column).EntireRow.Insert
Cells(Zelle.Row + 1, Zelle.Column).EntireRow.Insert
Cells(Zelle.Row + 1, Zelle.Column) = "Ferrari"
Cells(Zelle.Row + 2, Zelle.Column) = "Mazda"
Case Is = "Dach"
Cells(Zelle.Row + 1, Zelle.Column).EntireRow.Insert
Cells(Zelle.Row + 1, Zelle.Column) = "flach"
Case Is = "Computer"
Cells(Zelle.Row + 1, Zelle.Column).EntireRow.Insert
Cells(Zelle.Row + 1, Zelle.Column).EntireRow.Insert
Cells(Zelle.Row + 1, Zelle.Column).EntireRow.Insert
Cells(Zelle.Row + 1, Zelle.Column) = "Pentium"
Cells(Zelle.Row + 2, Zelle.Column) = "AMD"
Cells(Zelle.Row + 3, Zelle.Column) = "Selaron"
End Select
Next
Application.ScreenUpdating = True
End Sub


Anzeige

345 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige