Noms de plage variable dans macro
Le
daniel
Bonjour,
Dans une feuille, j'ai différentes plage nommées.
Je souhaiterais que les valeurs de la plage "VuNoms" deviennent les valeurs
d'une autre plage nommée, mais cette plage varie.
sub test()
'ici la variable TitreLigne doit enregistrer le nom "ActionNoms"
TitreLigne = "ActionNoms"
ColleNoms
end sub
Sub ColleNoms()
'ici la variable TitreLigne devient vide ???
Application.Goto Reference:=TitreLigne
Et si c'est possible
Les valeurs de "ActionNoms" sont recopiées dans une plage "VuNoms" sans
copier coller.
Dans ce style, mais bien sûr, comme ça, ça ne fonctionne pas.
Application.Goto reference:="VuNoms" = TitreLigne.Value
Par avance, merci de vos réponses et bonne journée.
DanielH
Dans une feuille, j'ai différentes plage nommées.
Je souhaiterais que les valeurs de la plage "VuNoms" deviennent les valeurs
d'une autre plage nommée, mais cette plage varie.
sub test()
'ici la variable TitreLigne doit enregistrer le nom "ActionNoms"
TitreLigne = "ActionNoms"
ColleNoms
end sub
Sub ColleNoms()
'ici la variable TitreLigne devient vide ???
Application.Goto Reference:=TitreLigne
Et si c'est possible
Les valeurs de "ActionNoms" sont recopiées dans une plage "VuNoms" sans
copier coller.
Dans ce style, mais bien sûr, comme ça, ça ne fonctionne pas.
Application.Goto reference:="VuNoms" = TitreLigne.Value
Par avance, merci de vos réponses et bonne journée.
DanielH

Poser une question


Pour pouvoir utiliser le contenu d'une variable d'une procédure à l'autre,
il faut la déclarer publique en tête de module comme ceci :
public TitreLigne as string
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft...c.fr.excel
"daniel" news:
Merci beaucoup, ça fonctionne bien mieux maintenant.
Mais pour la partie du collage des valeurs, y'a t'il une solution ?
Encore merci et bonne journée.
DanielH
"Philippe.R"
Mais une façon simple de définir une plage NOMMÉE en VBA
Range("A1:A25").Name = "toto"
Regarde dans l'interface de la feuille de calcul, insertion / nom
Toto est bien une plage nommée
Si tu veux affecter le contenu de la plage nommée "Toto" à une autre
plage, tu peux :
Range("toto").copy Range("G5")
Si tes plages sont de même dimension
Range("G1:G5") = Range("Toto")
"daniel"
Bonjour,
Dans une feuille, j'ai différentes plage nommées.
Je souhaiterais que les valeurs de la plage "VuNoms" deviennent les valeurs
d'une autre plage nommée, mais cette plage varie.
sub test()
'ici la variable TitreLigne doit enregistrer le nom "ActionNoms"
TitreLigne = "ActionNoms"
ColleNoms
......
end sub
Sub ColleNoms()
'ici la variable TitreLigne devient vide ???
Application.Goto Reference:=TitreLigne
Et si c'est possible
Les valeurs de "ActionNoms" sont recopiées dans une plage "VuNoms" sans
copier coller.
Dans ce style, mais bien sûr, comme ça, ça ne fonctionne pas.
Application.Goto reference:="VuNoms" = TitreLigne.Value
Par avance, merci de vos réponses et bonne journée.
DanielH
Merci pour la réponse.
J'ai essayé de mettre en application tout ça, mais je n'y arrive pas
vraiment.
Le principe pour être plus clair, c'est que TitreLigne est une variable dans
la macro qui doit enregistrer l'un des noms de l'onglet.
Chaque nom dans l'onglet a une liste de valeur que je souhaite recopier dans
la plage nommée VuNoms, et juste les valeurs sans les formats.
En essayant de suivre vos conseils :
ça marche, mais les formats sont copiés aussi.
Range(TitreLigne).Copy Range("VuNoms")
les valeurs ne sont pas recopiées
Range("VuNoms") = Range(TitreLigne)
Le tout, c'est de permettre d'avoir un tableau avec des colonnes figées qui
reprennent la colonne des noms des cellules en rapport avec la partie
visible.
Merci par avance
"michdenis"
Pour les besoins de l'exemple mes noms représentent
seulement une colonne
Feuil1!Toto = A1:A5
feuil1!Toto1 = b1:B5
Feuil2!Toto3 = C1:C5
'-------------------------
Sub test()
'déclaration des variables
Dim Rg As Range, x As Integer
Dim N As Name
With Feuil1 ' à adapter au besoin
'affecte à la variable objet Rg la plage où
'seront copiées les données
Set Rg = .Range("A1:C5")
'Boucle sur chacun des noms DÉFINI AU NIVEAU
'DE LA FEUIL1
For Each N In .Names
'c'est pour toi, lorsque tu exécutes en pas à pas
' tu peux voir son nom
SonNom = N.Name
'Variable servant à incrémenter pour les besoins de la boucle
x = x + 1
'Copie dans chacune de mes colonnes les valeurs de chaque nom
Rg.Columns(x).Value = .Range(N).Value
Next
End With
End Sub
"daniel"
Bonjour,
Merci pour la réponse.
J'ai essayé de mettre en application tout ça, mais je n'y arrive pas
vraiment.
Le principe pour être plus clair, c'est que TitreLigne est une variable dans
la macro qui doit enregistrer l'un des noms de l'onglet.
Chaque nom dans l'onglet a une liste de valeur que je souhaite recopier dans
la plage nommée VuNoms, et juste les valeurs sans les formats.
En essayant de suivre vos conseils :
ça marche, mais les formats sont copiés aussi.
Range(TitreLigne).Copy Range("VuNoms")
les valeurs ne sont pas recopiées
Range("VuNoms") = Range(TitreLigne)
Le tout, c'est de permettre d'avoir un tableau avec des colonnes figées qui
reprennent la colonne des noms des cellules en rapport avec la partie
visible.
Merci par avance
"michdenis"