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
Partager