XL 2013 Erreur d’exécution

Ate

XLDnaute Nouveau
Bonjour a tous.

Voici le code:

Private Sub worksheet_SelectionChange(ByVal Target As Range)
With ThisWorkbook.Names("ActiveRow") ' Cette ligne qui beug'
.Name = "ActiveRow"
.RefersToR1C1 = "=" & ActiveCell.Row
End With
End Sub

Avec une mise en forme conditionnelle Qui est:
=LIGNE(A1)=ActiveRow

Je n'arrive pas a faire fonctionné ce code sur un nouveau fichier? (alors qu'il fonctionne très bien sur un autre fichier)

J'ai cette erreur a l’exécution du code.

Erreur d’exécution "1004"

Erreur définie par l’application ou par l'objet


Pourquoi?

Cordialement
Merci pour votre temps passé.
 
C

Compte Supprimé 979

Guest
Re : Erreur d’exécution

Bonjour Ate

Il faut définir à la main une 1ère fois le nom "ActiveRow" dans ton nouveau classeur

Sinon tu tentes de travailler sur un objet qui n'existe pas
Code:
With ThisWorkbook.Names("ActiveRow")

A+
 

Caillou

XLDnaute Impliqué
Re : Erreur d’exécution

Bonjour,

Pour que ce code fonctionne dans un nouveau fichier, il faut que dans ce nouveau fichier, un nom ActiveRow existe !!!! (car la macro ne fait que modifier ce nom)
Donc avant de lancer la macro, tu crée un nom ActiveRow qui fait référence à n'importe quelle valeur/cellule et ensuite ca devrait le faire :)

Caillou
 

Dranreb

XLDnaute Barbatruc
Re : Erreur d’exécution

Bonjour.

Essayer aussi:
VB:
Private Sub worksheet_SelectionChange(ByVal Target As Range)
Target.EntireRow.Name = "ActiveRow"
End Sub
Ah non, mal compris à cause du nom. Mais avec un second nom peut être: "NumLgnActive", Référence "=LIGNE(ActiveRow)"
Ou alors simplement :
VB:
ThisWorkbook.Names.Add Name:="ActiveRow", RefersTo:="=" & Target.Row
Ça ne plante pas, à ma connaissance, si le nom existe déjà.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 169
Messages
2 085 918
Membres
103 038
dernier inscrit
Herve7