titre des onglets dans une list view

bomagicmusic

XLDnaute Occasionnel
Bonjour,

j'ai un classeur avec des onglets qui sont crées en fonction des années à l'aide d'un Userform. Ex: l'utilisateur met 2009 dans la text box et il se crée un onglet budget 2009.
maintenant j'aimerai si l'onglet existe déjà qu'un message s'affiche "la fiche existe déjà voulez-vous la modifier ou en creer une autre"?
Mon deuxième problème qui est lié au précédent est de faire apparaitre le nom des onglets qui commencent par "budget et une date" dans une list view de mon userform, et là je bloque. j'ai utilisé un code qui me permet de creer une liste de mes onglets en 1ère page mais ce n'est pas exactement ce que je cherche.

Quelqu'un peut-il m'aider?
Merci
 

Etienne2323

XLDnaute Impliqué
Re : titre des onglets dans une list view

Salut Bomagicmusic
Pour ce qui est de ton message si le nom de l'onglet est déjà pris, tu peux essayer quelque chose comme ceci. Je n'ai pas testé par contre.

Code:
Dim NombreOnglets As Long
Dim Nom_A_Verfier As String

Application.ScreenUpdating = False

Nom_A_Verifier = UserForm1.Textbox1.Value

NombreOnglets = Application.Sheets.Count

For i = 1 To NombreOnglets
    If Sheets(i).Name = Nom_A_Verifier Then
        MsgBox "La fiche existe déjà. Voulez-vous la modifier ou en créer une autre ?"
    End If
Next i

Pour ce qui est de ton listview, il faudrait vriament avoir un classeur exemple pour pouvoir t'aider puisque à tâton, ce serait vraiment une perte de temps. Les listviews sont plutôt capricieuses.

Cordialement,

Étienne
 

bomagicmusic

XLDnaute Occasionnel
Re : titre des onglets dans une list view

Bonjour etienne,

Je vais tester ça, merci.
Les list views c'était une idée mais ce que je cherche à faire c'est d'afficher tous les onglets disponibles qui portent le nom "fiche budget+une année" sur mon user form. En fait cette list augmentera en fonction du nombre d'onglets.
Une idée? merci
 

Etienne2323

XLDnaute Impliqué
Re : titre des onglets dans une list view

Salut bomagicmusic,
si c'était seulement de moi, j'utiliserais beaucoup plus un listbox qu'une listview. Beaucoup plus facile à manoeuvrer et pour trouver de l'information sur le net, il y a beaucoup plus de ressources à ce niveau.

Une fois le listbox monté, tu n'aurais qu'à faire une condition sur le nom de tous tes onglets dans ton fichier, un peu comme ce que je t'ai donné comme piste un peu plus haut. Quelque chose comme :

Code:
Application.Sheets.Count
For i = 1 to Sheets.Count
       'ici, pour le nombre de caractères, je met 15 , mais ça peut être n'importe quoi. 
       If Left(Sheets(i).Name,15) = "fiche budget+20" Then 
       'Alors tu ajoutes dans le listbox. Sinon, passe à l'onglet suivant.

Ou encore tu remplaces la fonction left par la fonction Len, et tu ajoutes tous les onglets qui ont un certain nombre de caractère. J'aime moins cette solution par contre.

Avec ca, tu peux garder une liste toujours variable puisque tu la refait à chaque fois que tu ouvres le userform.

Pour de l'info la dessus, il y a toujours le site suivant qui est très efficace :
Utiliser les contrôles dans un UserForm, en VBA Excel - Club des décideurs et professionnels en Informatique

Bonne continuité,

Étienne
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 472
Messages
2 088 710
Membres
103 929
dernier inscrit
Tangerine9