Bonjour à tous,
Après quelques jours de recherches infructueuses afin de trouver une solution à mon problème, je me décide à vous le proposer:
Dans un classeur avec une trentaine de feuilles, chaque feuille possède une plage nommée d'une vingtaine de cellules (souvent plus).
Seulement, je dois supprimer deux/trois cellules pour chaque plage pour chaque feuille et, comme vous le savez, le gestionnaire des noms d'excell est SUPER pratique pour le faire
Donc, mon idée était de créer une macro afin de:
1/ créer la plage de cellule nommée dans une feuille vierge. par exemple: =Vierge!$AC$12;Vierge!$AC$18;Vierge!$AC$24;Vierge!$AC$30.
2/ remplacer le mot "Vierge" par le nom de la feuille active: activesheet.name avec une variable en string (c'est bizarre d'écrire ça comme ça)
et donc j'ai créé ceci pour tester avant de l'inclure dans une plage nommée:
hé bien même ça, il ne le prend pas ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Option Explicit Dim cible As Variant Dim nom As String Sub gestion_nom() On Error Resume Next cible = ThisWorkbook.Sheets("Feuil1").Range("A8") 'où j'avais collé une ref du gestionnaire de nom =Vierge!$G$2:$X$3;Vierge!$C$10;Vierge!$C$12;Vierge!$D$10 nom = ActiveSheet.Name cible.Replace what:="Vierge", replacement:=nom End Sub
J'ai testé via l'enregistreur de macro :
Bref, je ne sais plus si je dois faire du "remplacer" ou créer une nouvelle plage nommée...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 ActiveWorkbook.Worksheets("Vierge").Names("CompChiffre").RefersToR1C1 = _ "=Vierge!R9C11:R11C11,Vierge!R9C14:R11C14,Vierge!R9C17:R11C17,Vierge!R9C26:R10C26,Vierge!R9C29,Vierge!R9C31,Vierge!R9C34,Vierge!R15C11:R17C11,Vierge!R15C14:R17C14,Vierge!R15C17:R17C17,Vierge!R15C26:R16C26,Vierge!R15C29,Vierge!R15C31,Vierge!R15C34,Vierge!R21C11:R23C11,Vierge!R21C14:R23C14,Vierge!R21C17:R23C17,Vierge!R21C26:R22C26,Vierge!R21C29,Vierge!R21C31,Vierge!R21" & _ "C34,Vierge!R27C11:R29C11,Vierge!R27C14:R29C14,Vierge!R27C17:R29C17,Vierge!R27C26:R28C26,Vierge!R27C29,Vierge!R27C31,Vierge!R27C34,Vierge!R33C11:R35C11,Vierge!R33C14:R35C14,Vierge!R33C17:R35C17,Vierge!R33C26:R34C26,Vierge!R33C29,Vierge!R33C31,Vierge!R33C34,Vierge!R39C11:R41C11,Vierge!R39C14:R41C14,Vierge!R39C17:R41C17,Vierge!R39C26:R40C26,Vierge!R39C29,Vierge!R39C31," & _ "Vierge!R39C34,Vierge!R62C11:R64C11,Vierge!R62C14:R64C14,Vierge!R62C17:R64C17,Vierge!R62C26:R63C26,Vierge!R62C29,Vierge!R70C11:R72C11,Vierge!R70C14:R72C14,Vierge!R70C17:R72C17,Vierge!R70C26:R71C26,Vierge!R70C29,Vierge!R96C11:R98C11,Vierge!R96C14:R98C14,Vierge!R96C17:R98C17,Vierge!R96C26:R97C26,Vierge!R96C29,Vierge!R104C11:R106C11,Vierge!R104C14:R106C14,Vierge!R104C17" & _ ":R106C17,Vierge!R104C26:R105C26,Vierge!R104C29,Vierge!R50C23,Vierge!R50C26,Vierge!R54C23,Vierge!R54C26,Vierge!R50C26,Vierge!R50C23,Vierge!R54C23,Vierge!R54C26" & _ "" Application.CutCopyMode = False
Bref de bref, je suis largué. Ce qui me paraissait simple se transforme en inaccessible.
Help
Partager