Sélection multiple de feuille excel

xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009 - 18 août 2008 à 16:51
FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010 - 19 août 2008 à 16:55
bonjour tout le monde !

je voulais savoir si il était possible en vba excel de sélectionner plusieurs feuilles en meme temps.
Ce code la ne fonctionne pas :

    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Sheets
        If ws.Name Like "*" & hahaha & "*" Then
        ws.Activate
        ws.Select False
        End If
    Next

il plante sur  ws.Select False.
Quelqu'un aurait-il une idée ?

merci d'avance !
-xaeris-

12 réponses

dedenet2 Messages postés 372 Date d'inscription vendredi 27 juillet 2007 Statut Membre Dernière intervention 22 juillet 2013 2
18 août 2008 à 17:20
Bonjour ,
On peut selectionner plusieurs feuilles à la fois.
Mais seule une feuille peut être active.
Si j'ai bien compris, t'utilises 'Like' pour ouvrir toutes les feuilles
avec ce critère texte hahaha.
j'ai essaye ton programme sur excel 2000.
Cela à fonctionner dans j'ai écris "hahaha" plutot que hahaha
Mais ce n'ai peut etre pas ce que tu veux ?
hahaha est il un texte ou un variable ?
<<ws.Select False>> ne fait pas planter nom programme

Voilà ce que je peux dire pour le moment
A++
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 août 2008 à 08:23
Salut,

"il plante sur  ws.Select False." Il plante d'accord, mais il doit bien te dire quelques choses non? il ne plante pas sans rien dire...

Petite astuce en VBA Excel: Si tu ne sais pas traduire une action utilisateur (possible avec souris ou touches) en code VBA, passe par l'enregistreur de macro. OK il donne du code parfois lourd et avec parfois des lignes "inutiles" mais il a le mérite d'exister et de donner un GROS coup de pouce lorsque tu es bloqué.
<ol><li>Enregistrer une macro:  Menu utils > M Nouv lle macro... + OK </li><li>X actions utilisateurs</li><li>Arreter l'enregistrement: Menu O Macro ></li></ol>
Exemple: je veux savoir comment supprimer deux feuilles excel sélectionnées.

<ol><li>Debut enregistrement.</li><li>Selection des deux feuilles en meme temps</li><li>suppression</li><li>Arret de l'enregistrement de la macro</li><li>Ouverture de l'IDE VBA pour regarder le code résultant</li></ol>
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 19/08/2008 par X
'

'
   Sheets(Array("Feuil1", "Feuil2")).Select
   Sheets("Feuil2").Activate
   ActiveWindow.SelectedSheets.Delete
End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i€n
Pensez: Réponse acceptée
0
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009
19 août 2008 à 10:38
rebonjour! tout d'abord merci de vos réponses!

j'avais déja créé la macro vba pour la sélection multiple.
Néanmoins il est impossible ( je crois) d'ajouter automatiquement des éléments a un array. c'est pourquoi je voulais savoir s'il existait un autre moyen de sélectionner plusieurs feuilles.

Si on veut, j'ai un classeur contenant plusieurs feuilles. Ces feuilles ont toutes une partie du nom en commun donc je fais le tri sur cette partie. et je voudrais sélectionner toutes le feuilles contenant la partie commune.
J'ai fait des test et pour l'instant s'il n'y a qu'une seule feuille, il n'y a aucun problème, dans le cas ou il y en a deux, cela plante. ( Désolé, je ne peux pas acceder au message d'erreur pour l'instant.)

Mon but final est de pouvoir réaliser une impression de toutes les feuilles sélectionnée.

me suis-je bien exprimé ?
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 août 2008 à 11:14
Re,
Essaie peu etre ceci.

Dim ws As Worksheet
Dim WSS() As String

   ReDim WSS(0)
   For Each ws In ActiveWorkbook.Sheets
       If ws.Name Like "*" & hahaha & "*" Then
           WSS(UBound(WSS)) = ws.Name
           ReDim Preserve WSS(UBound(WSS) + 1)
       End If
   Next
   ReDim Preserve WSS(UBound(WSS) - 1)
   Stop
   
   Call Sheets(WSS).Select, ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i€n
Pensez: Réponse acceptée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 août 2008 à 11:15
Re,
Sorry j'ai posté trop vite => il faut enlever la ligne ou il y a STOP

@+: Ju£i€n
Pensez: Réponse acceptée
0
FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010
19 août 2008 à 12:09
Bonjour,

Essayes ce code cela devrait fonctionner

Private Sub CommandButton1_Click()

    Dim Fl As Worksheet
    Dim Feuilles() As String
    ReDim Feuilles(0)
    For Each Fl In Worksheets        If UCase(Mid(Fl.Name, 1, 6)) "HAHAHA" Then     ou alors   If UCase(Fl.Name)  Like "*" &HAHAHA& "*"  Then
           Feuilles(UBound(Feuilles)) = Fl.Name
           ReDim Preserve Feuilles(UBound(Feuilles) + 1)
        End If
    Next
    ReDim Preserve Feuilles(UBound(Feuilles) - 1)
    Sheets(Feuilles).Select
   
End Sub
0
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009
19 août 2008 à 14:47
j'ai testé l'idée que vous m'aviez fournie mais je me trouve devant cette erreur :


erruer d'excution 1004


la methode select de la classe sheets a échoué.
Cela vient peut etre des compléments que je n'ai pas intégrés ?
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
19 août 2008 à 15:03
Sur quelle ligne il te dit cela.

@+: Ju£i€n
Pensez: Réponse acceptée
0
xaeris Messages postés 109 Date d'inscription dimanche 18 décembre 2005 Statut Membre Dernière intervention 22 mai 2009
19 août 2008 à 15:23
Sheets(Feuilles).Select
0
FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010
19 août 2008 à 16:50
Bonjour,
Je suis en Excel 2003 et le pgm, tel qu'il est, fonctionne sans erreur.
Vérifie bien le texte, quitte à faire un copier-coller

A ++
0
FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010
19 août 2008 à 16:51
Bonjour,
Je suis en Excel 2003 et le pgm, tel qu'il est, fonctionne sans erreur.
Vérifie bien le texte, quitte à faire un copier-coller

A ++
0
FaroukVazaha Messages postés 42 Date d'inscription jeudi 17 juin 2004 Statut Membre Dernière intervention 11 septembre 2010
19 août 2008 à 16:55
Bonjour,

Ah oui : il faut aussi qu'au moins une des feuille réponde à la condition du nom en "HAHAHA"

A++
0
Rejoignez-nous