Malgré de vastes recherches et de multiples essais, je n'arrive toujours pas à trouve une procédure satisfaisante. Mon problème me semble pourtant être un relativement classique mais pourtant je ne trouve aucune info à ce sujet. Je voudrais en effet qu'une opération s'effectue sur une plage différente selon l'utilisateur.
Mon code pourrait donc ressembler à ça :
Code:
Sub Test
If Application.Username = "Thomas" Then
Range("Table_Thomas").item(1,1) = "test"
Else
If Application.Username = "Pierre" Then
Range("Table_Pierre").item(1,1) = "test"
.....
End Sub
Pour éviter d'avoir à faire une immense succession de "If", je voudrais faire un code qui ressemble à ça :
Code:
Sub Test
Dim MaVariable as String (ou Range ?)
MaVariable = "Table_" & Application.Username
[COLOR="Red"]Range(MaVariable).item(1,1) = "test[/COLOR]
End Sub
Mais bien sur, Vba n'aime pas trop la ligne en rouge.
Pourriez vous me guider ?
Bonne fin de journée à tous !
Edit : Je précise que cet exemple est vraiment simplifié au max. Le coeur de mon problème est vraiment de pour faire "fonctionner" ce Range(MaVariable)....
Re : Désigner un nom de plage à l'aide d'une variable
ça marche vraiment ?
j'ai tout repris point par point, j'ai un copier / coller pour être sur de n'avoir fait aucune faute de frappe et j'ai toujours la fameuse erreur 1004 : La méthode 'Range' de l'objet '_Global' a échoué.
Re : Désigner un nom de plage à l'aide d'une variable
bhbh : ça marche. J'ai honte, je sors, je m'enfui. J'ose même pas te dire d'où venait mon erreur...
Ubot : Perdu ! C'est pas pour esquiver le Select Case (que je ne connais pas bien du tout d'ailleurs). C'est juste que j'ai un grand tableau (46 colonnes)identique sur plusieurs feuilles (dépendant du service dans lequel bosse la personne).
Une fois que l'utilisateur aura rempli tous les Userform, je vais faire une routine du genre :
Re : Désigner un nom de plage à l'aide d'une variable
Non mais là, c'est la honte ^^
En fait, je sais pas vraiment d'où elle vient en plus mais apparement ça s'apparente à une faute de frappe puisque qu'après avoir tout repris en copier coller, mon code se déroule sans erreur. Je suis deg de m'être pris la tête là dessus toute l'après midi.
Merci et surtout désolé de vous avoir fait perdre votre temps.