IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Listing des onglets dans un UserForm [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2008
    Messages : 18
    Points : 12
    Points
    12
    Par défaut Listing des onglets dans un UserForm
    Bonjour,

    Je souhaite, après ouverture d'un fichier, lister les onglets disponibles dans un Userform. L'utilisateur en selectionnera un qui sera par la suite renommé et les autres seront supprimés. pouvez-vous m'aider à lister les onglets d'un fichier dans le UserForm?

  2. #2
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour,
    une proposition à adapter pour la première partie de la question, en ayant ajouter une listbox sur un USF
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub UserForm_Initialize()
    Dim i As Integer
    For i = 1 To Sheets.Count
    ListBox1.AddItem Sheets(i).Name
    Next i
    End Sub
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    Déja un exemple pour lister les onglets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim F1 As Worksheet
    dim Mess as string
     
    For Each F1 In Sheets
      Mess =  F1.Name & vbcrlf
    Next
     
    msgbox Mes
    Edit1 : Casefayere plus rapide et plus complet que moi, bravo !

    Edit2 : Dans mon exemple pour deleter :

    Pour renommer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    F1.name = "Nouveau Nom"

  4. #4
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut
    je pense qu'il vaut mieux parcourir les feuilles que toutes les sheet (dont les graph par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub FF_boucle_onglet()
    Dim F1 As Worksheet
     
    ' ------------------------------- '
    ' Existence de l'onglet
    ' ------------------------------- '
    For Each F1 In Worksheets
        ListBox1.AddItem F1.Name
        'F1.Name = MySheet
        '       F1.Delete
        MsgBox "La feuille " & F1.Name
    Next
     
    End Sub

  5. #5
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour chickenhands l' ami casefayere aalex
    je verrais bien un truc comme ca un user une listbox une textbox un commandbutton

    clic dans listbox envoi dans textbox on renomme puis clic sur le commandbutton

    pour remplir la listbox j' ai repris le code de l ami casefayere qui est trés bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Option Explicit
    Dim ws As Worksheet, i As Variant
    Private Sub CommandButton1_Click()
    With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    Sheets(i).Name = TextBox1
    For Each ws In Worksheets
    If ws.Name <> TextBox1 Then ws.Delete
    Next ws
    .DisplayAlerts = True
    .ScreenUpdating = True
    End With
    Unload Me
    End Sub
    Private Sub ListBox1_Click()
    TextBox1 = ListBox1: i = ListBox1
    End Sub
    Private Sub UserForm_Initialize()
    For i = 1 To Sheets.Count
    ListBox1.AddItem Sheets(i).Name
    Next i
    End Sub
    SALUTATIONS

  6. #6
    Membre chevronné Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Points : 1 999
    Points
    1 999
    Par défaut quelques corrections
    Super Laetitia, un exemple complet

    juste par sécurité pour le code du bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub CommandButton1_Click()
    on error goto fin
    With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
    End With
     
    Sheets(i).Name = TextBox1
    For Each ws In Worksheets
    If ws.Name <> TextBox1 Then ws.Delete
    Next ws
     
    fin:
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
    edit :
    Attention à ne pas confondre sheets et worksheets, si on a des graph ça peut causer des plantages, dans ce cas les deux peuvent être différents :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MsgBox Sheets.Count
    MsgBox Worksheets.Count

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. list box récupération des valeurs dans un userform
    Par mindar dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 23/01/2008, 10h08
  2. Liste des formulaires dans ListeBox
    Par gbuxo dans le forum Access
    Réponses: 2
    Dernier message: 08/04/2006, 11h23
  3. Réponses: 6
    Dernier message: 16/03/2006, 18h32
  4. Chargement de la liste des imprimantes dans TPrinterDialog
    Par bernie.noel dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/02/2006, 16h57
  5. [SHELL API] Liste des Icônes dans le casier (et position)..
    Par ARDILLER dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 07/05/2005, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo