[Résolu] function ne fonctionne pas, pourquoi ?

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
filo62
Membre OOrganisé
Membre OOrganisé
Messages : 59
Inscription : 16 mars 2006 12:41

[Résolu] function ne fonctionne pas, pourquoi ?

Message par filo62 »

pourquoi cette fonction ne fonctionne pas ?

Code : Tout sélectionner

Function FirstDuplicate(sArray() As String) As String
Dim i&
FirstDuplicate = ""
For i = LBound(sArray()) To UBound(sArray()) - 1
If sArray(i) = sArray(i+1) Then
FirstDuplicate = sArray(i)
Exit For
End If
Next
End Function
Dernière modification par filo62 le 20 févr. 2014 15:01, modifié 3 fois.
Merci de supprimer mon compte
bm92
ManitOOu
ManitOOu
Messages : 2562
Inscription : 26 nov. 2005 14:42
Contact :

Message par bm92 »

pourquoi cette fonction ne fonctionne pas ?
elle fonctionne.
Merci d'utiliser le balisage

Code : Tout sélectionner

 pour le formatage des instructions : il suffit de sélectionner tout le code et de cliquer sur le bouton [b]Code[/b].
Bernard

OpenOffice.org 1.1.5 fr / Apache OpenOffice 4.1.1 / LibreOffice 5.0.5.2 (X64)
MS-Windows 7 SP1 64bits Familial
Dacar
Fraîchement OOthentifié
Messages : 4
Inscription : 23 mars 2006 11:43

Message par Dacar »

Salut,

J'ai une possible réponse à ton problème :
Il faut que le tableau que tu passes en paramètre à ta fonction soit défini comme une chaine (As String) puisque tu le récupères comme tel dans la fonction.

Code : Tout sélectionner

Sub test
  dim tableau(10) As String
  for i = 0 to 10
    tableau(i) = int(rnd*10)
    mess = mess+" , "+tableau(i)
  next i
  msgbox mess
  msgbox FirstDuplicate(tableau())
End Sub

Function FirstDuplicate(sArray() As String) As String
  Dim i&
  FirstDuplicate = ""
  For i = LBound(sArray()) To UBound(sArray()) - 1
    If sArray(i) = sArray(i+1) Then
      FirstDuplicate = sArray(i)
      Exit For
    End If
  Next
End Function
Si dans la définition de tableau(10) tu n'aspas le "As String", tu plantes.
Par contre s'il n'est pas défini, tu peux faire fonctionner la fonction en enlevant la définition "As String" :

Code : Tout sélectionner

Function FirstDuplicate(sArray()) As String
Voilà ce que j'ai trouvé...
PS : "Andrew's Macro" est une excélente source d'inspiration :)

@+
>Dacar
OOo 2.02 sous Win XP
Verrouillé