[XLS 2003] : Limiter les données d'une variable.

JulienB

XLDnaute Junior
Bonjour Juilletistes contents d'être rentrés, bonjour Aoutiens contents de partir bientôt.

J'ai ce code

Code:
Dim PROJET As String 'Nom du projet
PROJET = TextBox1.Value
Sheets("Template").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = PROJET

Donc mon onglet prend la valeur de PROJET..
Sauf que je viens de voir (aujourd'hui, maintenant que c'est en production), que les caracteres sont limités dans le nom d'un onglet.

Je pensais faire un truc du style

Code:
Dim NOMONGLET As String 
NOMONGLET = PROJET limit 10
Sheets(Sheets.Count).Name = NOMONGLET
mais comment prendre les 30 premiers caracteres...

Si vous pouviez l'éclairer ....

Merci

++
 

Pierrot93

XLDnaute Barbatruc
Re : [XLS 2003] : Limiter les données d'une variable.

Bonjour Julien

comme le nom de l'onglet est récupéré d'un "textbox", le mieux serait de limiter le nombre de caractères saisissables dans ce controle. Pour ce faire tu peux utiliser la propriété "MaxLength", code ci-dessous à utiliser dans l'événement "Initialize" de l'usf... si tu en as un bien sur....

Code:
TextBox1.MaxLength = 10
bonne journée
@+
 
G

Guest

Guest
Re : [XLS 2003] : Limiter les données d'une variable.

Bonjour,

Code:
[COLOR=blue]Sub[/COLOR] test()
    [COLOR=blue]Dim[/COLOR] PROJET [COLOR=blue]As[/COLOR] [COLOR=blue]String[/COLOR]    [COLOR=green]'Nom du projet[/COLOR]
    PROJET = Left(TextBox1.Value, 10)
    Sheets([I]"Template"[/I]).Copy After:=Sheets(Sheets.Count)
    Sheets(Sheets.Count).Name = PROJET
[COLOR=blue]End[/COLOR] [COLOR=blue]Sub[/COLOR]
Ou alors tu limites la propriété MaxLength du TextBox à 10

[Edit] Salut Pierrot
A+
 
Dernière édition par un modérateur:

Pierrot93

XLDnaute Barbatruc
Re : [XLS 2003] : Limiter les données d'une variable.

Re,

sinon, pour extraire les x premiers caractères d'une chaîne...
Code:
Dim t As String
t = "azertyuiop"
t = Left(t, 5)
remplace le 5 par le nombre voulu...

Edition: bonjour Hasco
 

JulienB

XLDnaute Junior
Voici ce que j'ai fait

Code:
ONGLET = Left(PROJET, 30)
Sheets(Sheets.Count).Name = ONGLET

Merci Pierrot, Merci Hasco !
 

Pierrot93

XLDnaute Barbatruc
Re : [XLS 2003] : Limiter les données d'une variable.

Re,

tu pouvais aussi bien te passer de la variable intermédiaire... mais bon, pourquoi pas...

Code:
PROJET = Left(PROJET, 30)
Sheets(Sheets.Count).Name = PROJET
 

JulienB

XLDnaute Junior
Re : [XLS 2003] : Limiter les données d'une variable.

vi mais j'utilise la variable PROJET à divers endroits donc je ne pouvais pas la tronquée celle ci !
 
G

Guest

Guest
Re : [XLS 2003] : Limiter les données d'une variable.

Re,

Alors pas besoin de recréer une variable 'ONGLET':

Code:
Sheets(Sheets.Count).Name =Left(PROJET,30)
A+
 

bhbh

XLDnaute Barbatruc
Re : [XLS 2003] : Limiter les données d'une variable.

Bonsoir,

Pierrot et Hasco :):)

Juste pour info, le nombre de caractères max pour un nom d'onglet est de 31...

Juste pour info :p
 

kiki29

XLDnaute Accro
Re : [XLS 2003] : Limiter les données d'une variable.

Salut,à tester et adapter si besoin
Code:
Option Explicit

Function NomFeuilleValide(ByVal Nom As String) As String
Const CaracInterdits As String = ":/\?*[]"
Dim i As Integer, Car As String * 1
    Nom = Trim(Nom)
    
    For i = 1 To Len(CaracInterdits)
        Car = Mid$(CaracInterdits, i, 1)
        Nom = Replace(Nom, Car, "")
    Next
    
    Select Case Len(Nom)
        Case 0: Exit Function
        Case Is > 31: Nom = Left$(Nom, 31)
    End Select

    NomFeuilleValide = Nom
End Function
 
Dernière édition:
G

Guest

Guest
Re : [XLS 2003] : Limiter les données d'une variable.

Re tout le monde,

Il me semblait que la demande de Julien du Post#1 était:

Julien a dit:
mais comment prendre les 30 premiers caracteres...
A+
 
Haut Bas