Excel - onglets multiple

Asked By stef b on 23-May-12 06:27 AM
Bonjour
je dispose d un fichier excel 2003

je suis sur une feuille nommée X_PATRICK

je voudrais si possible que lorsque je click sur un bouton qu'il m ouvre un
useform a selection multiple avec en liste tous les noms de onglets qui
commence par "X_" sauf celle ou je suis et que lorsque je selectionne dans
cette liste par exemple X_PAUL et X_JULIEN.
Dans ce cas il me copie de X_PATRICK uniquement les cellules
range("J4:K12") sur X_PAUL et X_JULIEN .

merci d'avance.


MichD replied to stef b on 23-May-12 09:54 PM
Bonjour,

Pour moi, ta question n'est pas claire. D?sol? si ma r?ponse n'est pas ?clairante.

A ) Proc?dure pour ouvrir le formulaire :

Tu adaptes le nom du formulaire au besoin.
'---------------------
Sub test()
Userform1.Show
End Sub
'---------------------

Lorsque le formulaire s'ouvre, si tu as un combobox dans ton formulaire
et que tu veux afficher dans ce combobox toutes les feuilles commen?ant
par "X_" moins la feuille o? tu es lors de l'appel,

Dans ton formulaire, tu utilises ce type de macro :

'----------------------------------------------
Private Sub UserForm_Initialize()
Dim Sh As Object
For Each Sh In ThisWorkbook.Sheets
If Left(Sh.Name, 2) = "X_" Then
If Sh.Name <> ActiveSheet.Name Then
Me.ComboBox1.AddItem Sh.Name
End If
End If
Next
End Sub
'----------------------------------------------
stef b replied to MichD on 24-May-12 04:37 AM
merci la premiere partie marche je peux selectionné les feuilles commencant
par "X_"
et il n apparait pas la feuille en cours .
j ai rajouté sur le userform la selection multiple

ensuite viens la difficulté

sur les feuilles selectionnées dans la listbox et non combox je voudrais que
du ActiveSheet.Name il me copie
sur ces feuilles selectionnées la plage de cellule J4:K12

voila

merci d avance.


jpk4dn$rfc$1@speranza.aioe.org...
MichD replied to stef b on 24-May-12 07:03 AM
Si le code est dans le formulaire, tu choisis l'?v?nement qui convient
avec cette proc?dure. (adapte le nom des objets au besoin)

'----------------------------------
Dim Sh As Worksheet, A As Integer

Set Sh = ActiveSheet

With Me.ListBox1
For A = 0 To .ListCount - 1
If .Selected(A) = True Then
Sh.Range("J4:K12").Copy _
Worksheets(.List(A)).Range("A1")
End If
Next
End With
'----------------------------------
stef b replied to MichD on 24-May-12 07:59 AM
MERCI CA MARCHE SUPER BIEN

bravo!!!!



jpl4il$5o5$1@speranza.aioe.org...