For x = x_start To x_ende

Dieses Thema For x = x_start To x_ende im Forum "Microsoft Office Suite" wurde erstellt von Billy, 6. Apr. 2005.

Thema: For x = x_start To x_ende hi all hab mal eine kleine Verständnis frage. Nämlich: wieso geht dieser Code nicht Function myFunction(x_start,...

  1. hi all

    hab mal eine kleine Verständnis frage. Nämlich: wieso geht dieser Code nicht

    Code:
    Function myFunction(x_start, x_ende, y_start, y_ende, n_kurz, n_Führer)
    Dim a_führer As Long, Spalte As String, ws As Worksheet
    'Dim x_start As Long, x_ende As Long, y_start As Long, y_ende As Long
    a_führer = 0
    MsgBox (x_start &  -  & x_ende &  -  & y_start &  -  & y_ende)
    For x = x_start To x_ende
     For y = y_start To y_ende
     If Cells(y, x).Value = n_kurz Then
     If a_führer = 0 Then
      Spalte = Cells(y, x).Address(rowabsolute:=False, Columnabsolute:=False)
     Else
      Spalte = Spalte & ,  & Cells(y, x).Address(rowabsolute:=False, Columnabsolute:=False)
     End If
     a_führer = a_führer + 1
     If a_führer >= 2 Then
     ->Call Fehlermeldung(n_Führer, a_führer, Spalte)
      x = x_ende + 1
     End If
     a_führer = 0
     Spalte = 
     Next
    Next
    End Function
    
    welchen ich mit
    Code:
    Private Sub WorkSheet_Change(ByVal Target As Excel.Range)
     Call myFunction(2, 58, 12, 48, schulze, Schulze)
    End Sub
    abrufe?

    danke für helfende Hilfe

    mfg Billy / FiRe-X
     
  2. Hallo Billy,

    a) ein End If vergessen
    b) In die erste Zeile eines Moduls Option Explicit
    Dann gibt der Compiler alle nicht definierten Variablen aus. Das vermeidet Typ-Fehler.
    Alle nicht definierten Variablen erhalten den Typ Variant und das knirscht manchmal.
    c) Variable und Funktionsnamen sollten keine Umlaute/deutsche Sonderzeichen enthalten.
    d) ein wenig Kommentar hilft auch manchmal

    Gruß Matjes  :)
    Code:
    Option Explicit
    Function myFunction(x_start As Long, x_ende As Long, _
                         y_start As Long, y_ende As Long, _
                         n_kurz As String, n_Führer As String)
      
      Dim a_fuehrer As Long, Spalte As String, ws As Worksheet
      Dim x As Long, y As Long
      
      a_fuehrer = 0
      MsgBox (x_start &  -  & x_ende &  -  & y_start &  -  & y_ende)
      
      For x = x_start To x_ende
        For y = y_start To y_ende
          If Cells(y, x).Value = n_kurz Then
            If a_fuehrer = 0 Then
              Spalte = Cells(y, x).Address(rowabsolute:=False, Columnabsolute:=False)
            Else
              Spalte = Spalte & ,  & Cells(y, x).Address(rowabsolute:=False, Columnabsolute:=False)
            End If
            a_fuehrer = a_fuehrer + 1
            If a_fuehrer >= 2 Then
             ->Call Fehlermeldung(n_Führer, a_führer, Spalte)
              x = x_ende + 1
            End If
            a_fuehrer = 0
            Spalte = 
          End If
        Next
      Next
    End Function
     
  3. naja wie gesagt

    bin neuling in dem ganzen Makro dings da ^^

    aber wie findest du das ding was ich bislang gemacht habe? in bezug darauf dass ich seid 2 wochen knapp Makros kenne und weiss was sie machen ^^

    MFG Billy
     
  4. Hi Billy,
    finde ich sehr gut  :D.... weiter so...


    Die Punkte b-d) hab ich auch nur als Tip gemeint  :-[

    Gruß Matjes :)
     
  5. schon gut ^^

    hauptsache das dings da geht am schluss =D