begin process at 2012 02 17 09:07:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Visual Basic 6

 > 

Langages dérivés

 > 

VBA

 > 

Problème passage d'un tableau comme paramètre d'une fonction


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème passage d'un tableau comme paramètre d'une fonction

lundi 21 août 2006 à 14:12:20 | Problème passage d'un tableau comme paramètre d'une fonction

dafrip

Bonjour,

J'utilise VBA sur Excel 2000, et dans ma macro, je dispose de tableaux de String que je voudrais trier.

Dim tab(),tab1() as String
Redim tab(0), tab1(0)

'Je remplis mes tableaux en parcourant les cell de la feuille cible
Tri(tab)
Tri(tab1)

A l'appel de la fonction Tri, il y a une erreur de compilation me disant:
"Incompatibilité de type:Tableau ou type défini par l'utilisateur attendu"

Je comprend pas pourquoi il ne voit pas tab et tab1 comme deux tableaux, je suis bloqué dessus et j'ai essayé maintes solutions mais le résultat est le même. Merci beaucoup de m'éclairer sur le sujet
-------------------------------------------------------------------------
Ma fonction Tri

Private Sub Tri(tabl() As String)

Dim temp As String

' trier le tableau
For i = 0 To UBound(tabl) - 1
For j = i + 1 To UBound(tabl)
If tabl(i) > tabl(j) Then
temp=tabl(i)
tabl(i) = tabl(j)
tabl(j) = temp
End If
Next j
Next i

End Sub
lundi 21 août 2006 à 14:32:24 | Re : Problème passage d'un tableau comme paramètre d'une fonction

bultez

Membre Club
bonjour,
   avec VB j'aurais répondu : Private Sub Tri(ByVal tabl)
         ce qui aurait été une bétise, sûrement...
   mais avec VBA ?
   poser la question dans le forum approprié : VB,VBA,VB.net
         serait, sans doute, plus profitable...
cordialement   Bul    Site    M'écrire
lundi 21 août 2006 à 14:37:53 | Re : Problème passage d'un tableau comme paramètre d'une fonction

jinh68

Membre Club
Salut,

Il suffit d'enlever les parenthèses autour de tab et tab1 et de mettre un espace lors de l'appel à Tri.

Petit rappel:

Si tu utilises le mot clé Call, tu mets des parenthèses, sinon tu les omets.

Cf MSDN.

De plus pense à bien mettre ByRef pour le paramètre de ta fonction, c'est davantage explicite.

j!nH
lundi 21 août 2006 à 14:54:11 | Re : Problème passage d'un tableau comme paramètre d'une fonction

jrivet

Membre Club

Salut,

Peu etre que cela viens aussi du fait que tab() n'est PAS de type string mais Variant

En effet si tu déclare comme suit:

Dim Tab(), Tab1() as string , seul Tab1() est de type string Tab() lui est un tableau de Variant.

Il faut déclarer comme suit
Dim  Tab() as String, Tab1() As string

@+, Julien

lundi 21 août 2006 à 15:18:30 | Re : Problème passage d'un tableau comme paramètre d'une fonction

jinh68

Membre Club
Le fait de ne pas spécifier le type, et donc de se retrouver avec un type Variant à déterminer ne provoquera pas d'erreur. Par contre, cela prendra plus de temps à l'exécution.
Donc Julien a raison, il vaut mieux être rigoureux.

j!nH
mardi 22 août 2006 à 11:56:43 | Re : Problème passage d'un tableau comme paramètre d'une fonction

kalobit

salut,

Tu utilise Tab() pour déclarer ton tableau or Tab() est une fonction intrinsec à vba.

remplace donc Tab() par Tab2() et suit les instruction de jinh68.

