Désigner un nom de plage à l'aide d'une variable

GeoTrouvePas

XLDnaute Impliqué
Enième bonjour à tout le monde !

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)....
 
Dernière édition:

Cousinhub

XLDnaute Barbatruc
Re : Désigner un nom de plage à l'aide d'une variable

Re-,

chez moi, cela fonctionne :

Code:
Sub Test()
Dim MaVariable  As String
MaVariable = "Table_" & Application.UserName
Range(MaVariable).Item(1, 1) = "test"
End Sub

ainsi que :

Code:
Sub Test()
Dim MaVariable  As String
MaVariable = "Table_" & Application.UserName
Range(MaVariable) = "test"
End Sub

Es-tu sûr d'avoir une plage nommée "Table_Untel"? (dans Insertion/Nom/Définir)

bon courage
 

GeoTrouvePas

XLDnaute Impliqué
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é.

Pourtant je suis sur que ma plage existe bien.
 

Ubot303

XLDnaute Occasionnel
Re : Désigner un nom de plage à l'aide d'une variable

Re Géo,

J'ai lu en travers mais cela ressemble à une manière de contourner un Select Case non?
Qui plante...

Peut-être que revoir le problème à la base, càd Eviter les IF en pagaille

Select Case Nom_util
Case "Georges"
...
Case "François"
...

End Select
 
Dernière édition:

GeoTrouvePas

XLDnaute Impliqué
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 :

Code:
Range(Service_Utilisateur).Item(1,1) = Textbox1
Range(Service_Utilisateur).Item(1,2) = Textbox2
Range(Service_Utilisateur).Item(1,3) = Combobox4
.........
 

GeoTrouvePas

XLDnaute Impliqué
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.
 

Discussions similaires

Statistiques des forums

Discussions
312 099
Messages
2 085 273
Membres
102 846
dernier inscrit
gilles45