dernière feuille visible !

Y

ya_v_ka

Guest
salut tout le monde...

autre approche pour inserer une feuille:

Private Sub ListBox1_Click()
Dim DerF As Byte
DerF = Sheets.Visible.Count
If ListBox1.Value = "Contrôle de caisse" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\traité\Controlle_caisse_.xlt"
If ListBox1.Value = "Compte / Recette" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\traité\Compte_Recette.xlt"
If ListBox1.Value = "Subs en pension" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\traité\Subs_Pension_+_Boissons.xlt"
If ListBox1.Value = "Téléphone" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\traité\Communications_telephoniques.xlt"
If ListBox1.Value = "Jours service isolés" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\traité\Annonce_S_isole.xlt"
If ListBox1.Value = "Débit / Crédit" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\Debit_Credit.XLT"
If ListBox1.Value = "Contrôle jours service" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\Jours_S.XLT"
If ListBox1.Value = "Contrôle" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\Controle_militaires.xlt"
If ListBox1.Value = "Rapport d'occupation" Then Sheets.Add After:=Sheets(DerF + 1), Type:="C:\Documents and Settings\Christian Cart\Bureau\Mil News\Rapport_occupation_thoune.xlt"
End Sub

Private Sub UserForm_Initialize()
With ListBox1
.AddItem "Contrôle de caisse"
.AddItem "Compte / Recette"
.AddItem "Subs en pension"
.AddItem "Téléphone"
.AddItem "Jours service isolés"
.AddItem "Débit / Crédit"
.AddItem "Contrôle jours service"
.AddItem "Contrôle"
.AddItem "Rapport d'occupation"
End With
End Sub

le problème: ma variable DerF est toujours egale à 32 (nombre de feuilles du classeur) et non pas au nombre de feuilles visibles !
Est-il possible de ne renvoyer que le nombre de feuilles visibles ? ou de mettre automatiquement la nouvelle feuille à la fin ?

2e question, comment afficher ma listbox au coin supérieur droite de la feuille au lieu d'au centre (avec les données en pixels cela dépends de la résolution d'écran!) ?

voilà... si quelqu'un peut une fois encore me sortir de ce guèpier que je fourie à nouveau tranquillement ;-)

ya'v
 
H

Hervé

Guest
Bonjour

pour la première question :

ce code recherche le nombre de feuille visible dans un classeur :

Dim DerF As Byte
Dim ws As Object
For Each ws In Worksheets
If ws.Visible = True Then DerF = DerF + 1
Next ws

ce code ajoute une feuille à la fin :

Dim nouvellefeuille As Object
Set nouvellefeuille = Sheets.Add
nouvellefeuille.Move After:=Sheets(Sheets.Count)

pas encore de réponse pour la 2ème question, je regarde et je reviens à moins que....

Salut
Hervé

PS : Joyeux noel
 
H

Hervé

Guest
re

en regardant ton code de plus près, utilises ceci (tiré de l'aide d'excel) :

Private Sub Workbook_NewSheet(ByVal Sh As Object)
Sh.Move After:=Sheets(Sheets.Count)
End Sub

a placer dans le module : thisworkbook.

Salut
Hervé
 
Y

ya_v_ka

Guest
salut Hervé

bien vu, merci

la méthode After:=Sheets(sheets.Count) fontionne à merveille.

mais je me demande ou tu as trouvé cela dans l'aide excel ? car perso j'avais essayé les After:=Sheets.count et autres et rechercher dans l'aide excel sous "count" et n'ai rien trouvé qui m'a permis de réussir tout seul ! (ou alors c'est pas avec sheets, et je n'ai pas su faire la transfiguration...)

en tous cas, merci encore, voir même MERCI

ya'v
 

Discussions similaires

Réponses
4
Affichages
218

Statistiques des forums

Discussions
312 360
Messages
2 087 593
Membres
103 604
dernier inscrit
CAROETALEX59