Seite 1 von 1

[Gelöst] Übergabe Variable hakt

Verfasst: Do 3. Okt 2024, 04:28
von Linux_Idefix
Guten Tag
ich bin neu im Forum und habe noch keine Erfahrung mit der Programmierung. Aber ich benutze seit einiger Zeit ein Makro, das mir einen Barcode generiert und plötzlich funktioniert es nicht mehr. Ich habe herausgefunden, dass nach dem Update die Übergabe der Variablen hängt, kann mir jemand helfen, wie ich das Programm wieder zum Laufen bekomme?


Meldung in der Zelle = Fehler:509
Fehler in der Zeile= "If Len(chaine$) = 12 Then"
Meldung "BASIC-Laufzeitfehler. Argument ist nicht optional."




Vielen Dank im Voraus.

Idefix

Code: Alles auswählen

 Public Function ean13$(chaine$)
  'V 1.0
  'Paramètres : une chaine de 12 chiffres
  'Retour : * une chaine qui, affichée avec la police EAN13.TTF, donne le code barre
  '         * une chaine vide si paramètre fourni incorrect
  Dim i%, checksum%, first%, CodeBarre$, tableA As Boolean
  ean13$ = ""
  'Vérifier qu'il y a 12 caractères
  If Len(chaine$) = 12 Then
    'Et que ce sont bien des chiffres
    For i% = 1 To 12
      If Asc(Mid$(chaine$, i%, 1)) < 48 Or Asc(Mid$(chaine$, i%, 1)) > 57 Then
        i% = 0
        Exit For
      End If
    Next
    If i% = 13 Then
      'Calcul de la clé de contrôle
      For i% = 2 To 12 Step 2
        checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
      Next
      checksum% = checksum% * 3
      For i% = 1 To 11 Step 2
        checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
      Next
      chaine$ = chaine$ & (10 - checksum% Mod 10) Mod 10
      'Le premier chiffre est pris tel quel, le deuxième vient de la table A
      CodeBarre$ = Left$(chaine$, 1) & Chr$(65 + Val(Mid$(chaine$, 2, 1)))
      first% = Val(Left$(chaine$, 1))
      For i% = 3 To 7
        tableA = False
         Select Case i%
         Case 3
           Select Case first%
           Case 0 To 3
             tableA = True
           End Select
         Case 4
           Select Case first%
           Case 0, 4, 7, 8
             tableA = True
           End Select
         Case 5
           Select Case first%
           Case 0, 1, 4, 5, 9
             tableA = True
           End Select
         Case 6
           Select Case first%
           Case 0, 2, 5, 6, 7
             tableA = True
           End Select
         Case 7
           Select Case first%
           Case 0, 3, 6, 8, 9
             tableA = True
           End Select
         End Select
       If tableA Then
         CodeBarre$ = CodeBarre$ & Chr$(65 + Val(Mid$(chaine$, i%, 1)))
       Else
         CodeBarre$ = CodeBarre$ & Chr$(75 + Val(Mid$(chaine$, i%, 1)))
       End If
     Next
      CodeBarre$ = CodeBarre$ & "*"   'Ajout séparateur central
      For i% = 8 To 13
        CodeBarre$ = CodeBarre$ & Chr$(97 + Val(Mid$(chaine$, i%, 1)))
      Next
      CodeBarre$ = CodeBarre$ & "+"   'Ajout de la marque de fin
      ean13$ = CodeBarre$
    End If
  End If
End Function
es
 

Re: Übergabe Variable hakt

Verfasst: Do 3. Okt 2024, 10:11
von karolus
Hallo

Mit dem Update hat sich die maximal Anzahl an Spalten erhöht.
Deine Funktionsname kollidiert mit der real existierenden Zelladresse EAN13

Ändere alle Vorkommen von ean13$ um in zb. ean_13$
Meldung "BASIC-Laufzeitfehler. Argument ist nicht optional."
Natürlich ist das »Argument nicht optional«
Du kannst eine UDF die mit einem Argument aufgerufen werden muss nicht direkt in der Basic-IDE ohne Argument ausführen!

Re: Übergabe Variable hakt

Verfasst: Do 3. Okt 2024, 13:37
von Linux_Idefix
Hallo Danke für die schnelle Antwort

Ich habe die Variable unbenennt leider kein Erfolg!!!
Natürlich ist das »Argument nicht optional«
Du kannst eine UDF die mit einem Argument aufgerufen werden muss nicht direkt in der Basic-IDE ohne Argument ausführen!
Kann ich in so einen Fall etwas tun, denn das Programm ist bist zum Update auf die neueste Version ohne Probleme gelaufen, oder ist ein Einstellungsproblem?

MfG Idefix

Re: Übergabe Variable hakt

Verfasst: Do 3. Okt 2024, 19:03
von karolus
Hallo
Ich habe die Variable unbenennt leider kein Erfolg!!!
nur zur Klarheit, ich schrieb alle… also einmal im funktionskopf und noch zweimal im Code selbst, und in Calc musst du selbstverständlich die Formeln ebenfalls umstellen!

Re: Übergabe Variable hakt

Verfasst: Fr 4. Okt 2024, 19:04
von Linux_Idefix
Danke

es schnurrt wie am 1. Tag

Schönes WE