Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
164to168
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
164to168
164to168
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro streikt in office 97

Makro streikt in office 97
10.10.2002 07:54:08
Rolf St
Hallo!
Folgendes Makro streikt an dieser Stelle in Office 97

' lngMaxZeile = Application.Evaluate(strMaxZeile)

hier das Makro:

Option Explicit '<-- Verlangt das ausdrückliche Deklarieren
'von Variablen und verhindert auch Fehler!!

Private Sub Worksheet_Change(ByVal Target As Range)
Dim strCell As String, strMaxZeile As String
Dim lngRow As Long, lngMaxZeile As Long
Dim intCounter As Integer, intCountErr As Integer
Dim intCol As Integer
Dim var As Variant

If Target.Column <> 3 Then Exit Sub
strMaxZeile = ActiveWorkbook.Names("Max_Zeilen")
lngMaxZeile = Application.Evaluate(strMaxZeile) 'in dieser Zeile streikt das Makro
If IsEmpty(Range("C" & Target.Row)) Then
If Selection.Rows.Count = 1 Then
If Target.Row < lngMaxZeile Then
If MsgBox("Sie haben eine Startnummer gelöscht, die sich " & _
"nicht am Ende der Liste befunden hat." & vbLf & vbLf & _
"Um die gesamte Zeile zu Löschen, klicken Sie bitte " & _
"auf ""Ja"", um nur die Inhalte der " & vbLf & _
"Zeile zu löschen wählen Sie bitte ""Nein"".", vbYesNo + vbQuestion) = vbYes Then
Rows(Target.Row).Delete
Else: Range("A" & Target.Row & ":B" & Target.Row).ClearContents
Range("E" & Target.Row & ":M" & Target.Row).ClearContents
End If
Else: Range("A" & Target.Row & ":B" & Target.Row).ClearContents
Range("E" & Target.Row & ":M" & Target.Row).ClearContents
End If
Else
'Beim gleichzeitigen Löschen mehrerer Zellen in C
For intCounter = 1 To Selection.Rows.Count
Range("A" & Target.Row + intCounter - 1 & _
":B" & Target.Row + intCounter - 1).ClearContents
Range("E" & Target.Row + intCounter - 1 & _
":M" & Target.Row + intCounter - 1).ClearContents
Next intCounter
ActiveCell.Select
End If
Exit Sub
End If
With Application
'Bildschirmaktualisierung ausschalten
.ScreenUpdating = False
'Events ausschalten, damit nicht beim Eintragen der Werte
'jedes Mal die Prozedur neu gestartet wird.
.EnableEvents = False
If Selection.Rows.Count = 1 Then
intCol = Target.Column
Else: intCol = ActiveCell.Column
End If
lngRow = Target.Row - 1
For intCounter = 1 To Selection.Rows.Count
var = .VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 2, 0)
If Not IsError(var) Then
Range("E" & lngRow + intCounter) = _
.VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 2, 0)
Range("F" & lngRow + intCounter) = _
.VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 3, 0)
Range("G" & lngRow + intCounter) = _
.VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 4, 0)
Range("H" & lngRow + intCounter) = _
.VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 5, 0)
Range("I" & lngRow + intCounter) = _
.VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 6, 0)
Range("J" & lngRow + intCounter) = _
.VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 7, 0)
Range("K" & lngRow + intCounter) = _
.VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 8, 0)
Range("L" & lngRow + intCounter) = _
.VLookup(Cells(lngRow + intCounter, intCol), _
Worksheets("Stammdaten").Columns("A:I"), 9, 0)
Else: MsgBox "Die Startnummer " & Cells(lngRow + intCounter, intCol) _
& " ist in der Tabelle ""Stammdaten"" nicht vorhanden.", vbInformation
For intCountErr = 2 To 9
Cells(lngRow + intCounter, intCol + intCountErr) = "?"
Next intCountErr
End If
Next intCounter
End With
'Wenn Wert in C der betreffenden Zeile > 0 werden die
'Formelergebnisse eingetragen.
If Range("C" & lngRow + 1) > 0 Then
For intCounter = 1 To Selection.Rows.Count
Range("A" & lngRow + intCounter) = _
WorksheetFunction.CountIf(Range("L1:L" & lngRow + intCounter), _
Range("L" & lngRow + intCounter))
Range("M" & lngRow + intCounter) = Range("L" & lngRow + intCounter) & _
Range("I" & lngRow + intCounter)
Range("B" & lngRow + intCounter) = _
WorksheetFunction.CountIf(Range("M1:M" & lngRow + intCounter), _
Range("M" & lngRow + intCounter)) & ". " & _
Range("I" & lngRow + intCounter)
Next intCounter
End If
'Events und Bildschirmaktualisierung wieder einschalten
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub

Vielleicht könnt ihr mir helfen?

Vielen Dank!

Tschüß
Rolf

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Makro streikt in office 97
10.10.2002 08:39:38
JürgenR
Hi Rolf,

hab jetzt natürlich nur den ersten Teil getestet :-)

Umfasst Max_Zeilen mehrere Zellen? Dann kann das nicht hinhauen.

Gruß
Jürgen

Re: Makro streikt in office 97
10.10.2002 09:57:22
Rolf St
Hallo Jürgen,
Max_Zeilen umfaßt die Zellen von C3:C1000.


Tschüß
Rolf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige