"comboref"

  • Initiateur de la discussion petchy
  • Date de début
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
 
@

@+Thierry

Guest
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
 

Statistiques des forums

Discussions
312 310
Messages
2 087 119
Membres
103 478
dernier inscrit
Frederic Lagger