AW: Zeilen einfügen automatisch
24.04.2009 12:52:16
fcs
Hallo utsch,
im Prinzip geht es mit dem folgenden Makro
Gruß
Franz
Sub HinweistextKopieren()
Dim Zeile As Long
Dim RowHinweis As Range, wks As Worksheet
Dim strSuchen As String
On Error GoTo fehler
'zu kopierende Zeile wählen
Set RowHinweis = Application.InputBox( _
Prompt:="Bitte Zelle in zu kopierender Zeile selektieren", _
Title:="Hinweis kopieren", _
Default:=ActiveCell.Address, _
Type:=8)
Set RowHinweis = RowHinweis.EntireRow
'Suchbegriff eingeben
strSuchen = InputBox(Prompt:="Bitte zu Suchenden Begriff in Spalte A eingeben", _
Title:="Hinweis kopieren", _
Default:="Normalgruppe")
If strSuchen "" Then
Set wks = ActiveSheet
With wks
Application.ScreenUpdating = False
'von der letzen Zeile aufwärts Spalte A prüfen
For Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row To 1 Step -1
'Prüfen ob Zelle in Spalte A = Suchbegriff
If .Cells(Zeile, 1) = strSuchen Then
'Prüfen, ob Hinweiszeile schon unterhalb eingefügt
If .Cells(Zeile + 1, 1) RowHinweis.Range("A1") Then
RowHinweis.Copy
.Rows(Zeile + 1).Insert
End If
'Prüfen, ob Hinweiszeile schon oberhalb eingefügt
If .Cells(Zeile - 1, 1) RowHinweis.Range("A1") Then
RowHinweis.Copy
.Rows(Zeile).Insert
End If
End If
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
MsgBox "Fertig"
End With
End If
fehler:
With Err
If .Number 0 Then
If .Number = 424 Then 'Zellauswahl wurde abgebrochen
'do nothing
Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End If
Application.ScreenUpdating = True
End If
End With
End Sub