Microsoft Excel

Herbers Excel/VBA-Archiv

kann case nicht abstrahieren

Betrifft: kann case nicht abstrahieren von: R.Kunze
Geschrieben am: 28.10.2014 12:10:01

Hallo,

ich habe folgendes Sheet von einer Freundin bekommen.

https://www.herber.de/bbs/user/93415.xlsm

Soweit funktioniert das Makro auch.

Aber wenn ich eine Leerzeile vorne einfüge und lngSpalte auf 3 setzte dann funkioniert gar nichts mehr. Wie kann ich "ihm" beibringen das er ab einer bestimmten Spalte erst anfängt die kriterien zu durchsuchen.

Danke für Eure Hilfe im vorraus. :)

  

Betrifft: AW: kann case nicht abstrahieren von: ransi
Geschrieben am: 28.10.2014 12:21:21

Hallo

Versuch mal so:

Dim lngErsteZeile As Long
Set Wks1 = Worksheets("Prüfung")
With Wks1
lngErsteZeile = .Cells(.Rows.Count, 2).End(xlUp).End(xlUp).Row
lngLetzteZeile = .Cells(.Rows.Count, 2).End(xlUp).Row
lngLetzteSpalte = .Cells(1, .Columns.Count).End(xlToLeft).Column
For lngZeile = lngErsteZeile To lngLetzteZeile

ransi


  

Betrifft: AW: kann case nicht abstrahieren von: R.Kunze
Geschrieben am: 28.10.2014 12:42:42

nope geht nicht :(

Ich meinte übrigens auch Eine Spalte einfügen, weil das mit der Zeile ja schon klappt


  

Betrifft: AW: kann case nicht abstrahieren von: Rudi Maintaire
Geschrieben am: 28.10.2014 12:39:06

Hallo,
lngLetzteSpalte = .Cells(2, .Columns.Count).End(xlToLeft).Column

Gruß
Rudi


  

Betrifft: AW: kann case nicht abstrahieren von: R.Kunze
Geschrieben am: 28.10.2014 12:45:10

geht leider auch nicht :(


  

Betrifft: AW: kann case nicht abstrahieren von: Rudi Maintaire
Geschrieben am: 28.10.2014 13:13:19

Hallo,
teste mal:

Sub Plausibilität()
  Dim lngZeile As Long, lngLetzteZeile As Long
  Dim lngSpalte As Long, lngLetzteSpalte As Long
  Dim intPrüfStatus As Integer
  Dim Wks1 As Worksheet
  Dim Fehler
  
  Set Wks1 = Worksheets("Prüfung")
  
  With Wks1
    lngLetzteZeile = .Cells(.Rows.Count, 3).End(xlUp).Row
    lngLetzteSpalte = .Cells(2, .Columns.Count).End(xlToLeft).Column
    For lngZeile = 3 To lngLetzteZeile
      For lngSpalte = 3 To lngLetzteSpalte
        Fehler = .Cells(lngZeile, lngSpalte)
        Select Case Fehler
          Case "none", "schlecht", ""
            If intPrüfStatus < 1 Then intPrüfStatus = 1
          Case "sehr schlecht", "Teil fehlt"
            If intPrüfStatus < 2 Then intPrüfStatus = 2
          Case "verfaerbt"
            If intPrüfStatus < 3 Then intPrüfStatus = 3
          Case "Gehäuse kaputt"
            If intPrüfStatus < 4 Then intPrüfStatus = 4
          Case "kaputt"
            If intPrüfStatus < 5 Then intPrüfStatus = 5
          Case Else
        End Select
      Next lngSpalte
      
      Select Case intPrüfStatus
        Case 1
          If Not .Cells(lngZeile, 2) = "A" Then
            .Cells(lngZeile, 12).Value = "Fehlerbeschreibung fehlt"
            .Cells(lngZeile, 2).Interior.ColorIndex = 3
          End If
        Case 2
          Select Case .Cells(lngZeile, 2)
            Case "B", "C", "D", "U"
            Case Else
              .Cells(lngZeile, 2).Interior.ColorIndex = 3
              .Cells(lngZeile, 12).Value = "Prüfstatus falsch"
          End Select
    End Select
  intPrüfStatus = 0
  
  Next lngZeile
  End With
End Sub

Gruß
Rudi


  

Betrifft: AW: kann case nicht abstrahieren von: R.Kunze
Geschrieben am: 28.10.2014 13:19:56

jaaaa :) geht auf den ersten blick erstmal, werde jetzt nochmal ausgiebig testen.


  

Betrifft: AW: kann case nicht abstrahieren von: R.Kunze
Geschrieben am: 28.10.2014 13:21:07

ahhhh ich dumpfbacke habe natürlich vergessen die spalte beim 2. case anzupassen :/ :/

das war des rätsels lösung, danke rudi!!!!!!! :)