Additionner deux noms du gestionnaire de nom

Bonjour à tous,

Encore un petit probleme qui traine sur mon projet,

J'ai deux listes une liste Post(+N° de la listindex) et une liste Ablist(+N°de la listindex)

j'ai essayer dans le gestionnaire des noms crée qu'une seul liste

SerList1=(Post1+AbList1)

mais ca ne fonctionne pas.

J'ai également essayé en VBA

Sub CalEcrirePost()
Dim a, i%
Wshebdo.Range("C1:BB1").ClearContents
a = Range("Post" & CmbSect).Value + Range("Ablist" & CmbSect).Value
For i = 1 To (UBound(a))
Wshebdo.Cells(i + 2) = a(i, 1)
Next
End Sub

Mais ca ne foctionne pas nonplus,

Si vous avez des idées pour résoudre ce problème

16vers-la-p-rh-6-6.xlsm (214.80 Ko)

Bonjour,

Tu es fâché avec la syntaxe ! Peut-être de cette façon... Mais il faudrait que CmbSect soit une variable module et qu'elle ait été initialisée, pour avoir une chance avec la procédure en l'état :

Sub CalEcrirePost()
    Dim a$, i%, n%
    Wshebdo.Range("C1:BB1").ClearContents
    a = "Post" & CmbSect
    n = Range(a).Rows.Count
    For i = 1 To n
        Wshebdo.Cells(i + 2) = Range(a).Cells(i, 1)
    Next i
    a = "Ablist" & CmbSect
    For i = 1 To Range(a).Rows.Count
        Wshebdo.Cells(n + i + 2) = Range(a).Cells(i, 1)
    Next i
End Sub

Merci Mferrand,

Je ne suis pas faché avec la syntaxe c'est elel qui me comprend pas

Bon apparemment ca fonctionne en l'état pourtant CmbSect est une valeur de combobox traité directement dans le worksheet,

Merci,

Je valide

Je n'ai pas regardé de trop près ! Mais tu utilises une variable non déclarée dans la procédure et tu ne l'initialises pas. Par conséquent, si elle n'est pas déclarée en dehors (et en dehors veut dire niveau module car dans une procédure les variables n'ont d'existence que le temps de l'exécution), et initialisée quelque part en amont, c'est comme si elle n'existait pas...

Pour le reste je n'ai cherché qu'à écrire un code qui ait quelque chance de fonctionner. Regrouper deux listes à partir de plages distinctes nommées, ça peut pas marcher, pour avoir une liste unique, il faut la recomposer élément par élément... Regrouper les plages avec Union, n'en fait pas une liste, et aurait posé plus problème qu'apporter une solution. Au demeurant, dans la mesure où le but était de les affecter, autant le faire pour chaque plage à la suite. Et pour accéder à chaque plage, la manipulation des noms ne produit que des données String, il faut donc une utilisation à partir de ce type de données, soit avec Range si ça marche, soit par Workbook.Names(xxx).RefersToRange... Et ne pas oublier que + est un opérateur arithmétique, que l'opérateur de concaténation est &, et que ni l'un ni l'autre ne peut faire une plage unique de deux plages distinctes au départ.

Bref, je n'ai pas testé de toute façon car la procédure pas testable en l'état pour ce qui me concerne, sauf que Range avec un nom recomposé renvoyait bien la plage correspondante...

Cordialement

Merci pour les explications

A bientôt,

Rechercher des sujets similaires à "additionner deux noms gestionnaire nom"