Formatage d'URL à partir de critères

Bonjour/Bonsoir à tous,

Voici mon problème :

J'ai créé un programme VBA qui, en fonction de critères entrés, formate un lien URL pour sortir une base de données .csv

Le lien est de la forme suivante : http://[nom du site]/export.[...]&f= [critère 1] , [critère 2] , [critère n]&ft=4

Pour définir le lien, l'utilisateur choisi les valeurs des critères 1, 2, ..., n via des menus déroulants. En fonction du numéro associé dans la cellule liée, je fais appel à des variables invisibles à l'utilisateur pour formater le lien en fonction du choix de critères.

Ma variable URL est donc de cette forme :

URL = "http:// <etc> &f=" & critère1 & "," & critère2 & "," & critèren & "&ft=4"

Mon soucis est qu'il y a des virgules entre chaque critère dans le lien URL.

Ainsi, si tous mes critères ne sont pas sélectionnés (c'est généralement le cas), il y a des virgules en trop.

Par exemple, si aucun critère n'est sélectionné, le lien ressemble à celà :

http://[nom du site etc]&f=,,,,,,&ft=4

J'ai donc pensé ajouter, dans le nom des critères (ceux utilisés pour le lien sont cachés à l'utilisateur), les virgules.

Au lieu que celles-ci soient fixes dans mon lien formaté (donc avec l'utilisation des & "," &... pour concaténer), elles seront ajoutées dans le nom des variables.

Seulement, je n'arrive pas à trouver de solution afin qu'il n'y a pas de virgule en trop, ou alors pas assez.

Si je décide de mettre une virgule avant chaque nom de variable (pour que ça apparaisse dans l'URL), je me retrouve avec une virgule en trop au début (avant le critère 1). Et inversement évidemment avec le dernier critère si je mets les virgules à la fin du nom des variables.

C'est surtout une question de logique, pas vraiment de code complexe à élaborer je pense. Mais je ne trouve vraiment pas après plusieurs tentatives différentes.

Quelqu'un aurait une idée ?

J'espère avoir fourni suffisamment d'éléments, cependant si vous avez des questions afin que je précise mon problème n'hésitez pas.

En vous remerciant d'avance pour votre lecture et les diverses réponses qui y seront apportées.

Cordiales salutations,

Alexandre.

Bonsoir,

un exemple de création de l'URL sur base de critères qui se trouvent dans la plage "A1:F1" et copiés dans un tableau

Sub test()
Dim critère As Variant
critère = Range("A1:F1")
URL = "http:// <etc> &f="
sep = ""
For i = LBound(critère, 2) To UBound(critère, 2)
If critère(1, i) <> "" Then

URL = URL & sep & critère(1, i)
If sep = "" Then sep = ","
End If
Next i
URL = URL & "&ft=4"
MsgBox URL

Ca marche, problème résolu.

Et je comprend quasiment tout le code !

Quelques questions donc :

N'ayant pas déclaré LBound et UBound, j'ai du mal à savoir à quoi ça correspond.

Il me semble que ça fait référence à des tableaux.

Pourriez-vous m'expliquer de manière succincte comment cela fonctionne (notamment le Nom : U et L)?

Mes remerciements pour votre aide, h2so4.

Très bonne fin de soirée.

Bonjour,

Ubound et Lbound sont des fonctions VBA et ne sont pas des variables.

Lbound (nom du tableau, dimension) : donne pour le tableau nommé, la valeur inférieure pour la dimension précisée

Ubound (nom du tableau, dimension): donne pour le tableau nommé, la valeur supérieure pour la dimension précisée

par exemple

dim r(2 to 10,5 to 20)

lbound(r,1)=2

lbound(r,2)=5

ubound(r,1)=10

lbound(r,2)=20

ces fonctions ont leur plus grande utilité dans la gestion des tableaux dynamiques.

Tout est parfaitement clair désormais.

Merci !

Rechercher des sujets similaires à "formatage url partir criteres"