récupération de cellule nommé en VBA

gonz19

XLDnaute Occasionnel
bonjour à tous,

Aprés quelque recherche sur le forum je n'ai aucune piste à ce que je souhaite faire, mais je panse que cela est possible.

J'ai un classeur avec plusieurs feuille. Sur chacune d'elles une cellule est nommée sur le format "baseHT_1"; ou "option_1"

Je souhaite récupérer toute la liste de cellule nommé suivant le format précédemment d'écrit pour alimenter une Variable.
Les donner seront ensuite exploité dans une Msgbox ou userform ou copié dans le classeur.

La commende [ Application.Goto Reference:="baseHT_1"] semblerais correspondre à ce que je veux faire mais comment créer une boucle sur tout les chiffres du nom "BaseHT_1".

Le fichiers joint à était épuré de quelques feuilles non utile et des macros non utile (pour l'exemple).

merci de votre aide
 

Pièces jointes

  • testDevis.xlsm
    33 KB · Affichages: 33

Papou-net

XLDnaute Barbatruc
Re : récupération de cellule nommé en VBA

Bonjour gonz19,

Je te laisse tester ta macro modifiée comme ceci:

Code:
Sub Macro1()
Dim Adr As Object
For Each Adr In ThisWorkbook.Names
  Application.Goto reference:=Range(Adr)
Next
End Sub
Tu devrais pouvoir l'adapter facilement.

Cordialement.
 
Dernière édition:

Caillou

XLDnaute Impliqué
Re : récupération de cellule nommé en VBA

Bonjour,

Pas tout compris !

I/ Pour avoir la liste des noms dans une feuille de calcul :
1 - clic dans une cellule quelconque d'une feuille du classeur (au-dessus d'une zone disponilbe)
2 - onglet Formules / Noms définis / Utiliser dans formule / Coller un nom / Coller la liste
3 - tu obtiens la liste des noms définis dans le classeur avec 2 colonnes (le nom et sa référence)

II/ en VBA, pour boucler sur les noms définis :
Code:
    Dim n As Name
    For Each n In ActiveWorkbook.Names
        MsgBox n.Name & " " & n.RefersTo
    Next
Caillou
 

Philippe Tulliez

XLDnaute Nouveau
Re : récupération de cellule nommé en VBA

Bonjour,
Voici une procédure à adapter qui cherche les noms se trouvant dans la constante LookupName.
Il suffit de modifier les valeurs de la constante nommée LookupName (Attention en minuscule et séparé par des ; )
Code:
Sub NameList()
 Dim n As Name, txt$, tbl() As String, Elem As Byte
 ' En minuscule
 Const LookupName$ = "remise;total"
 txt = "Liste des adresses des noms cherchés"
 For Each n In ThisWorkbook.Names
  tbl = Split(LookupName, ";")
  For Elem = 0 To UBound(tbl)
   If InStr(LCase(n.Name), tbl(Elem)) Then
     txt = txt & vbCrLf & tbl(Elem) & "->" & n.RefersTo
   End If
  Next
 Next
 MsgBox txt
End Sub
 

gonz19

XLDnaute Occasionnel
Re : récupération de cellule nommé en VBA

merci de votre aide si rapide

les trois on l'aire de bien marcher.
Mon préféré est le code à Philippe Tulliez qui m'indique uniquement les cellules comportant les nom souhaités.

je continue le reste de mon code
merci
 
Dernière édition:

gonz19

XLDnaute Occasionnel
Re : récupération de cellule nommé en VBA

Auriez-vous une idée pour la suite de mon code
en partant du code de Philippe

je voudrais récupérer la valeur situer dans le bandeau (Bleu) en colonne B.
pour l'écrire dans la textbox avant la reférence de la cellule.
ma colonne A reste toujours vide sauf pour donner un numéro au formulaire de devis

en gros j'imaginé remplacer la ligne de code
Code:
 txt = txt & vbCrLf & tbl(Elem) & "->" & n.RefersTo
par le code:
Code:
 txt = txt & vbCrLf & n.Offset(Cells("A" & Rows.Count).End(xlUp).Offset(0, 1), -4).Value & "->" & n.NameLocal

merci
 

gonz19

XLDnaute Occasionnel
Re : récupération de cellule nommé en VBA

je touche presque au but , mais ma variable ce charge pas de la valeur
par contre le range de la variable a bien la bonne valeur

Code:
 Application.Goto reference:=Range(n.RefersTo)
   nom = Selection.Cells(Range("A" & Rows.Count).End(xlUp).Offset(0, 1).Value).Value
 

gonz19

XLDnaute Occasionnel
[Résolut] récupération de cellule nommé en VBA

j 'ai trouvé une solution a mon probléme
ci dessous le code complet
je vous remercie de votre aide

Code:
Sub NameList()
 Dim n As Name, txt$, tbl() As String, nom As String, nbr As String, Elem As Byte
 ' En minuscule
 Const LookupName$ = "baseht;option"
 txt = "Liste des Beses et Option avec leur référence"
 For Each n In ThisWorkbook.Names
  tbl = Split(LookupName, ";")
  For Elem = 0 To UBound(tbl)
   If InStr(LCase(n.Name), tbl(Elem)) Then
   Application.Goto reference:=Range(n.RefersTo)
   nbr = CInt(Right(CStr(n.RefersTo), 2)) 'isole les 4 derniers chiffre
   nom = Range("A" & nbr).End(xlUp).Offset(0, 1).Value
   txt = txt & vbCrLf & n.NameLocal & "  " & nom
   End If
  Next
  Next
 MsgBox txt
   '  nom = Range("A" & Rows.Count).End(xlUp).Offset(0, 1).Value
 End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 499
Messages
2 088 999
Membres
104 001
dernier inscrit
dessinbecm