Microsoft Excel

Herbers Excel/VBA-Archiv

Max suchen in allen Blättern Spalte C | Herbers Excel-Forum


Betrifft: Max suchen in allen Blättern Spalte C von: uwe
Geschrieben am: 04.02.2010 12:16:25

Hallo,
ich will bei nach Eingabe einer Zahl in Spalte B (Kundennummer) eine neue Rechnungsnummer in Spalte C daneben schreiben. Dazu müssen alle Blätter (Januar, Februar, März....) nach der höchsten Nummer in Spalte C durchsucht werden. Die neue Rechnummer ist dann Max + 1

Gruss
Uwe

'Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("b:b")) Is Nothing Then

  

Betrifft: AW: Max suchen in allen Blättern Spalte C von: Josef Ehrensberger
Geschrieben am: 04.02.2010 12:22:54

Hallo Uwe,


kopiere den Code in das Modul des entsprechenden Blattes.


' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim intMonth As Integer, lngMax As Long
  On Error GoTo ErrExit
  
  With Target(1, 1)
    If .Column = 2 Then
      Application.EnableEvents = False
      For intMonth = 1 To 12
        lngMax = Application.Max(lngMax, Sheets(Format(DateSerial(1, intMonth, 1), _
          "MMMM")).Columns(3))
      Next
    End If
    .Offset(0, 1) = lngMax + 1
  End With
  ErrExit:
  Application.EnableEvents = True
End Sub


Gruß Sepp



  

Betrifft: AW: Max suchen in allen Blättern Spalte C-danke von: uwe
Geschrieben am: 04.02.2010 12:31:15

Hallo Sepp,
schnell und perfekt.
Danke
Gruss
Uwe


  

Betrifft: Perfekt und doch falsch! von: Josef Ehrensberger
Geschrieben am: 04.02.2010 12:35:09

Hallo Uwe,


da hat sich ein kleiner Fehler eingeschlichen, so passt es.



' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim intMonth As Integer, lngMax As Long
  On Error GoTo ErrExit
  With Target(1, 1)
    If .Column = 2 Then
      Application.EnableEvents = False
      For intMonth = 1 To 12
        lngMax = Application.Max(lngMax, Sheets(Format(DateSerial(1, intMonth, 1), _
          "MMMM")).Columns(3))
      Next
      .Offset(0, 1) = lngMax + 1
    End If
  End With
  ErrExit:
  Application.EnableEvents = True
End Sub


Gruß Sepp



  

Betrifft: AW: Perfekt und doch falsch! von: Uwe
Geschrieben am: 04.02.2010 19:08:14

Hallo Sepp,
ich habe es geändert.
Ein Problem gab es mit dem Target - Bereich.

With Target(1, 1)

Ich frage jetzt gezielt nur
If Intersect(Target, Range("A3:A100")) Is Nothing Then Exit Sub

ab. Jetzt läuft es gut.
Gruss
Uwe


  

Betrifft: AW: Max suchen in allen Blättern Spalte C von: welga
Geschrieben am: 04.02.2010 12:32:49

Hallo Uwe,



versuch mal folgendes:


Private Sub worksheet_change(ByVal target As Range)
If Not Intersect(Range("B:B"), target) Is Nothing Then
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
Max = 0
For i = 1 To ThisWorkbook.Sheets.Count
Sheets(i).Activate
a = ActiveSheet.UsedRange.Rows.Count
For aa = 1 To a
If Max < Cells(aa, 3).Value Then Max = Cells(aa, 3).Value
Next aa
Next i
Sheets(1).Activate
Sheets(1).Cells(target.Row, 3).Value = Max + 1
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Application.EnableEvents = True
End If
End Sub
Gruß

welga


  

Betrifft: AW: Max suchen in allen Blättern Spalte C von: Uwe
Geschrieben am: 04.02.2010 19:02:26

Hallo Welga,
danke für die Info.

Ich habe Sepps Lösung genommen.
Gruss
Uwe


Beiträge aus den Excel-Beispielen zum Thema "Max suchen in allen Blättern Spalte C"