For x = x_start To x_ende

  • #1
B

Billy

Guest
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,
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 ^^

finde ich sehr gut  :D.... weiter so...


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

Gruß Matjes :)
 
  • #5
Matjes schrieb:
Hi Billy,
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 ^^

finde ich sehr gut :D.... weiter so...
Die Punkte b-d) hab ich auch nur als Tip gemeint :-[
Gruß Matjes :)

schon gut ^^

hauptsache das dings da geht am schluss =D
 
Thema:

For x = x_start To x_ende

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.965
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben