VBA et zone de nom

GHISLAIN

XLDnaute Impliqué
bonsoir a tous

par macro j'arrive a nomer une plage lors de la modification d'une cellule en feuille2.

cette plage se nome avec le nom récupéré en feuille1 A1

le souci étant est que cette macro se lance meme si je modifie une autre cellule
le second souci c'est que je souhaite seulement que cette plage se nome mais pas quelle s'affiche aprés

merci a tous ceux qui passeront sur mon fil et de leur aide bienfaitrice


amicalement

ghislain
 

Pièces jointes

  • Classeur3.zip
    9 KB · Affichages: 21
  • Classeur3.zip
    9 KB · Affichages: 25
  • Classeur3.zip
    9 KB · Affichages: 23

Cousinhub

XLDnaute Barbatruc
Inactif
Re : VBA et zone de nom

Bonsoir,
A la place d'utiliser l'évènement de classeur, utilises plutôt l'évènement de feuille.
Donc, sous VBE (Alt + F11) efface le code situé sous le ThisWorkbook
Et colle ce code dans l'évènement de la Feuille 2 :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" And Target <> "" Then
    ActiveWorkbook.Names.Add Name:=Range("feuil1!A1"), RefersToR1C1:="=feuil1!R2C1:R21C1" 'et nome la plage avec pour nom la cellule a1 de la feuille1
End If
End Sub
 

GHISLAIN

XLDnaute Impliqué
Re : VBA et zone de nom

bonsoir bhbh

je viens de tester ton code et il ne fonctionne que si je suis sur la feuil1 alors que je souhaiterai que cette macro s'execute meme si je suis en feuille2

je continue de cherche

amicalement ghislain
 

GHISLAIN

XLDnaute Impliqué
Re : VBA et zone de nom

bonjour a tous


je viens de faire ce que vous me recommandaient mais il me donne une erreur 1004 la methodes range de l'objet worksheet a echoué


ci joint mon fichier modifier

si quelqu un peu y jeter un oeil ça serai sympa

merci a tous de votre aide

amicalement

ghislain
 

Pièces jointes

  • Classeur3.zip
    9.9 KB · Affichages: 22
  • Classeur3.zip
    9.9 KB · Affichages: 22
  • Classeur3.zip
    9.9 KB · Affichages: 20

Cousinhub

XLDnaute Barbatruc
Inactif
Re : VBA et zone de nom

Bonjour,
remplace ton code par :

Code:
If Target.Address = "$C$5" And Target <> "" Then
    ActiveWorkbook.Names.Add Name:=[COLOR="Red"]Feuil1.Range("A1")[/COLOR], RefersToR1C1:="=feuil1!R2C1:R21C1" 'et nome la plage avec pour nom la cellule a1 de la feuille1
End If
 

GHISLAIN

XLDnaute Impliqué
Re : VBA et zone de nom

re bhbh

je viens de tester cette modif qui a résolu mon probleme je te remercie vivement de ton aide et de ta disponibilité
j ai une autre question sur une supprssion de plage par macro , ne sachant pas si je dois creer un autre fil je la pose directement ici


je souhaite effacer a un moment les plages creer et par l'enregistreur de macro j'obtiens ceci

ActiveWorkbook.Names("SERIE_polux").Delete
ActiveWorkbook.Names("SERIE_pomme").Delete
ActiveWorkbook.Names("SERIE_pivers").Delete
ActiveWorkbook.Names("SERIE_ATCHOUM").Delete
ActiveWorkbook.Names("SERIE_tic").Delete
ActiveWorkbook.Names("SERIE_PISENLIS").Delete

est il possible de creer une macro style recherche de toute les plages commençant par "serie_" et de supprimer ces noms de plage (NB que les noms de plage et pas les cellules )


merci encore a tous

amicalement

ghislain
 

Cousinhub

XLDnaute Barbatruc
Inactif
Re : VBA et zone de nom

Re-,
insère ces trois lignes dans ton code :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$5" And Target <> "" Then
    [COLOR="Red"]For Each nms In ActiveWorkbook.Names
        If nms.Name Like "serie*" Then nms.Delete
    Next nms[/COLOR]
    ActiveWorkbook.Names.Add Name:=Feuil1.Range("A1"), RefersToR1C1:="=feuil1!R2C1:R21C1" 'et nome la plage avec pour nom la cellule a1 de la feuille1
End If
End Sub
 

GHISLAIN

XLDnaute Impliqué
Re : VBA et zone de nom

je me permet de te solliciter une derniere fois

je viens de tester le code qui fonctionne comme je le souhaite sur l'exemple

toutefois une derniere question , le Feuil1.Range("A1") fonctionne si mes feuilles ne sont pas nomées

ActiveWorkbook.Names.Add Name:=Feuil1.Range("A1"),RefersToR1C1:="=feuil1!R2C1:R21C1"

j'ai ma feuille ou dois etre cree sur mon projet les plages est nomé LISTE j ai testé plusieur option et je ne parviens pas a désigner la feuille de réference dans le code que tu m'a transmis

ActiveWorkbook.Names.Add Name:=("LISTE").Range("A1")RefersToR1C1:="=LISTE!R2C1:R21C1"

mon erreur viens de la façon de donner la réference a la feuille j en doute pas mais mes competence en vba etant celle d'un débutant


merci encore de ton aide

amicalement

ghislain
 

GHISLAIN

XLDnaute Impliqué
Re : VBA et zone de nom

j'ai trouvé


je sais pas si c'est la meilleure methode mais elle a le merite de fonctionner lol


ActiveWorkbook.Names.Add Name:=Worksheets("LISTE").Range("A1"), RefersToR1C1:="=LISTE!R2C1:R21C1"

je te remercie bhbh mille fois de ton aide et te souhaite une bonne fin de week end

amicalement

ghislain
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
313 770
Messages
2 102 236
Membres
108 181
dernier inscrit
Chr1sD