Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
760to764
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
760to764
760to764
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schleifenproblem doppeldurchlauf

Schleifenproblem doppeldurchlauf
14.05.2006 16:41:26
SteffenS
Hallo und guten Tag,
ich brauche bitte mal Eure Hilfe.
Ich habe folgenden Code:

Sub variable_bereiche_start()
Dim wkb As Workbook
Dim wks As Worksheet
For Each wkb In Workbooks
For Each wks In wkb.Worksheets
With wks
last_cell = .Cells(Rows.Count, 256).End(xlUp).Row '--> letzte Zelle aktuelles Blatt
If wks.Name = "NW-Mod" Then
MsgBox (last_cell)
End If
End With
Next wks
Next wkb
End Sub

Irgendwas stimmt damit nicht.
1. jedes Arbeitsblatt wird 2x anfefaßt
2. beim ersten Aufruf des Blattes ist die Ermittlung der letzten Zelle immer 1
beim 2. ten mal stimmt der Wert dann
3. wie kann ich die letzte Zelle ermitteln auch wenn zeilen ausgeblendet sind?
Ich weis net mehr was ich machen soll, denn manchmal ist der Wert der letzten Zelle auch beim 2.ten mal 1 und ich weiß net warum.
Vielleicht habt Ihr eine Idee
Danke schonmal
Steffen Schmerler

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

Betreff
Datum
Anwender
Anzeige
AW: Schleifenproblem doppeldurchlauf
14.05.2006 18:02:45
Josef
Hallo Steffen!
So sollte es klappen!
Sub variable_bereiche_start()
Dim wkb As Workbook
Dim wks As Worksheet
Dim lngLast As Long, lngRow As Long
Dim intColumn As Integer
Dim varValues As Variant

intColumn = 256 ' zu untersuchende Spalte - Anpassen!

For Each wkb In Workbooks
  For Each wks In wkb.Worksheets
    With wks
      If .Name = "NW-Mod" Then
        If .Columns(intColumn).Cells.Count = .Columns(intColumn).SpecialCells(xlCellTypeVisible).Cells.Count Then
          lngLast = .Cells(Rows.Count, intColumn).End(xlUp).Row
        Else
          varValues = .Columns(intColumn)
          For lngRow = UBound(varValues, 1) To 1 Step -1
            If varValues(lngRow, 1) <> "" Then
              lngLast = lngRow
              Exit For
            End If
          Next
        End If
        MsgBox lngLast
        Exit For
      End If
    End With
  Next
Next

End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
danke hat funktioniert
17.05.2006 10:47:43
SteffenS
MFG
Steffen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige