Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ajout Onglet VBA : problème 31 caractères

    16 juin 2011 à 16:04:08

    Bonjour à tous voici mon code

    Sub creerFeuilles()
    Dim curCell As Range
    Set curCell = ThisWorkbook.Sheets("Feuil4").Range("F2")
    While curCell.Value <> vbNullString
        ThisWorkbook.Sheets.Add After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = curCell.Value, 31
        ThisWorkbook.Sheets("Feuil4").Hyperlinks.Add Anchor:=curCell.Offset(0, 11), Address:="", SubAddress:= _
            "'" & ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name & "'!A1", TextToDisplay:="Acces Feuille Société"
        Set curCell = curCell.Offset(1, 0)
    Wend
    ThisWorkbook.Sheets("Feuil4").Select
    End Sub
    



    Le problème est que lorsque le nom de la colonne est supérieur à 31 caractères. La macro refuse de créer le nouvel onglet. Je voudrais donc savoir comment faire. Je vous remercie par avance pour votre aide.
    • Partager sur Facebook
    • Partager sur Twitter
      16 juin 2011 à 16:16:57

      Bonjour,

      Ce n'est pas vraiment un problème, puisque cela vient d'Excel lui-même. Il y a quelques limitations dans le nom des nouveaux onglets, afin que les utilisateurs ne fassent pas n'importe quoi ou pour limiter les possibilités d'erreur, j'imagine.
      Ainsi, le nom d'un onglet :
      - ne doit pas être vide
      - ne doit pas être supérieur à 31 caractères
      - ne doit pas contenir les caractères : \ / [ ] ? *

      Il n'y a donc pas d'autre "solution" que de te limiter dans la taille du nom de tes onglets.

      (Ou alors de recoder Excel :p )
      • Partager sur Facebook
      • Partager sur Twitter
        16 juin 2011 à 16:24:24

        Merci pour ta réponse et puis-je définir un format de cellule se limitant à 31 en indiquant un message à l'utilisateur de manière à éviter ce problème à l'utilisateur lambda. Merci d'avance.
        • Partager sur Facebook
        • Partager sur Twitter
          16 juin 2011 à 16:41:45

          Si j'ai bien compris, tu veux avertir ton utilisateur qu'il y a certains conditions de nommage à respecter s'il veut créer un nouvel onglet ? Excel le fait déjà, puisque si tu tentes de mettre un nom invalide, le programme l'empêche.

          Sinon, j'ai pas compris ta question, davantage de détails seraient les bienvenus.
          • Partager sur Facebook
          • Partager sur Twitter
            16 juin 2011 à 16:48:16

            J'ai trouvé la solution. Encore merci pour vos réponses.

            ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count).Name = Left(curCell.Value, 31)

            De cette façon je limite à 31 caractères l'onglet en question.
            • Partager sur Facebook
            • Partager sur Twitter

            Ajout Onglet VBA : problème 31 caractères

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown