Ceci copie tous les NOMS qui représentent des plages de cellules. Il reste à adapter la destination où ces plages seront copiées.
'-------------------------------------------------- Sub test() Dim C As Name On Error Resume Next 'Une boucle sur chacun des "NOMS" du classeur For Each C In ThisWorkbook.Names 'Teste si le NOM représente une plage If TypeName(Range(C.Name)) = "Range" Then 'Si aucune erreur n’est générée, le NOM 'représente une plage de celules If Err = 0 Then 'copie de la plage vers la destination de ton choix, à adapter Range(C.Name).Copy Worksheets("Feuil2").Range("A1") Else 'Si une erreur est générée, on l'efface Err.Clear End If End If Next End Sub '--------------------------------------------------
Ceci copie tous les NOMS qui représentent des plages de cellules.
Il reste à adapter la destination où ces plages seront copiées.
'--------------------------------------------------
Sub test()
Dim C As Name
On Error Resume Next
'Une boucle sur chacun des "NOMS" du classeur
For Each C In ThisWorkbook.Names
'Teste si le NOM représente une plage
If TypeName(Range(C.Name)) = "Range" Then
'Si aucune erreur n’est générée, le NOM
'représente une plage de celules
If Err = 0 Then
'copie de la plage vers la destination de ton choix, à adapter
Range(C.Name).Copy Worksheets("Feuil2").Range("A1")
Else
'Si une erreur est générée, on l'efface
Err.Clear
End If
End If
Next
End Sub
'--------------------------------------------------
Ceci copie tous les NOMS qui représentent des plages de cellules. Il reste à adapter la destination où ces plages seront copiées.
'-------------------------------------------------- Sub test() Dim C As Name On Error Resume Next 'Une boucle sur chacun des "NOMS" du classeur For Each C In ThisWorkbook.Names 'Teste si le NOM représente une plage If TypeName(Range(C.Name)) = "Range" Then 'Si aucune erreur n’est générée, le NOM 'représente une plage de celules If Err = 0 Then 'copie de la plage vers la destination de ton choix, à adapter Range(C.Name).Copy Worksheets("Feuil2").Range("A1") Else 'Si une erreur est générée, on l'efface Err.Clear End If End If Next End Sub '--------------------------------------------------
donc je viens de faire un test et je pense m'etre mal expliqué
je reprends
je possede un classeur nommé performance 102
Dans ce classeur j'ai 2 feuilles appellées 102TBM et 102AJE
ce classeur comporte grand nombre de zones nommées faisant reference ou à 102TBM ou 102AJE.
ces deux feuilles comporte les memes tableau sur la structure mais pas forc ement le meme de nombre de ligne remplies, d'ou ces zones nommées faisant reference ou à 102TBM ou 102AJE.
pour exemple ma feuille 102TBM aura comme zone nommée dispo1 CALER(102TBM!$B$2;NBVAL(102TBM!$A:$A)-3;0;3)
et ma feuille 102JET aura comme zone nommée dispo2 CALER(102JET!$B$2;NBVAL(102JET!$A:$A)-3;0;3)
donc ces zones nommées je souhaiterai les reprendre dans un autre classeu r appelé Performance 133 qui lui comporte 4 feuilles
j'aurais donc dispo1, dispo2, dispo3 et dispo 4 pour faire reference à ch aque feuille
j'espere avoir été un peu plus précis dans mes commentaires
merci
bonsoir et encore merci de me venir en aide
donc je viens de faire un test et je pense m'etre mal expliqué
je reprends
je possede un classeur nommé performance 102
Dans ce classeur j'ai 2 feuilles appellées 102TBM et 102AJE
ce classeur comporte grand nombre de zones nommées faisant reference ou à 102TBM ou 102AJE.
ces deux feuilles comporte les memes tableau sur la structure mais pas forc ement le meme de nombre de ligne remplies, d'ou ces zones nommées faisant reference ou à 102TBM ou 102AJE.
pour exemple ma feuille 102TBM aura comme zone nommée
dispo1 =DECALER(102TBM!$B$2;NBVAL(102TBM!$A:$A)-3;0;3)
et ma feuille 102JET aura comme zone nommée
dispo2 =DECALER(102JET!$B$2;NBVAL(102JET!$A:$A)-3;0;3)
donc ces zones nommées je souhaiterai les reprendre dans un autre classeu r appelé Performance 133 qui lui comporte 4 feuilles
j'aurais donc dispo1, dispo2, dispo3 et dispo 4 pour faire reference à ch aque feuille
j'espere avoir été un peu plus précis dans mes commentaires
donc je viens de faire un test et je pense m'etre mal expliqué
je reprends
je possede un classeur nommé performance 102
Dans ce classeur j'ai 2 feuilles appellées 102TBM et 102AJE
ce classeur comporte grand nombre de zones nommées faisant reference ou à 102TBM ou 102AJE.
ces deux feuilles comporte les memes tableau sur la structure mais pas forc ement le meme de nombre de ligne remplies, d'ou ces zones nommées faisant reference ou à 102TBM ou 102AJE.
pour exemple ma feuille 102TBM aura comme zone nommée dispo1 CALER(102TBM!$B$2;NBVAL(102TBM!$A:$A)-3;0;3)
et ma feuille 102JET aura comme zone nommée dispo2 CALER(102JET!$B$2;NBVAL(102JET!$A:$A)-3;0;3)
donc ces zones nommées je souhaiterai les reprendre dans un autre classeu r appelé Performance 133 qui lui comporte 4 feuilles
j'aurais donc dispo1, dispo2, dispo3 et dispo 4 pour faire reference à ch aque feuille
j'espere avoir été un peu plus précis dans mes commentaires
merci
magic-dd
je viens de faire un test avec l'enregistreur de macros
.Names.Add Name:="waouh", RefersToR1C1:= _ "=OFFSET(" & Sheets(3).Name & "!R2C1,COUNTA(" & Sheets(3).Name & "!C1)-3,0,3)" End With End Sub '---------------------------------------
.Names.Add Name:="waouh", RefersToR1C1:= _
"=OFFSET(" & Sheets(3).Name & "!R2C1,COUNTA(" & Sheets(3).Name &
"!C1)-3,0,3)"
End With
End Sub
'---------------------------------------
.Names.Add Name:="waouh", RefersToR1C1:= _ "=OFFSET(" & Sheets(3).Name & "!R2C1,COUNTA(" & Sheets(3).Name & "!C1)-3,0,3)" End With End Sub '---------------------------------------
je vois bien le principe du " & Sheets(3).Name & ...;
seulement il me met une erreur 1004
je craque
il me vien a l'idee aussi de de remplacer le numéro de la feuille par i e t faire une boucle genre
for i = 1 to nombre total de feuille dans le classeur
With ActiveWorkbook .Names.Add Name:="dd" & i , RefersTo:= _ "=OFFSET(" & Sheets(i).Name & "!R2C1,COUNTA(" & Sheets(i).Name & "!C1)-3,0,3)"
mais bon la je me crois chez les bisounours :))
MichD
Si tu veux indexer les noms des plages créés, tu peux utiliser ceci :
'---------------------------------- Sub test() Dim A As Integer, Nom As String With ActiveWorkbook For Each sh In .Worksheets A = A + 1 Nom = "Magic" & A .Names.Add Name:="" & Nom & "", RefersTo:= _ "=OFFSET(" & sh.Name & "!R2C1,COUNTA(" & ss & "!C1)-3,0,3)" Next End With End Sub '----------------------------------
Si tu veux indexer les noms des plages créés, tu peux utiliser ceci :
'----------------------------------
Sub test()
Dim A As Integer, Nom As String
With ActiveWorkbook
For Each sh In .Worksheets
A = A + 1
Nom = "Magic" & A
.Names.Add Name:="" & Nom & "", RefersTo:= _
"=OFFSET(" & sh.Name & "!R2C1,COUNTA(" & ss & "!C1)-3,0,3)"
Next
End With
End Sub
'----------------------------------
Si tu veux indexer les noms des plages créés, tu peux utiliser ceci :
'---------------------------------- Sub test() Dim A As Integer, Nom As String With ActiveWorkbook For Each sh In .Worksheets A = A + 1 Nom = "Magic" & A .Names.Add Name:="" & Nom & "", RefersTo:= _ "=OFFSET(" & sh.Name & "!R2C1,COUNTA(" & ss & "!C1)-3,0,3)" Next End With End Sub '----------------------------------