Tester la feuille active par son codename

sevy1

XLDnaute Occasionnel
Bonjour à tous
j'ai un classeur qui a plusieurs feuilles, j'ai nommée ces feuilles par un CodeName dont l'une s'appelle OT_F alors je voudrais savoir si la feuille active est bien OT_F voici l'instruction que j'ai essayé
Code:
If ActiveSheet.CodeName = "OT_F" Then
mais celà ne fonctionne pas
Merci pour vos réponses
 

vgendron

XLDnaute Barbatruc
Re : Tester la feuille active par son codename

Bonjour,
essaie avec juste
If activesheet.Name="OT_F" then

le name. c'est le nom que tu lui as donné
le codename. c'est le nom qu'excel lui avait donné à sa création: Feuil1 Feuil2, Feuil3....
 

vgendron

XLDnaute Barbatruc
Re : Tester la feuille active par son codename

Hello David84

Bizarre..
je viens de faire le test et chez moi ca me donne bien une différence...
avec une feuille que j'ai renommée
cn = ActiveSheet.CodeName
n = ActiveSheet.Name

le CodeName me renvoit "Feuil3"
et le Name me renvoit "Nouveau Nom"

y aurait il une subtilité?
 

sevy1

XLDnaute Occasionnel
Re : Tester la feuille active par son codename

Bonjour merci pour vos réponse
si j'ai dit que ça ne marche pas c'est parce que j'ai un classeur avec deux onglets que j'ai renommé en OT_F et OT_E
et je souhaiterais qu'en imprimant la feuille active du classeur que le numéro se trouvant à la cellule J1 puisse s'incrementer voici le bout de code
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
n = ActiveSheet.CodeName
    If n = "OT_E" Then
       n.Range("J1").Value = "0000" & .Range("J1").Value + 1
    End If
    If n = "OT_F" Then
       n.Range("J1").Value = "0000" & .Range("J1").Value + 3
        End If
End Sub
 

Pièces jointes

  • INCREMENTATION APRES IMPRESSION.xlsm
    13.3 KB · Affichages: 33

david84

XLDnaute Barbatruc
Re : Tester la feuille active par son codename

Re
dans le module ThisWorkbook :
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Call test
End Sub

Dans un module :
Code:
Sub test()
Dim ws As Worksheet
Set ws = ActiveSheet
n = ws.CodeName

With ws.Range("J1")
  .NumberFormat = "00000"
  If n = "OT_E" Then
      .Value = .Value + 1
  Else
    .Value = .Value + 3
  End If
End With

End Sub
A+
 

Discussions similaires

Réponses
16
Affichages
542
Réponses
4
Affichages
701

Statistiques des forums

Discussions
312 294
Messages
2 086 888
Membres
103 404
dernier inscrit
sultan87