[Résolu] Incompatibilité de type tableau

Résolu/Fermé
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 - Modifié par winflow le 29/10/2013 à 15:02
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 - 30 oct. 2013 à 16:05
Bonjour,

J'ai la routine suivante dans une feuille :
Private Sub recupPrestations(plage As String, ByRef arr() As String)

J'ai l'appel suivant dans la même feuille :
recupPrestations plagePrSin, prestations

Le tableau prestation est déclaré de la manière suivante dans un module :
Dim prestations() As String

Je ne comprend pour quoi cela ne fonctionne pas ! Pouvez -vous m'aider svp ?

Merci d'avance ,

Cordialement

Winflow

17 réponses

Utilisateur anonyme
29 oct. 2013 à 14:37
Bonjour

Quel message d'erreur as-tu exactement ? Quand j'essaye ton code, J'obtiens un "variable non définie" sur prestations parce que tu ne l'as pas défini avec Public, donc il est inconnu en dehors de ton module. L'erreur disparaît si je déclare
Public prestations() As String
1
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
29 oct. 2013 à 14:43
Bonjour,

ex: si variables declarees dans le code appelant, pas a redefinir ensuite et pour les tableaux pas de ()

Sub test()
Dim prestations() As String
Dim plagePrSin As String

ReDim prestations(10)

prestations(1) = "azerty"

recupPrestations plagePrSin, prestations
End Sub

Private Sub recupPrestations(plage, ByRef arr)

x = arr(1)

End Sub
1
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
30 oct. 2013 à 08:55
Bonjour,

avant de continuer, un exemple avec des listes de validations de donnees et sans VBA

vous cliquez sur les cellules tab1, si x en cellule B alors liste deroulante sinon rien

https://www.cjoint.com/?CJEiZHu5pKR

les listes a afficher peuvent etre differentes par cellules, cela ne pose aucun probleme

A vous de voir
1
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
29 oct. 2013 à 14:43
Avec le public ça fonctionne impeccable une erreur de débutant de plus
Merci !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
Modifié par winflow le 29/10/2013 à 15:05
D'accord merci f894009 ( pseudo WTF quand même). Je ne le savais pas mais je préfère mettre les parenthèse pour plus de clarté.

Par ailleurs j'ai une autre question (je vais marquer le sujet résolu de suite ) j'ai dans XL deux tableaux construit de la même manière c'est à dire une colonne avec des chaines de caractères et la colonne associée comporte des champs vides que l'on doit remplir avec des "X". Une fois la deuxième colonne remplie je doit faire apparaitre une liste de choix entre plusieurs propositions qui correspond à la cellule de la deuxième colonne (celle comportant les "X") du premier tableau uniquement. Une seule proposition peut être choisie. A mon avis je dois utiliser ce machin :
Private Sub Worksheet_Change(ByVal Target As Range)
Mais je bloque pour faire apparaitre justement cette liste de choix. Avez - vous une idée ?
Cordialement

Winflow
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
29 oct. 2013 à 16:05
Re,

D'accord merci f894009 ( pseudo WTF quand même) ??????

Je ne le savais pas mais je préfère mettre les parenthèse pour plus de clarté. si c'est pour le passage de tableau, normalement non, cela doit vous faire une erreur !!!!

Une fois la deuxième colonne remplie je doit faire apparaitre une liste de choix entre plusieurs propositions qui correspond à la cellule de la deuxième colonne (celle comportant les "X") du premier tableau uniquement. Une seule proposition peut être choisie. A mon avis je dois utiliser ce machin : vous pouvez developper ou/et mettre un fichier exemple sur https://www.cjoint.com/

n'oublier pas de copier/coller le lien cree dans votre prochain message

A+
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
29 oct. 2013 à 16:15
Voilà c'est un exemple générique car je traite des informations confidentielles. Donc dans le tableau tab1 si je met une croix dans sa colonne "B3" par exemple je pourrais accéder à ma liste de choix. Le fait de mettre un croix est géré par la fonction
Private Sub Worksheet_Change(ByVal Target As Range)
qui va créer la liste de choix. Voilà je pense que c'est plus clair comme ça.

https://www.cjoint.com/?3JDqoad45Rw

PS : Pas de code associer pour le moment vu que je ne sais pas comment faire.
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
29 oct. 2013 à 16:29
Re,

qui va créer la liste de choix. cette liste de choix est variable ou pas et est-ce la meme pour toutes les lignes du tableau ????

Cette liste pourrait-elle etre en fixe dans des cellules sur un onglet ???
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
30 oct. 2013 à 08:37
Re,

la liste de choix sera créer par la routine évènementielle
Private Sub Worksheet_Change(ByVal Target As Range)

Ce n'est pas la même pour chaque ligne pour la ligne 1 à 3 du tableau ce sera une liste proposant supervision, automate ou supervision et automate. Pour la ligne 4 ce sera une autre. Ligne 5 une autre, ligne 6 une autre. Ce qui m'intéresse c'est comment créer cette liste donc via un exemple je me débrouillerais avec le reste. La liste serait fixe à une ou plusieurs cellule dans le cas de la ligne 1 à 3. Après pour les autres ce serait fixe à une cellule et un seule.
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
30 oct. 2013 à 09:29
Oui c'est de cette manière que j'ai créer mes autres listes, cependant où j'ai accès à la modification des choix puisque quand je suis scrupuleusement ton tuto j'ai le choix 1, 2, 3, 4 ?
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
30 oct. 2013 à 09:33
Non c'est bon j'ai trouvé. Est-il possible de configurer les choix sans ajouter de feuille ?
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
30 oct. 2013 à 10:15
Re,
Oui, mettez vos liste de choix sur la premiere feuille. Decalez les en dehors de la zone visible si cela vous arrange
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
30 oct. 2013 à 10:36
D'accord merci et à bientôt =)
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
30 oct. 2013 à 12:02
Re,

Je n'arrive pas à créer ma liste. La formule que vous m'avez donné fonctionne seulement un fois une proposition sélectionné impossible de la modifier....
Donc je suppose qu'il faut une formule du type :
=SI(OU(cell=choix1;cell="choix2";cell="choix3";cell="choix4";cell="x";cell="X");choix;"")

Seulement cela ne fonctionne pas ....
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
30 oct. 2013 à 12:49
Re,

un fois une proposition sélectionné impossible de la modifier Si il est possible de modifier !!

=SI(OU(cell=choix1;cell="choix2";cell="choix3";cell="choix4";cell="x";cell="X");choix;"") Que diantre !!!!!

Expliquez ce que vous voulez, ce sera mieux
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
30 oct. 2013 à 13:44
Ce que je voulais dire par "on ne plus la modifier" c'est que si on retourne sur notre liste déroulante on ne plus sélectionné sélectionné autre chose que ce que l'on sélectionné auparavant. Donc ce que je voudrais c'est que on puisse retourner sur cette même après avoir sélectionné qqc avant. Ce qui explique la formule donné ci-dessus si on sélectionné le choix1 on peut toujours avoir accès à la liste déroulante et choisir un autre choix. Bien entendu choix1 choix2 etc... sont un exemple générique...
0
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
Modifié par f894009 le 30/10/2013 à 16:06
Re,

si vous avez fait un choix et que vous vouliez en changer, clic sur le petit carre avec une fleche vers le bas a droite de la cellule !!!!!
0