• Initiateur de la discussion Initiateur de la discussion petchy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

P

petchy

Guest
bonjour le forum
eh oui,c'est encore moi toujours un probleme avec mes combos:
dans un USF j'ai 2 combo,un qui est alimenté dans la base "comboarti" celui là c'est bon et l'autre "comboref" qui doit s'alimenté quand je suis sur une autre feuille,mais comme j'ai une dizaine de feuilles et que l'USF sert pour toutes les feuilles
donc j'ai essayé se code,mais j'ai une erreur

Private Sub Comboref_Change()
Dim feuille As String
Dim maposition
maposition = Comboref.ListIndex + 2
feuille = ActiveSheet.Name
REF.Label17.Caption = Worksheets("Feuille").Range("e" & maposition & "")
REF.Label20.Caption = Worksheets("Feuille").Range("C" & maposition & "") & "€"
REF.Label22.Caption = Worksheets("Feuille").Range("B" & maposition & "")
End Sub

Private Sub UserForm_Activate()
Dim dernierARTICLES As String
Dim T
Dim feuille
feuille = ActiveSheet.Name
dernierARTICLES = Worksheets("base").Range("a1").End(xlDown).Address
REF.Comboarti.RowSource = "base!a2: " & dernierARTICLES & ""
REF.Comboref.RowSource = "feuille" '& dernierARTICLES & ""
CommandButton2.Visible = False
Init
End Sub
mercide me donné un coup de main
@ plus
petchy
 
Salut Petchy, le Forum

Sans aucun test car je ne veux pas refaire un classeur contenant tous ces noms... Voici mes remarques :

Remarque 1
A partir du moment où "Feuille" est une Variable de Type String que tu déclares et initialise... Si tu fais appel à elle dans le code, alors c'est sans guillemets.........
Par conséquent ceci est faux => Worksheets("Feuille") ...
Remplace par => Worksheets(Feuille)

Remarque 2
Si tu travailles avec "maposition" en tant que Variable Integer (attention tu n'as pas déclarer correctement, car là tu es "Variant").....
Alors la syntax => Range("e" & maposition & "") est fausse...
On écrirait ceci :
Range("e" & maposition )
Ce qui suffit amplement.

Remarque 3
Pour la seconde macro, où "Feuille" est toujours une Variable de Type String initialisée (encore) avec ActiveSheet.Name... Cette ligne de code comporte une erreur de Syntax :
REF.Comboref.RowSource = "feuille" '& dernierARTICLES & ""
Il faudarit écrire comme ceci :
REF.Comboref.RowSource = Feuille & "!A2:" & dernierARTICLES & ""

Remarque 4
Vu que tu initialise ta variable "Feuille " à l'activation du UserForm, tu devrais en faire une Variable Public Niveau Module, ce qui t'éviterait de d'initialiser de nouveau avec le Comboref_Change... (Dim Feuille As String en Top du Private Module du UserForm) Et (of course) plus de Dim Feuille dans les Macro, avec une seule initialisation pour l'ActiveSheet.Name dans l'activate....

Remarque 5
Dim T <<<<<< ne sert à rien du tout mis à part à réserver un Variant en espace mémoire... à moins que celà ait un rapport avec la macro "Init" mais je ne pense pas car de toute manière ce n'est pas une Variable Publique...

Remarque 6
En application de la remarque 4, le Dim Feuille en Activation sera supprimé, mais tout de même sache que tu devrais le déclarer As String (comme tu as fait dans l'autre macro)

Remarque 7
J'ai vraiment très faim et je te souhaite un bon appétit !! lol


@+Thierry
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
316
Réponses
10
Affichages
533
  • Question Question
XL 2021 listbox
Réponses
18
Affichages
506
Retour