gribouillex
Messages postés172Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention16 mai 2011
-
25 juil. 2006 à 10:53
gribouillex
Messages postés172Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention16 mai 2011
-
25 juil. 2006 à 12:05
Bonjour, j'ai trouvé une fonction qui devrait me permettre de me dire si un nom a été défini ou non dans mon workbook... mais ca ne fonctionne pas...
Où se trouve l'erreur ? Merci pour votre aide.
Function NameExists(TheName As String) As Boolean
On Error Resume Next
NameExists = Len(ThisWorkbook.Names(TheName).Name) <> 0
End Function
Sub test3()
If NameExists("nom1") = True Then
MsgBox ("Le nom existe.")
End If
End Sub
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 25 juil. 2006 à 11:00
Salut,
Soit plus précis car les "Ca ne fonctionne pas" , ne nous éclaire pas trop.
Quel est ton message d'erreur si il y en a un.
Je viens de tester le code que tu viens de mettre et il fonctionne chez moi.
J ai creer un nom et ensuite j ai teste avec le nom cree et un autre, et il a bien donner les résultats que MOI je pense bon .
D'ou la necessité d'être plus précis.
@+, Julien Pensez: Règlement,Réponse Acceptée, Moteur de recherche
gribouillex
Messages postés172Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention16 mai 2011 25 juil. 2006 à 12:05
Bon j'ai trouvé une fonction qui veut bien tourner dans mon workbook...
Private Function RangeNameExists(nname) As Boolean
' Returns TRUE if the range name exists
Dim n As Name
RangeNameExists = False
For Each n In ActiveWorkbook.Names
If UCase(n.Name) = UCase(nname) Then
RangeNameExists = True
Exit Function
End If
Next n
End Function
Sub test3()
If RangeNameExists("nom1") Then
MsgBox ("le nom existe.")
End If
End Sub
gribouillex
Messages postés172Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention16 mai 2011 25 juil. 2006 à 11:24
oui, vous avez raison ca fonctionne.
Je viens de faire comme vous, c'est à dire j'ai créé sur un nouvelle feuille un nom et j'ai testé la fonction, ca marche parfaitement...
Je viens de faire des tests, et en fait la focntion ne fonctionne pas si le code si dessus se trouve sur un workbook où il y a déjà ma macro générale.
Il n'ya pas de message d'erreur, mais c'est comme si il ne trouvait pas le nom1..
Et par exemple si je change la ligne en mettant
If NameExists("nom1") = False Then
Là ça me renvoie la MsgBox !!! Bizarre, non ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
gribouillex
Messages postés172Date d'inscriptionlundi 10 octobre 2005StatutMembreDernière intervention16 mai 2011 25 juil. 2006 à 11:31
non, je veux dire, ce qui est bizarre, c'est que dès que ce code se trouve dans mon workbook où se trouve me macro générale, ça ne veut plus fonctionner.., alors que si j'ouvre un nouveau workbook et que je l'utilise tout va bien.