Le byref est obligatoire pour que les changements soients effectifs sut tab1 et 2 et non seulement sur tabl ( par défaut byval prévaut dans un passage d'arguments)

@ +++

K@lobit < Ne pas clicker ici
Mon Site < Mais ici

Je cherche des personnes pour développer un site dédié à excel, si vous êtes partant pou

mardi 22 août 2006 à 12:00:31 | Re : Problème passage d'un tableau comme paramètre d'une fonction

jrivet

Membre Club

Salut,

 MSDN Dit
1- (dans l'aide pour Call) : "Pour passer un tableau entier à une procédure, entrez le nom du tableau, suivi de parenthèses vides."


>kalobit : Erreur, c'est ByRef par défaut en VB (A) (autre que .NET car je ne connais pas)
=> MSDN le dit aussi :

ByRef Facultatif. Indique que l'argument est passé par référence. ByRef est l'option par défaut dans Visual Basic.

@+, Julien

samedi 26 août 2006 à 22:40:23 | Re : Problème passage d'un tableau comme paramètre d'une fonction

rvblog

Membre Club
Salut dafrip, salut bultez, salut jinh68, salut jrivet, salut kalobit,

jrivet a raison (comme souvent), le 1er tableau se doit d'être typé fort pour passer par l'argument de type tableau de string. Il ne peut pas passer sans erreur, le contraire fonctionne (tableau déclaré typé fort [string] passé en argument typé faible [variant]).

jinh68 a raison, il faut spécifier le ByRef (sans commentaires, par défaut, lisibilité, portabilité,... , il le faut).

Et kalobit a raison, tu ne peux pas appeler ton tableau tab (en VBA Excel).

à+

PS: j'arrive tard et dafrip a sûrement trouvé la réponse, je sais, mais je n'aurais pas répondu si jinh68 n'avait pas dit que le tableau déclaré en variant pouvait passer par un argument typé string.

rvblogn
Je veux ton bien....et je l'aurais....mais jamais avant la page 4 des derniers échanges

lundi 5 septembre 2011 à 18:46:24 | Re : Problème passage d'un tableau comme paramètre d'une fonction

Kemarnaud




salut j'ai un probleme; actuellement je developpe une application qui sera mit en reseau et j'utilise winsock en vb6. ce je n'arrives pas a faire de prendre le resultat d'une requete et l'affecte dans un tableau pour ensuite le renvoyer au client connécté qui émet juste un signal comme besoin de prochain numéro. aidez moi svp


Cette discussion est classée dans : fonction, tri, tab, tab1, tabl


Répondre à ce message

Sujets en rapport avec ce message

fonction de tri d'un vecteur sous VBA Excel [ par Delphine2 ] Bonjour à tous,Je suis utilisatrice confirmée d'Excel, mais débutante en VBA, et j'ai une difficulté :Voilà mon problème : j'ai des colonnes de chiffr fonction de tri d'un vecteur sous Excel [ par Delphine2 ] Bonjour à tous,Je suis utilisatrice confirmée d'Excel, mais débutante en VBA, et j'ai une difficulté :Voilà mon problème : j'ai des colonnes de chiffr creation d une fonction VB equivalente a ALT-TAB sous windows [ par fcsmrider ] Salut , je developpe un petit programme en VB et j aimerais pouvoir acceder aux differentes forms ouvertes de mon programme par une simple pression su tri tableau [ par damd ] salutj'aimerai savoir comment trier un tableau.en fait, est-ce qu'il existe une fonction ou bien il faut creer un algo ?s'il y a une fonction, j'aimer Allocation dynamique dans une fonction [ par Veovis ] Salut,Toujours dans mon projet de TP, j'ai un petit soucis avec l'allocation dynamique dans une fonction. Ce que je voudrais faire c'est quand le tabl Passer un tableau dans une fonction avec comme paramètre ParamArray [ par BozzoDodo ] Bonjour,j'ai une fonction:Private Function f1(ParamArray par() as Variant)End Functionet un tableau:Dim tab() as variantImaginons que ce tableau soit Triage d'un tableau VB/C [ par mattflyer ] Bonjour à tous, petite questionVoici un code pour trier un tableau. Ce code a été testé et tourne parfaitement. Il est écrit en C;for (j=1; j   {   t= Tri dans une Flexgrid [ par FASH ] Bonjour à tous,Comment peut-on faire un tri dans un Flexgrid quand on a des dates dans la colonnes. J'utilise une fonction trouvée sur le web qui trie tri de tableau alphanumérique [ par nickam ] Bonjour,Je suis débutant dans le milieu de la programmation VB et j'ai besoin d'aide pour résoudre une problème insurmopntable. Mon problème est que Fonction "Linest" = casse-tête [ par mobilotek ] Salut,Je galère trop avec l'utilisation de la fonction Linest sous VB...Pour ceux qui ne connaissent pas, cette fonction calcule les coefficients d'un


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,543 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales