J'ai une question sur les names box (nom que je donne a la cellule)
J’ai un tableau :
en A1 ma cellule s'appel "acz"
et j'ai le texte 'bgf' dedans
J’ai fait une macro qui va rechercher la cellule "acz", la sectionner, copier le contenu, sélectionner la cellule C1 et copier le contenu du presse papier
Cela marche jusqu'ici et j’aimerai garder la meme syntaxe dans la macro
Mon problème est le suivant :
Si je supprime le name "acz" (menu insert, name, define), la macro ne se réalise plus, normal "acz" n'est plus présent.
Est ce qu'il y aurait une solution pour que si le système ne trouve pas la name box recherchée, il écrive "non trouvé" en C1 ?
Sub mac1()
[COLOR="red"]On Error Resume Next[/COLOR]
Range("acz").Select
If [COLOR="Red"]Err[/COLOR] Then
Cells(1, 3) = "non trouvé"
Else
Selection.Copy
Cells(1, 3).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
End If
End Sub
Mais on écrit bien plus simplement (en VBA proscrire les Select) :
Code:
Sub mac1()
On Error Resume Next
Cells(1, 3) = Range("acz")
If Err Then Cells(1, 3) = "non trouvé"
End Sub
Mais une solution plus propre Sans gestion des erreurs, pas toujours gérée d'ailleurs)
Sub essai()
Dim Nom As Name
Dim Cherche As String
Cherche = "acz"
For Each Nom In ThisWorkbook.Names
If Nom.Name = Cherche Then MsgBox "Trouvé en " & Nom Else MsgBox "Non trouvé"
Next
End Sub