Bug sur Renommer feuille à partir d'une cellule

  • Initiateur de la discussion Initiateur de la discussion Yopub
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Y

Yopub

Guest
Bonjour à toutes et à tous.
J'ai pondu une macro (en partie grâce à vous) permettant de créer une feuille à partir d'un modèle, puis de la renommer avec le contenu d'une cellule donnée (via une Msg Box). Cela fonctionnait bien jusqu'au moment où j'ai écrit un nom composé genre DURAND-DUPONT. Et là, patatra, le programme m'ouvre une fenêtre de dialogue me demandant où se situe la feuille dans l'ordi. J'ai essayé avec un espace au lieu du tiret: idem. Manuellement, les onglets acceptent pourtant des tirets ou des espaces, alors pourquoi la macro bloque-t-elle ?
Y-a-t-il une suptilité quelque part ?
Ci-dessous l'extrait de la macro :

Dim NomAgent As String
NomAgent = InputBox("Quel est le NOM de l'Agent ?")

Sheets("Modèle").Copy After:=Sheets(1)
Range("C3").FormulaR1C1 = NomAgent
ActiveSheet.Name = (NomAgent)
 
Re : Bug sur Renommer feuille à partir d'une cellule

Bonjour Pierrot et merci de t'être penché sur mon cas. Ta réponse, sans en être une, m'a alerté : effectivement l'erreur de provient pas du code que j'ai indiqué auparavant, mais bien plus loin, lorsque je demande au programme d'écrire une formule dans une cellule. Formule qui fait référence à une cellule d'une autre feuille. Feuille renommée par la macro que tu connais.
Je colle ci-dessous le début de la macro jusqu'au pas qui coince :

Sub NouvelAgent()
'
' NouvelAgent Macro
'
'Positionne le curseur dans la colonne Agent

Range("b4").Select
'
Dim NomAgent As String
NomAgent = InputBox("Quel est le NOM de l'Agent ?")

'Permet de trouver la 1ère ligne vide du tableau dans la colonne B et d'y coller le nom de l'agent

Range("B29").End(xlUp).Offset(1, 0).Range("A1").FormulaR1C1 = NomAgent

'Rend visible la feuille Modèle en vue de copiage
Sheets("Modèle").Visible = True

'Crée une feuille à partir du modèle et le renomme avec le nom de l'agent
Sheets("Modèle").Copy After:=Sheets(1)
Range("C3").FormulaR1C1 = NomAgent
Application.ScreenUpdating = False
ActiveSheet.Name = (NomAgent)

'Masque la feuille Modèle
Sheets("Modèle").Visible = False

'Précise le type de contrat
Mensualité = MsgBox("L'agent sera-t-il mensualisé ?", vbYesNo)

If Mensualité = vbYes Then
Range("B26") = True

End If

'Précise si titulaire ou non
Titulaire = MsgBox("L'agent est-il titulaire ?", vbYesNo)

If Titulaire = vbYes Then
Range("B10") = True

End If

'Copier les références mensuelles dans la feuille "Récap"
Dim RéfNomAgent As Range

'Sélectionne la ligne de NomAgent pour la copie des références mensuelles
Sheets("Récap").Select

'Afin de copier les données en dessous du dernier agent, il faut aller en bout de tableau et remonter
Set RéfNomAgent = Range("B27").End(xlUp).Offset(0, 0).Range("A1:Z1")
RéfNomAgent.Select

'Recopier le type de contrat (mensuel ou horaire) dans la ligne définie
ActiveCell.Offset(0, 2).Formula = "=if(" & NomAgent & "!$b$10=false, IF(" & NomAgent & "!$B$26=FALSE,""Horaire"",""Mensualisé à""),""Titulaire"")"

LA, CA COINCE ! et après (ci-dessous) aussi. C'est quoi le problème ? A bientôt...

'Recopier le nombre d'heures mensuelles si mensualisé
ActiveCell.Offset(0, 3).Formula = "=IF(" & NomAgent & "!$B$26=TRUE," & NomAgent & "!$F$26,"" "")"
 
Re : Bug sur Renommer feuille à partir d'une cellule

Re,

comprends pas trop... ces lignes fonctionnent en l'état chez moi :
Code:
Dim NomAgent As String
NomAgent = "Feuil1"
ActiveCell.Offset(0, 2).Formula = "=if(" & NomAgent & "!$b$10=false, IF(" & NomAgent & "!$B$26=FALSE,""Horaire"",""Mensualisé à""),""Titulaire"")"
ActiveCell.Offset(0, 3).Formula = "=IF(" & NomAgent & "!$B$26=TRUE," & NomAgent & "!$F$26,"" "")"
 
Re : Bug sur Renommer feuille à partir d'une cellule

?!? Alors là, comprends pas. Moi ça veut pas prendre des noms composés.
Je vais mener plus loin l'investigation. Au cas où, je joindrais le fichier complet, avec la macro.
A bientôt, merci.
 
Re : Bug sur Renommer feuille à partir d'une cellule

AYE ! J'ai trouvé le problème. De la syntaxe pour ne pas changer. Si l'on écrit une formule du type :
"=if(" & NomAgent & "!$b$10=false, IF(" & NomAgent & "!$B$26=FALSE,""Horaire"",""Mensualisé à""),""Titulaire"")"
si le NomAgent (qui est le nom d'une feuille) est un mot composé, la feuille n'est pas trouvée. Pour éviter cela, il faut ajouter des ' avant et après le nom de la feuille. Cela donne :
"=if(" & "'" & NomAgent & "'" & "!$b$10=false, IF(" & "'" & NomAgent & "'" & "!$B$26=FALSE,""Horaire"",""Mensualisé à""),""Titulaire"")"
C'est simple, (mais fastidieux !).
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

N
Réponses
0
Affichages
779
nakajima
N
S
Réponses
2
Affichages
869
shapenzi
S
Retour