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 :

Userf et listbox [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Par défaut Userf et listbox
    bonjour,

    J'ai une macro avec un userform qui m'insérer des fichiers qui sont déjà ouverts. Mes fichiers ont toujours le même nom mis à part la fin par exemple le fichier peu s'appeler macro123456 et quand j'en sors un autre il s'appelle macro987654. En fait je voudrais modifier mon code afin qu'il ne m'ouvre que les fichiers qui commence par macroxxx. Pourriez vous m'aider?

    merci d'avance

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Private Sub ListBox1_Click()
     
    End Sub
     
    Private Sub UserForm_Initialize()
    Dim c As Workbook 'déclare la variable o (Classeur)
     
    For Each c In Workbooks 'boucle sur tous les claeeurs ouverts
        'alimente la ListBox1 du nom des classeurs ouverts sauf le nom de ce classeur et "PERSO.XLS"
        If Not c.Name = ThisWorkbook.Name And Not c.Name = "PERSO.XLS" Then Me.ListBox1.AddItem c.Name
    Next c 'prochain classeur ouvert de la boucle
    End Sub
     
    Private Sub OK_Click()
    Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
    Dim oc As Object 'déclare la variable oc (Onglet Cible)
    Dim x As Integer 'déclare la variable x (incrément)
    Dim dest As Range 'déclare la variable dest (cellule de DESTination)
    Dim cs As Workbook 'déclare la variable cs (Classeur Source)
    Dim os As Object 'déclare la variable os (Onglet Source)
     
    Set cc = ThisWorkbook 'définit le classeur cible
    Set oc = cc.Sheets("Feuil2") 'définit l'onglet cible
    With Me.ListBox1 'prend en compte la ListBox1
        For x = 0 To .ListCount - 1 'boucle sur tous les éléments de la ListBox1
            If .Selected(x) = True Then 'condition : si l'élément est sélectionné
                'définit la cellule de destination (A1 de l'onglet cible si A1 est vide, sinon la première cellule vide de la colonne A)
                Set dest = IIf(oc.Range("A1") = "", oc.Range("A1"), oc.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0))
                Set cs = Workbooks(.List(x)) 'définit le classeur source
                Set os = cs.Sheets(1) 'définit l'onglet source
                os.UsedRange.Copy dest 'copie la plage des cellules éditées de l'onglet source et la copie dans dest
            End If 'fin de la condition
        Next x 'prochain élément séolectionné de la boucle
    End With 'fin de la prise en compte de la ListBox1
    Unload Me 'vide et ferme l'Userform
    oc.Activate 'sélectionne l'onglet cible
    End Sub
     
    Private Sub ANNULER_Click()
    Unload Me 'vide et ferme l'Userform
    End Sub

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Bonsoir,


    Citation Envoyé par tontonced57
    ..voudrais modifier mon code afin qu'il ne m'ouvre que les fichiers qui commence par macroxxx..
    Je comprends pas tous les fichiers dans ta listbox sont déjà ouvert ! non ?

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Par défaut
    re,

    merci pour votre réponse,

    justement je voudrais qu'il ne m'indique dans la listbox que les fichiers qui commence par exemple par macroxxx

    ou alors que si j'intègre un mauvais fichier, qu'il me mette un message d'erreur.

    cdt

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Modifie la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     If Not c.Name = ThisWorkbook.Name And Not c.Name = "PERSO.XLS" Then Me.ListBox1.AddItem c.Name
    voir la fonction left ...

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2012
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Juillet 2012
    Messages : 4
    Par défaut
    re,

    j'ai essayé mais je pense que je m'y prend mal j'ai tenté ceci


    J'ai remplacé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Not c.Name = ThisWorkbook.Name And Not c.Name = "PERSO.XLS" Then Me.ListBox1.AddItem c.Name
    par


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Left(c.Name, 6) = "tonton" Then meListBox1.AddItem c.Name
    Merci

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

Discussions similaires

  1. DrawItem d'un listbox...
    Par scorpiwolf dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/06/2007, 15h50
  2. [Listbox] ScrollBar Horizontal
    Par haleem dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 20/04/2005, 07h53
  3. Recuper les items de ListBox d'une autre application [API?]
    Par Shamanisator dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 27/09/2002, 12h32
  4. [Canvas] Listbox, couleur et multiselect
    Par rbag dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/09/2002, 13h02
  5. Copier le texte d'un ListBox dans le clipboard.
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 3
    Dernier message: 18/08/2002, 08h20

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